| AbortError |
AbortError: The user aborted a request. / signal is aborted without reason |
A fetch was cancelled through an AbortController (or the browser cancelled it). |
| ChunkLoadError |
ChunkLoadError: Loading chunk 123 failed. |
A lazily loaded JavaScript chunk couldn’t be downloaded — usually because a new deployment removed the old ha… |
| invalid selector |
DOMException: Failed to execute 'querySelector' on 'Document': 'x' is not a valid selector |
The CSS selector string is invalid — often an ID starting with a digit or containing special characters. |
| ERR_SSL_PROTOCOL_ERROR |
ERR_SSL_PROTOCOL_ERROR (This site can't provide a secure connection) |
The browser couldn’t negotiate TLS — the server sent an invalid response, often plain HTTP on the HTTPS port. |
| module MIME type |
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html" |
A or dynamic import got HTML back instead of JavaScript. |
| ERR_ABORTED |
net::ERR_ABORTED 404 (Not Found) |
The browser cancelled the request — often because it returned an error (404) or the page navigated away. |
| ERR_BLOCKED_BY_CLIENT |
net::ERR_BLOCKED_BY_CLIENT |
A browser extension (ad blocker, privacy tool) blocked the request. |
| ERR_CERT_AUTHORITY_INVALID |
NET::ERR_CERT_AUTHORITY_INVALID (Your connection is not private) |
The site’s certificate isn’t signed by a CA the browser trusts — self-signed, missing intermediates, or inter… |
| ERR_CERT_DATE_INVALID |
NET::ERR_CERT_DATE_INVALID (certificate expired) |
The site’s certificate has expired (or isn’t valid yet) — or the device clock is wrong. |
| ERR_CONNECTION_REFUSED |
net::ERR_CONNECTION_REFUSED (This site can't be reached — refused to connect) |
The browser reached the host but nothing was listening on that port. |
| ERR_NAME_NOT_RESOLVED |
net::ERR_NAME_NOT_RESOLVED (This site can't be reached — server IP address could not be found) |
DNS couldn’t resolve the hostname in the browser. |
| clipboard write blocked |
NotAllowedError: Failed to execute 'writeText' on 'Clipboard': Document is not focused. |
The Clipboard API refused to write — the page isn’t focused, there was no user gesture, or the context isn’t… |
| autoplay blocked |
NotAllowedError: play() failed because the user didn't interact with the document first. |
The browser blocked media autoplay with sound until the user interacts with the page. |
| QuotaExceededError |
QuotaExceededError: Failed to execute 'setItem' on 'Storage': Setting the value exceeded the quota |
localStorage/sessionStorage is full (about 5 MB per origin) or storage is disabled. |
| invalid array length |
RangeError: Invalid array length |
An array was created or resized with a negative, fractional or enormous length. |
| invalid string length |
RangeError: Invalid string length |
A string grew beyond the engine’s maximum length — usually runaway concatenation or huge JSON.stringify outpu… |
| invalid time value |
RangeError: Invalid time value |
A Date is invalid (NaN), and toISOString() or a formatting library couldn’t format it. |
| RangeError |
RangeError: Maximum call stack size exceeded |
A function called itself (directly or indirectly) too many times — usually infinite recursion. |
| TDZ |
ReferenceError: Cannot access 'x' before initialization |
A let/const/class was used before its declaration line ran (temporal dead zone) — often a circular import. |
| ReferenceError |
ReferenceError: x is not defined |
Code refers to a variable or function name that doesn’t exist in the current scope. |
| MIME type not executable |
Refused to execute script from 'x' because its MIME type ('text/html') is not executable |
The browser fetched a script but the server labelled it text/html (usually an error page), so it refused to r… |
| CSP violation |
Refused to load the script because it violates the following Content Security Policy directive |
The page’s Content-Security-Policy doesn’t allow that script, style, image or connection source. |
| ResizeObserver loop |
ResizeObserver loop completed with undelivered notifications. |
A ResizeObserver callback changed layout in a way that triggered another resize in the same frame. |
| Script error. |
Script error. (at line 0) — cross-origin error details hidden |
An error happened in a script from another origin, and the browser hid the details. |
| blocked a frame |
SecurityError: Blocked a frame with origin "x" from accessing a cross-origin frame. |
Script tried to read or modify an iframe (or window) from another origin. |
| await outside async |
SyntaxError: await is only valid in async functions and the top level bodies of modules |
await was used inside a function that isn’t async (or in a classic, non-module script). |
| already declared |
SyntaxError: Identifier 'x' has already been declared |
The same let/const/class name was declared twice in the same scope. |
| invalid token |
SyntaxError: Invalid or unexpected token |
The code contains a character the parser can’t handle — smart quotes, stray characters or an unterminated str… |
| invalid regex |
SyntaxError: Invalid regular expression: /x/: Unterminated group |
A regex pattern has invalid syntax — unbalanced parentheses/brackets or unescaped special characters. |
| missing ) |
SyntaxError: missing ) after argument list |
A function call’s parentheses are unbalanced — often an unescaped quote or a missing comma/plus. |
| unexpected end of input |
SyntaxError: Unexpected end of input |
The parser reached the end of the code (or JSON) while still expecting more — a missing } ) ] or empty JSON. |
| unexpected identifier |
SyntaxError: Unexpected identifier |
The parser found a name where it expected punctuation — usually a missing comma, operator or quote. |
| Unexpected token < |
SyntaxError: Unexpected token '<' (HTML served instead of JavaScript) |
The browser loaded a .js file but received HTML (an error page or the SPA index.html). |
| SyntaxError: JSON |
SyntaxError: Unexpected token < in JSON at position 0 |
`JSON.parse()` / `response.json()` received something that isn’t JSON — very often an HTML error page. |
| TypeError const |
TypeError: Assignment to constant variable. |
Code reassigned a variable declared with const. |
| read-only property |
TypeError: Cannot assign to read only property 'x' of object |
Code tried to modify a frozen object, a getter-only property, or immutable state. |
| Object.keys null |
TypeError: Cannot convert undefined or null to object |
Object.keys/entries/assign was called with undefined or null. |
| addEventListener on null |
TypeError: Cannot read properties of null (reading 'addEventListener') |
document.querySelector/getElementById returned null, so the element doesn’t exist when the script runs. |
| reading length |
TypeError: Cannot read properties of undefined (reading 'length') |
Code checked .length on something that is undefined — typically an array or string that hasn’t loaded. |
| TypeError |
TypeError: Cannot read properties of undefined (reading 'x') |
You tried to access a property on a value that is `undefined` (or `null`) — usually data that hasn’t loaded y… |
| TypeError set undefined |
TypeError: Cannot set properties of undefined (setting 'x') |
Code assigned a property on a value that is undefined (or null). |
| circular JSON |
TypeError: Converting circular structure to JSON |
JSON.stringify met an object that references itself (directly or through children). |
| body already used |
TypeError: Failed to execute 'json' on 'Response': body stream already read |
A fetch Response body was consumed twice (e.g. calling .text() then .json()). |
| Failed to fetch |
TypeError: Failed to fetch / NetworkError when attempting to fetch resource |
The browser couldn’t complete the request at the network level — CORS, DNS, offline, blocked mixed content, o… |
| reduce empty |
TypeError: Reduce of empty array with no initial value |
Array.reduce() ran on an empty array without an initial value. |
| not a constructor |
TypeError: x is not a constructor |
new was used with something that isn’t a class/constructor — usually a wrong import. |
| TypeError: not a function |
TypeError: x is not a function |
You called something as a function, but its value is not a function (it’s undefined, a string, an object…). |
| TypeError not iterable |
TypeError: x is not iterable |
for…of, spread or destructuring was used on something that isn’t an array/iterable. |
| URIError |
URIError: URI malformed |
decodeURIComponent/decodeURI received an invalid percent-encoded sequence. |
| WebSocket failed |
WebSocket connection to 'wss://x' failed |
The browser couldn’t open (or keep) a WebSocket connection. |