How to fix Native Host Has Exited error in Chrome browser extension -- Native Messaging How to fix Native Host Has Exited error in Chrome browser extension -- Native Messaging google-chrome google-chrome

How to fix Native Host Has Exited error in Chrome browser extension -- Native Messaging


Your "myhost.app" is not a binary, but a directory (as shown by the X in your u+w,go-w,a+rX permissions).

You have two options:

  1. Do NOT create an App bundle for your command-line program, but a plain command-line application (File > New > Project > Command Line Tool in Xcode (tutorial)).

  2. Specify the path to the binary within the app bundle instead of the bundle itself. You can list all files within app bundle by right-clicking on the .app file and selecting "Show package contents". Or run the following command from the terminal (Console) to list all files within your bundle:

    find /Users/mycomputer1/Documents/myhost.app -type f


Your native app and chrome communicate through the console, which in most cases is hidden. If your app uses the console for something more than communicating with chrome (e.g. executing a system command) chrome WILL catch that and interpret it as a bad response from your app and close the connection between them.

So you are advised to use one of the following workarounds:

  • Don't use the (same) console for running anything other than your communication with chrome
  • Buffer your console output instead of sending it to stdout

One more thing to notice is that in some languages (e.g. php) some commands (e.g. preg_match) seem to don't have any output as they manipulate data based on their arguments, BUT they do return a result (e.g. true/false) and if you don't suppress that result (@function() in php) or save it to a variable then it goes to stdout and causes chrome to disconnect.

Sorry if not directly relevant to the question but I hope this helps some people as this question shows way up on the search results. Myself, I struggled with such a problem for a good sum of hours.


Happened to me on Linux (RHEL 7.6).

To find the root cause, you'll need run your chrome from console (command line), and open the gnome extensions page:

$ /opt/google/chrome/chrome "https://extensions.gnome.org"

Then look in the console, if there are any errors.

For me it was 'chrome-gnome-shell' error due to missing python module named 'gi':

Traceback (most recent call last):Traceback (most recent call last):  File "/usr/bin/chrome-gnome-shell", line 16, in <module>    from gi.repository import GLib, GioModuleNotFoundError: No module named 'gi'

To fix it I had to install PyGObject:

$ sudo yum install python36-gobject.x86_64# or directly with pip: pip3 install PyGObject

Once completed installation, go back to https://extensions.gnome.org (might need to close and reopen Chrome) - Now it shows no error, and works great.