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.
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 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
onMessagelistener returns without callingsendResponse(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
- Test in an incognito window with extensions disabled — if the message disappears it is an extension
- Disable extensions one by one to find the culprit
- Extension authors:
return true;from asynconMessagelisteners
Detailed fix by platform
Chrome
chrome://extensions→ toggle extensions off one by one; DevTools console filter "Hide extension messages"
JavaScript
- Extension code:
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { doWork().then(sendResponse); return true; });
How to diagnose
- Source — Does it vanish in incognito?
- Which — Which extension (console source link)?
- 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:
Similar errors
- $ is not defined Console: Uncaught ReferenceError: $ is not defined (jQuery not loaded or loaded after your code)
- Aw, Snap! Chrome: Aw, Snap! Something went wrong while displaying this webpage. Error code: STATUS_ACCESS_VIOLATION / SIGILL / Out of Memory
- captive portal Browser: This network requires you to sign in — captive portal (hotel, airport, café Wi-Fi) blocking HTTPS sites
Most viewed in Browser
Other ways to find it
Where this error sits
Origin: On your device. Errors that are often confused with or caused by this one (click to open):
🧠 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.
Report a correction or suggest an improvement
Last updated 15 Oct 2026