I had the problem on Linux with Chromium:
Specified native messaging host not found.
The reason for the problem was that I the native messaging host manifest file in /etc/opt/chrome/native-messaging-hosts/ and ~/.config/google-chrome/NativeMessagingHosts/ - but Chromium uses chromium instead of google-chrome as app config name.
The error vanished when I used ~/.config/chromium/NativeMessagingHosts/.
After Chrome found the host, I got the following message:
Error when communicating with the native messaging host.
Enabling debugging in chromium helped:
$ chromium-browser --enable-logging --v=1 --enable-logging=stderr
With that I saw the real error message:
Native Messaging host tried sending a message that is 808 613 980 bytes long.
The problem was that I changed the native messaging script from bash to sh, but the message length output with sh's printf did not work. I ended up using /usr/bin/printf (the GNU version).