Можно обернуть в try, но функция при этом остаётся нерабочей, хотя обновлённое расширение работает нормально и готово к приёму сообщений. Перезагрузка страницы - не красивое решение (пользователь может набирать на сайте текст, который будет утерян).
У меня похожая проблема: когда включаю я включаю расширение со страницы chrome://extensions/, content.js в текущих открытых вкладках должен сделать запрос в background, но chrome.runtime.sendMessage выдаёт туже ошибку.
Перезагрузка вкладки с расширением помогает, но это действительно корявое решение.
Извиняюсь за некропостинг, но в каком случае его вызывать?
Допустим, есть 10 вкладок, на которых работает расширение. Как после обновления расширения
вызвать chrome.runtime.reload() на всех 10 вкладках?
Tosha1337, А я уже давно не занимался разработкой расширений. Попробуйте с таймером и проверкой версии через хранилище. Если не совпадает, то вызывайте reload. Но я сам такое не делал