Unchecked runtime.lastError Browser Origin: On your device Last updated 15 Oct 2026

Console: Unchecked runtime.lastError: The message port closed before a response was received (extension message)

A browser extension sent or received a message and the other side closed the channel without replying — almost always an extension bug, not your site.

Exact message you may see Unchecked runtime.lastError: The message port closed before a response was receivedA listener indicated an asynchronous response by returning trueCould not establish connection. Receiving end does not existUnchecked runtime.lastError
Seen on: Chrome Edge JavaScript

Meaning

This message floods consoles of developers who have extensions installed. It comes from the extension's content script or background page. To confirm, test in incognito or with extensions disabled. If it comes from your own extension, return true from the onMessage listener when answering asynchronously, or always call sendResponse.

Common causes

  • Extension content script talking to a closed or reloaded page
  • onMessage listener returns without calling sendResponse (async reply)
  • Extension updated/reloaded while a tab stayed open
  • Extension background page not available (Manifest V3 service worker asleep)
  • Third-party extension (password manager, translator, ad blocker)

⚡ Quick fix

  1. Test in an incognito window with extensions disabled — if the message disappears it is an extension
  2. Disable extensions one by one to find the culprit
  3. Extension authors: return true; from async onMessage listeners

Detailed fix by platform

Chrome

  1. chrome://extensions → toggle extensions off one by one; DevTools console filter "Hide extension messages"

JavaScript

  1. Extension code: chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { doWork().then(sendResponse); return true; });

How to diagnose

  1. Source — Does it vanish in incognito?
  2. Which — Which extension (console source link)?
  3. Own — Is it your extension?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

$ is not defined — Console: Uncaught ReferenceError: $ is not defined (jQuery not loaded or loaded after your code) (Browser)$ is not definedAw, Snap! — Chrome: Aw, Snap! Something went wrong while displaying this webpage. Error code: STATUS_ACCESS_VIOLATION / SIGILL / Out of Memory (Browser)Aw, Snap!captive portal — Browser: This network requires you to sign in — captive portal (hotel, airport, café Wi-Fi) blocking HTTPS sites (Browser)captive portalDevTools failed to load source map — DevTools: Failed to load source map — Could not load content for https://…/app.js.map: HTTP error: status code 404 (Browser)DevTools failed to lo…ERR_BLOCKED_BY_CLIENT — net::ERR_BLOCKED_BY_CLIENT (JavaScript)ERR_BLOCKED_BY_CLIENTExtension context invalidated — Console: Uncaught Error: Extension context invalidated (extension was updated or reloaded) (Browser)Extension context inv…Geolocation permission denied — Console: User denied Geolocation / Only secure origins are allowed (geolocation) / GeolocationPositionError code 1 (Browser)Geolocation permissio…NotFoundError: Requested device not found — Console: NotFoundError: Requested device not found (getUserMedia has no camera or microphone) (Browser)NotFoundError: Reques…Unchecked…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.