JavaScript error reference
Below, you'll find a list of errors which are thrown by JavaScript. These errors can be a helpful debugging aid, but the reported problem isn't always immediately clear. The pages below will provide additional details about these errors. Each error is an object based upon the Error object, and has a name and a message.
Errors displayed in the Web console may include a link to the corresponding page below to help you quickly comprehend the problem in your code.
For a beginner's introductory tutorial on fixing JavaScript errors, see What went wrong? Troubleshooting JavaScript.
List of errors
In this list, each page is listed by name (the type of error) and message (a more detailed human-readable error message). Together, these two properties provide a starting point toward understanding and resolving the error. For more information, follow the links below!
- TypeError: already executing generator
- Warning: -file- is being assigned a //# sourceMappingURL, but already has one
- SyntaxError: arguments is not valid in fields
- TypeError: invalid Array.prototype.sort argument
- SyntaxError: await/yield expression can't be used in parameter
- SyntaxError: await is only valid in async functions, async generators and modules
- SyntaxError: unlabeled break must be inside loop or switch
- SyntaxError: continue must be inside loop
- SyntaxError: new keyword cannot be used with an optional chain
- SyntaxError: tagged template cannot be used with optional chain
- RangeError: radix must be an integer
- SyntaxError: invalid regular expression flag "x"
- SyntaxError: return not in function
- SyntaxError: 'arguments'/'eval' can't be defined or assigned to in strict mode code
- SyntaxError: super() is only valid in derived class constructors
- SyntaxError: use of super property/member accesses only valid within methods or eval code within methods
- RangeError: BigInt division by zero
- RangeError: BigInt negative exponent
- TypeError: BigInt value can't be serialized in JSON
- TypeError: calling a builtin X constructor without new is forbidden
- TypeError: X.prototype.y called on incompatible type
- ReferenceError: can't access lexical declaration 'X' before initialization
- TypeError: can't assign to property "x" on "y": not an object
- RangeError: x can't be converted to BigInt because it isn't an integer
- TypeError: can't convert BigInt to number
- TypeError: can't convert x to BigInt
- TypeError: can't define property "x": "obj" is not extensible
- TypeError: property "x" is non-configurable and can't be deleted
- SyntaxError: private fields can't be deleted
- TypeError: can't redefine non-configurable property "x"
- TypeError: can't set prototype of this object
- SyntaxError: cannot use ?? unparenthesized within || and && expressions
- TypeError: class constructors must be invoked with 'new'
- TypeError: Iterator/AsyncIterator constructor can't be used directly
- TypeError: cyclic object value
- TypeError: can't set prototype: it would cause a prototype chain cycle
- SyntaxError: applying the 'delete' operator to an unqualified name is deprecated
- TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed
- SyntaxError: octal escape sequences can't be used in untagged template literals or in strict mode code
- SyntaxError: "0"-prefixed octal literals are deprecated
- SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead
- SyntaxError: duplicate formal argument x
- SyntaxError: property name __proto__ appears more than once in object literal
- SyntaxError: getter and setter for private name #x should either be both static or non-static
- RangeError: form must be one of 'NFC', 'NFD', 'NFKC', or 'NFKD'
- SyntaxError: functions cannot be labelled
- TypeError: can't access/set private field or method: object is not the right class
- SyntaxError: getter functions must have no arguments
- TypeError: setting getter-only property "x"
- SyntaxError: Unexpected '#' used outside of class body
- SyntaxError: identifier starts immediately after numeric literal
- SyntaxError: illegal character
- SyntaxError: import declarations may only appear at top level of a module
- TypeError: cannot use 'in' operator to search for 'x' in 'y'
- RangeError: invalid array length
- SyntaxError: invalid assignment left-hand side
- SyntaxError: invalid BigInt syntax
- TypeError: invalid assignment to const "x"
- RangeError: invalid date
- TypeError: derived class constructor returned invalid value x
- SyntaxError: for-in loop head declarations may not have initializers
- SyntaxError: a declaration in the head of a for-of loop can't have an initializer
- TypeError: invalid 'instanceof' operand 'x'
- TypeError: 'x' is not iterable
- SyntaxError: JSON.parse: bad parsing
- TypeError: WeakSet key/WeakMap value 'x' must be an object or an unregistered symbol
- SyntaxError: label not found
- URIError: malformed URI sequence
- SyntaxError: missing ] after element list
- SyntaxError: missing : after property id
- SyntaxError: missing } after function body
- SyntaxError: missing } after property list
- SyntaxError: missing formal parameter
- SyntaxError: missing = in const declaration
- SyntaxError: missing name after . operator
- SyntaxError: missing ) after argument list
- SyntaxError: missing ) after condition
- TypeError: More arguments needed
- RangeError: repeat count must be non-negative
- TypeError: "x" is not a non-null object
- TypeError: null/undefined has no properties
- SyntaxError: missing variable name
- TypeError: can't delete non-configurable array element
- TypeError: "x" is not a constructor
- TypeError: "x" is not a function
- RangeError: argument is not a valid code point
- ReferenceError: "x" is not defined
- SyntaxError: parameter after rest parameter
- RangeError: precision is out of range
- TypeError: Initializing an object twice is an error with private fields/methods
- TypeError: getting private setter-only property
- AggregateError: No Promise in Promise.any was resolved
- Error: Permission denied to access property "x"
- TypeError: "x" is read-only
- SyntaxError: redeclaration of formal parameter "x"
- TypeError: Reduce of empty array with no initial value
- SyntaxError: \ at end of pattern
- SyntaxError: character class escape cannot be used in class range in regular expression
- SyntaxError: duplicate capture group name in regular expression
- SyntaxError: incomplete quantifier in regular expression
- SyntaxError: invalid capture group name in regular expression
- SyntaxError: invalid character in class in regular expression
- SyntaxError: invalid class set operation in regular expression
- SyntaxError: invalid decimal escape in regular expression
- SyntaxError: invalid regexp group
- SyntaxError: invalid identity escape in regular expression
- SyntaxError: invalid named capture reference in regular expression
- SyntaxError: invalid property name in regular expression
- SyntaxError: invalid range in character class
- SyntaxError: invalid unicode escape in regular expression
- SyntaxError: negated character class with strings in regular expression
- SyntaxError: nothing to repeat
- SyntaxError: numbers out of order in {} quantifier.
- SyntaxError: raw bracket is not allowed in regular expression with unicode flag
- TypeError: matchAll/replaceAll must be called with a global RegExp
- SyntaxError: "x" is a reserved identifier
- SyntaxError: rest parameter may not have a default
- RangeError: repeat count must be less than infinity
- SyntaxError: setter functions must have one argument
- Warning: unreachable code after return statement
- SyntaxError: "use strict" not allowed in function with non-simple parameters
- SyntaxError: string literal contains an unescaped line break
- ReferenceError: super() called twice in derived class constructor
- ReferenceError: must call super constructor before using 'this' in derived class constructor
- InternalError: too much recursion
- SyntaxError: reference to undeclared private field or method #x
- ReferenceError: assignment to undeclared variable "x"
- SyntaxError: Unexpected token
- TypeError: "x" is (not) "y"
- SyntaxError: function statement requires a name
- SyntaxError: unparenthesized unary expression can't appear on the left-hand side of '**'
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors