Uncaught (in promise) Browser Origin: On your device Last updated 15 Oct 2026

Console: Uncaught (in promise) Error / TypeError / DOMException — unhandled promise rejection

A promise was rejected and no .catch() or try/catch handled it, so the browser logs it as an unhandled rejection.

Exact message you may see Uncaught (in promise)Uncaught (in promise) TypeErrorUncaught (in promise) ErrorUnhandled Promise Rejection
Seen on: Chrome Firefox JavaScript

Meaning

The text after "Uncaught (in promise)" is the real error — often a failed fetch, a TypeError, or code that threw inside an async function. Add error handling at the call site, return the promise so callers can catch, and use the unhandledrejection event to log missed ones.

Common causes

  • fetch or other async call without .catch / try…catch
  • Error thrown inside an async function that nobody awaits
  • Rejected promise created by Promise.reject and ignored
  • Extension or third-party script rejecting
  • Missing await so the rejection escapes the surrounding try/catch

⚡ Quick fix

  1. Read the message after "Uncaught (in promise)" to see the real error
  2. Wrap awaits in try/catch or add .catch()
  3. Always await or return promises

Detailed fix by platform

JavaScript

  1. try { await load(); } catch (e) { console.error('load failed', e); }
  2. Global net: window.addEventListener('unhandledrejection', e => console.error('unhandled', e.reason));

Code examples

Handle async errors

javascript
async function load() {
  const res = await fetch('/api/data');
  if (!res.ok) throw new Error('HTTP ' + res.status);
  return res.json();
}

// Not handled: load();          -> Uncaught (in promise) Error: HTTP 500
load().catch(err => console.error('load failed', err));   // handled

How to diagnose

  1. Message — What follows "Uncaught (in promise)"?
  2. Stack — Which async call created it?
  3. Await — Any missing await or catch?

🔧 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):

AbortError — AbortError: The user aborted a request. / signal is aborted without reason (JavaScript)AbortErrorAw, 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 portalExtension context invalidated — Console: Uncaught Error: Extension context invalidated (extension was updated or reloaded) (Browser)Extension context inv…Failed to fetch — TypeError: Failed to fetch / NetworkError when attempting to fetch resource (JavaScript)Failed to fetchThe canvas has been tainted by cross-origin data — Console: SecurityError: Failed to execute 'toDataURL' / 'getImageData' on 'HTMLCanvasElement': Tainted canvases may not be exported (Browser)The canvas has been t…Unchecked runtime.lastError — Console: Unchecked runtime.lastError: The message port closed before a response was received (extension message) (Browser)Unchecked runtime.las…Uncaught …

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.