Errors#
Applications running in Node.js will generally experience the followingcategories of errors:
- Standard JavaScript errors such as<EvalError>,<SyntaxError>,<RangeError>,<ReferenceError>,<TypeError>, and<URIError>.
- Standard
DOMException
s. - System errors triggered by underlying operating system constraints suchas attempting to open a file that does not exist or attempting to send dataover a closed socket.
AssertionError
s are a special class of error that can be triggered whenNode.js detects an exceptional logic violation that should never occur. Theseare raised typically by thenode:assert
module.- User-specified errors triggered by application code.
All JavaScript and system errors raised by Node.js inherit from, or areinstances of, the standard JavaScript<Error> class and are guaranteedto provideat least the properties available on that class.
Theerror.message
property of errors raised by Node.js may be changed inany versions. Useerror.code
to identify an error instead. For aDOMException
, usedomException.name
to identify its type.
Error propagation and interception#
Node.js supports several mechanisms for propagating and handling errors thatoccur while an application is running. How these errors are reported andhandled depends entirely on the type ofError
and the style of the API that iscalled.
All JavaScript errors are handled as exceptions thatimmediately generateand throw an error using the standard JavaScriptthrow
mechanism. Theseare handled using thetry…catch
construct provided by theJavaScript language.
// Throws with a ReferenceError because z is not defined.try {const m =1;const n = m + z;}catch (err) {// Handle the error here.}
Any use of the JavaScriptthrow
mechanism will raise an exception thatmust be handled or the Node.js process will exit immediately.
With few exceptions,Synchronous APIs (any blocking method that does notreturn a<Promise> nor accept acallback
function, such asfs.readFileSync
), will usethrow
to report errors.
Errors that occur withinAsynchronous APIs may be reported in multiple ways:
Some asynchronous methods returns a<Promise>, you should always take intoaccount that it might be rejected. See
--unhandled-rejections
flag forhow the process will react to an unhandled promise rejection.const fs =require('node:fs/promises');(async () => {let data;try { data =await fs.readFile('a file that does not exist'); }catch (err) {console.error('There was an error reading the file!', err);return; }// Otherwise handle the data})();
Most asynchronous methods that accept a
callback
function will accept anError
object passed as the first argument to that function. If that firstargument is notnull
and is an instance ofError
, then an error occurredthat should be handled.const fs =require('node:fs');fs.readFile('a file that does not exist',(err, data) => {if (err) {console.error('There was an error reading the file!', err);return; }// Otherwise handle the data});
When an asynchronous method is called on an object that is an
EventEmitter
, errors can be routed to that object's'error'
event.const net =require('node:net');const connection = net.connect('localhost');// Adding an 'error' event handler to a stream:connection.on('error',(err) => {// If the connection is reset by the server, or if it can't// connect at all, or on any sort of error encountered by// the connection, the error will be sent here.console.error(err);});connection.pipe(process.stdout);
A handful of typically asynchronous methods in the Node.js API may stilluse the
throw
mechanism to raise exceptions that must be handled usingtry…catch
. There is no comprehensive list of such methods; pleaserefer to the documentation of each method to determine the appropriateerror handling mechanism required.
The use of the'error'
event mechanism is most common forstream-basedandevent emitter-based APIs, which themselves represent a series ofasynchronous operations over time (as opposed to a single operation that maypass or fail).
ForallEventEmitter
objects, if an'error'
event handler is notprovided, the error will be thrown, causing the Node.js process to report anuncaught exception and crash unless either: a handler has been registered forthe'uncaughtException'
event, or the deprecatednode:domain
module is used.
constEventEmitter =require('node:events');const ee =newEventEmitter();setImmediate(() => {// This will crash the process because no 'error' event// handler has been added. ee.emit('error',newError('This will crash'));});
Errors generated in this waycannot be intercepted usingtry…catch
asthey are thrownafter the calling code has already exited.
Developers must refer to the documentation for each method to determineexactly how errors raised by those methods are propagated.
Class:Error
#
A generic JavaScript<Error> object that does not denote any specificcircumstance of why the error occurred.Error
objects capture a "stack trace"detailing the point in the code at which theError
was instantiated, and mayprovide a text description of the error.
All errors generated by Node.js, including all system and JavaScript errors,will either be instances of, or inherit from, theError
class.
new Error(message[, options])
#
Creates a newError
object and sets theerror.message
property to theprovided text message. If an object is passed asmessage
, the text messageis generated by callingString(message)
. If thecause
option is provided,it is assigned to theerror.cause
property. Theerror.stack
property willrepresent the point in the code at whichnew Error()
was called. Stack tracesare dependent onV8's stack trace API. Stack traces extend only to either(a) the beginning ofsynchronous code execution, or (b) the number of framesgiven by the propertyError.stackTraceLimit
, whichever is smaller.
Error.captureStackTrace(targetObject[, constructorOpt])
#
targetObject
<Object>constructorOpt
<Function>
Creates a.stack
property ontargetObject
, which when accessed returnsa string representing the location in the code at whichError.captureStackTrace()
was called.
const myObject = {};Error.captureStackTrace(myObject);myObject.stack;// Similar to `new Error().stack`
The first line of the trace will be prefixed with${myObject.name}: ${myObject.message}
.
The optionalconstructorOpt
argument accepts a function. If given, all framesaboveconstructorOpt
, includingconstructorOpt
, will be omitted from thegenerated stack trace.
TheconstructorOpt
argument is useful for hiding implementationdetails of error generation from the user. For instance:
functiona() {b();}functionb() {c();}functionc() {// Create an error without stack trace to avoid calculating the stack trace twice.const { stackTraceLimit } =Error;Error.stackTraceLimit =0;const error =newError();Error.stackTraceLimit = stackTraceLimit;// Capture the stack trace above function bError.captureStackTrace(error, b);// Neither function c, nor b is included in the stack tracethrow error;}a();
Error.stackTraceLimit
#
TheError.stackTraceLimit
property specifies the number of stack framescollected by a stack trace (whether generated bynew Error().stack
orError.captureStackTrace(obj)
).
The default value is10
but may be set to any valid JavaScript number. Changeswill affect any stack trace capturedafter the value has been changed.
If set to a non-number value, or set to a negative number, stack traces willnot capture any frames.
error.cause
#
If present, theerror.cause
property is the underlying cause of theError
.It is used when catching an error and throwing a new one with a differentmessage or code in order to still have access to the original error.
Theerror.cause
property is typically set by callingnew Error(message, { cause })
. It is not set by the constructor if thecause
option is not provided.
This property allows errors to be chained. When serializingError
objects,util.inspect()
recursively serializeserror.cause
if it is set.
const cause =newError('The remote HTTP server responded with a 500 status');const symptom =newError('The message failed to send', { cause });console.log(symptom);// Prints:// Error: The message failed to send// at REPL2:1:17// at Script.runInThisContext (node:vm:130:12)// ... 7 lines matching cause stack trace ...// at [_line] [as _line] (node:internal/readline/interface:886:18) {// [cause]: Error: The remote HTTP server responded with a 500 status// at REPL1:1:15// at Script.runInThisContext (node:vm:130:12)// at REPLServer.defaultEval (node:repl:574:29)// at bound (node:domain:426:15)// at REPLServer.runBound [as eval] (node:domain:437:12)// at REPLServer.onLine (node:repl:902:10)// at REPLServer.emit (node:events:549:35)// at REPLServer.emit (node:domain:482:12)// at [_onLine] [as _onLine] (node:internal/readline/interface:425:12)// at [_line] [as _line] (node:internal/readline/interface:886:18)
error.code
#
Theerror.code
property is a string label that identifies the kind of error.error.code
is the most stable way to identify an error. It will only changebetween major versions of Node.js. In contrast,error.message
strings maychange between any versions of Node.js. SeeNode.js error codes for detailsabout specific codes.
error.message
#
Theerror.message
property is the string description of the error as set bycallingnew Error(message)
. Themessage
passed to the constructor will alsoappear in the first line of the stack trace of theError
, however changingthis property after theError
object is createdmay not change the firstline of the stack trace (for example, whenerror.stack
is read before thisproperty is changed).
const err =newError('The message');console.error(err.message);// Prints: The message
error.stack
#
Theerror.stack
property is a string describing the point in the code at whichtheError
was instantiated.
Error: Things keep happening! at /home/gbusey/file.js:525:2 at Frobnicator.refrobulate (/home/gbusey/business-logic.js:424:21) at Actor.<anonymous> (/home/gbusey/actors.js:400:8) at increaseSynergy (/home/gbusey/actors.js:701:6)
The first line is formatted as<error class name>: <error message>
, andis followed by a series of stack frames (each line beginning with "at ").Each frame describes a call site within the code that lead to the error beinggenerated. V8 attempts to display a name for each function (by variable name,function name, or object method name), but occasionally it will not be able tofind a suitable name. If V8 cannot determine a name for the function, onlylocation information will be displayed for that frame. Otherwise, thedetermined function name will be displayed with location information appendedin parentheses.
Frames are only generated for JavaScript functions. If, for example, executionsynchronously passes through a C++ addon function calledcheetahify
whichitself calls a JavaScript function, the frame representing thecheetahify
callwill not be present in the stack traces:
const cheetahify =require('./native-binding.node');functionmakeFaster() {// `cheetahify()` *synchronously* calls speedy.cheetahify(functionspeedy() {thrownewError('oh no!'); });}makeFaster();// will throw:// /home/gbusey/file.js:6// throw new Error('oh no!');// ^// Error: oh no!// at speedy (/home/gbusey/file.js:6:11)// at makeFaster (/home/gbusey/file.js:5:3)// at Object.<anonymous> (/home/gbusey/file.js:10:1)// at Module._compile (module.js:456:26)// at Object.Module._extensions..js (module.js:474:10)// at Module.load (module.js:356:32)// at Function.Module._load (module.js:312:12)// at Function.Module.runMain (module.js:497:10)// at startup (node.js:119:16)// at node.js:906:3
The location information will be one of:
native
, if the frame represents a call internal to V8 (as in[].forEach
).plain-filename.js:line:column
, if the frame represents a call internalto Node.js./absolute/path/to/file.js:line:column
, if the frame represents a call ina user program (using CommonJS module system), or its dependencies.<transport-protocol>:///url/to/module/file.mjs:line:column
, if the framerepresents a call in a user program (using ES module system), orits dependencies.
The string representing the stack trace is lazily generated when theerror.stack
property isaccessed.
The number of frames captured by the stack trace is bounded by the smaller ofError.stackTraceLimit
or the number of available frames on the current eventloop tick.
Class:AssertionError
#
- Extends:<errors.Error>
Indicates the failure of an assertion. For details, seeClass: assert.AssertionError
.
Class:RangeError
#
- Extends:<errors.Error>
Indicates that a provided argument was not within the set or range ofacceptable values for a function; whether that is a numeric range, oroutside the set of options for a given function parameter.
require('node:net').connect(-1);// Throws "RangeError: "port" option should be >= 0 and < 65536: -1"
Node.js will generate and throwRangeError
instancesimmediately as a formof argument validation.
Class:ReferenceError
#
- Extends:<errors.Error>
Indicates that an attempt is being made to access a variable that is notdefined. Such errors commonly indicate typos in code, or an otherwise brokenprogram.
While client code may generate and propagate these errors, in practice, only V8will do so.
doesNotExist;// Throws ReferenceError, doesNotExist is not a variable in this program.
Unless an application is dynamically generating and running code,ReferenceError
instances indicate a bug in the code or its dependencies.
Class:SyntaxError
#
- Extends:<errors.Error>
Indicates that a program is not valid JavaScript. These errors may only begenerated and propagated as a result of code evaluation. Code evaluation mayhappen as a result ofeval
,Function
,require
, orvm. These errorsare almost always indicative of a broken program.
try {require('node:vm').runInThisContext('binary ! isNotOk');}catch (err) {// 'err' will be a SyntaxError.}
SyntaxError
instances are unrecoverable in the context that created them –they may only be caught by other contexts.
Class:SystemError
#
- Extends:<errors.Error>
Node.js generates system errors when exceptions occur within its runtimeenvironment. These usually occur when an application violates an operatingsystem constraint. For example, a system error will occur if an applicationattempts to read a file that does not exist.
address
<string> If present, the address to which a network connectionfailedcode
<string> The string error codedest
<string> If present, the file path destination when reporting a filesystem errorerrno
<number> The system-provided error numberinfo
<Object> If present, extra details about the error conditionmessage
<string> A system-provided human-readable description of the errorpath
<string> If present, the file path when reporting a file system errorport
<number> If present, the network connection port that is not availablesyscall
<string> The name of the system call that triggered the error
error.address
#
If present,error.address
is a string describing the address to which anetwork connection failed.
error.dest
#
If present,error.dest
is the file path destination when reporting a filesystem error.
error.errno
#
Theerror.errno
property is a negative number which correspondsto the error code defined inlibuv Error handling
.
On Windows the error number provided by the system will be normalized by libuv.
To get the string representation of the error code, useutil.getSystemErrorName(error.errno)
.
Common system errors#
This is a list of system errors commonly-encountered when writing a Node.jsprogram. For a comprehensive list, see theerrno
(3) man page.
EACCES
(Permission denied): An attempt was made to access a file in a wayforbidden by its file access permissions.EADDRINUSE
(Address already in use): An attempt to bind a server(net
,http
, orhttps
) to a local address failed due toanother server on the local system already occupying that address.ECONNREFUSED
(Connection refused): No connection could be made because thetarget machine actively refused it. This usually results from trying toconnect to a service that is inactive on the foreign host.ECONNRESET
(Connection reset by peer): A connection was forcibly closed bya peer. This normally results from a loss of the connection on the remotesocket due to a timeout or reboot. Commonly encountered via thehttp
andnet
modules.EEXIST
(File exists): An existing file was the target of an operation thatrequired that the target not exist.EISDIR
(Is a directory): An operation expected a file, but the givenpathname was a directory.EMFILE
(Too many open files in system): Maximum number offile descriptors allowable on the system has been reached, andrequests for another descriptor cannot be fulfilled until at least onehas been closed. This is encountered when opening many files at once inparallel, especially on systems (in particular, macOS) where there is a lowfile descriptor limit for processes. To remedy a low limit, runulimit -n 2048
in the same shell that will run the Node.js process.ENOENT
(No such file or directory): Commonly raised byfs
operationsto indicate that a component of the specified pathname does not exist. Noentity (file or directory) could be found by the given path.ENOTDIR
(Not a directory): A component of the given pathname existed, butwas not a directory as expected. Commonly raised byfs.readdir
.ENOTEMPTY
(Directory not empty): A directory with entries was the targetof an operation that requires an empty directory, usuallyfs.unlink
.ENOTFOUND
(DNS lookup failed): Indicates a DNS failure of eitherEAI_NODATA
orEAI_NONAME
. This is not a standard POSIX error.EPERM
(Operation not permitted): An attempt was made to perform anoperation that requires elevated privileges.EPIPE
(Broken pipe): A write on a pipe, socket, or FIFO for which there isno process to read the data. Commonly encountered at thenet
andhttp
layers, indicative that the remote side of the stream beingwritten to has been closed.ETIMEDOUT
(Operation timed out): A connect or send request failed becausethe connected party did not properly respond after a period of time. Usuallyencountered byhttp
ornet
. Often a sign that asocket.end()
was not properly called.
Class:TypeError
#
- Extends<errors.Error>
Indicates that a provided argument is not an allowable type. For example,passing a function to a parameter which expects a string would be aTypeError
.
require('node:url').parse(() => { });// Throws TypeError, since it expected a string.
Node.js will generate and throwTypeError
instancesimmediately as a formof argument validation.
Exceptions vs. errors#
A JavaScript exception is a value that is thrown as a result of an invalidoperation or as the target of athrow
statement. While it is not requiredthat these values are instances ofError
or classes which inherit fromError
, all exceptions thrown by Node.js or the JavaScript runtimewill beinstances ofError
.
Some exceptions areunrecoverable at the JavaScript layer. Such exceptionswillalways cause the Node.js process to crash. Examples includeassert()
checks orabort()
calls in the C++ layer.
OpenSSL errors#
Errors originating incrypto
ortls
are of classError
, and in addition tothe standard.code
and.message
properties, may have some additionalOpenSSL-specific properties.
error.opensslErrorStack
#
An array of errors that can give context to where in the OpenSSL library anerror originates from.
error.function
#
The OpenSSL function the error originates in.
error.library
#
The OpenSSL library the error originates in.
Node.js error codes#
ABORT_ERR
#
Used when an operation has been aborted (typically using anAbortController
).
APIsnot usingAbortSignal
s typically do not raise an error with this code.
This code does not use the regularERR_*
convention Node.js errors use inorder to be compatible with the web platform'sAbortError
.
ERR_ACCESS_DENIED
#
A special type of error that is triggered whenever Node.js tries to get accessto a resource restricted by thePermission Model.
ERR_AMBIGUOUS_ARGUMENT
#
A function argument is being used in a way that suggests that the functionsignature may be misunderstood. This is thrown by thenode:assert
module whenthemessage
parameter inassert.throws(block, message)
matches the errormessage thrown byblock
because that usage suggests that the user believesmessage
is the expected message rather than the message theAssertionError
will display ifblock
does not throw.
ERR_ARG_NOT_ITERABLE
#
An iterable argument (i.e. a value that works withfor...of
loops) wasrequired, but not provided to a Node.js API.
ERR_ASSERTION
#
A special type of error that can be triggered whenever Node.js detects anexceptional logic violation that should never occur. These are raised typicallyby thenode:assert
module.
ERR_ASYNC_CALLBACK
#
An attempt was made to register something that is not a function as anAsyncHooks
callback.
ERR_ASYNC_TYPE
#
The type of an asynchronous resource was invalid. Users are also ableto define their own types if using the public embedder API.
ERR_BROTLI_INVALID_PARAM
#
An invalid parameter key was passed during construction of a Brotli stream.
ERR_BUFFER_CONTEXT_NOT_AVAILABLE
#
An attempt was made to create a Node.jsBuffer
instance from addon or embeddercode, while in a JS engine Context that is not associated with a Node.jsinstance. The data passed to theBuffer
method will have been releasedby the time the method returns.
When encountering this error, a possible alternative to creating aBuffer
instance is to create a normalUint8Array
, which only differs in theprototype of the resulting object.Uint8Array
s are generally accepted in allNode.js core APIs whereBuffer
s are; they are available in all Contexts.
ERR_BUFFER_TOO_LARGE
#
An attempt has been made to create aBuffer
larger than the maximum allowedsize.
ERR_CHILD_PROCESS_IPC_REQUIRED
#
Used when a child process is being forked without specifying an IPC channel.
ERR_CHILD_PROCESS_STDIO_MAXBUFFER
#
Used when the main process is trying to read data from the child process'sSTDERR/STDOUT, and the data's length is longer than themaxBuffer
option.
ERR_CLOSED_MESSAGE_PORT
#
History
Version | Changes |
---|---|
v16.2.0, v14.17.1 | The error message was reintroduced. |
v11.12.0 | The error message was removed. |
v10.5.0 | Added in: v10.5.0 |
There was an attempt to use aMessagePort
instance in a closedstate, usually after.close()
has been called.
ERR_CONSOLE_WRITABLE_STREAM
#
Console
was instantiated withoutstdout
stream, orConsole
has anon-writablestdout
orstderr
stream.
ERR_CONTEXT_NOT_INITIALIZED
#
The vm context passed into the API is not yet initialized. This could happenwhen an error occurs (and is caught) during the creation of thecontext, for example, when the allocation fails or the maximum call stacksize is reached when the context is created.
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
#
An OpenSSL engine was requested (for example, through theclientCertEngine
orprivateKeyEngine
TLS options) that is not supported by the version of OpenSSLbeing used, likely due to the compile-time flagOPENSSL_NO_ENGINE
.
ERR_CRYPTO_ECDH_INVALID_FORMAT
#
An invalid value for theformat
argument was passed to thecrypto.ECDH()
classgetPublicKey()
method.
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
#
An invalid value for thekey
argument has been passed to thecrypto.ECDH()
classcomputeSecret()
method. It means that the publickey lies outside of the elliptic curve.
ERR_CRYPTO_ENGINE_UNKNOWN
#
An invalid crypto engine identifier was passed torequire('node:crypto').setEngine()
.
ERR_CRYPTO_FIPS_FORCED
#
The--force-fips
command-line argument was used but there was an attemptto enable or disable FIPS mode in thenode:crypto
module.
ERR_CRYPTO_FIPS_UNAVAILABLE
#
An attempt was made to enable or disable FIPS mode, but FIPS mode was notavailable.
ERR_CRYPTO_HASH_FINALIZED
#
hash.digest()
was called multiple times. Thehash.digest()
method mustbe called no more than one time per instance of aHash
object.
ERR_CRYPTO_HASH_UPDATE_FAILED
#
hash.update()
failed for any reason. This should rarely, if ever, happen.
ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS
#
The selected public or private key encoding is incompatible with other options.
ERR_CRYPTO_INVALID_COUNTER
#
An invalid counter was provided for a counter-mode cipher.
ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE
#
The given crypto key object's type is invalid for the attempted operation.
ERR_CRYPTO_INVALID_SCRYPT_PARAMS
#
One or morecrypto.scrypt()
orcrypto.scryptSync()
parameters areoutside their legal range.
ERR_CRYPTO_INVALID_STATE
#
A crypto method was used on an object that was in an invalid state. Forinstance, callingcipher.getAuthTag()
before callingcipher.final()
.
ERR_CRYPTO_JOB_INIT_FAILED
#
Initialization of an asynchronous crypto operation failed.
ERR_CRYPTO_JWK_UNSUPPORTED_CURVE
#
Key's Elliptic Curve is not registered for use in theJSON Web Key Elliptic Curve Registry.
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
#
Key's Asymmetric Key Type is not registered for use in theJSON Web Key Types Registry.
ERR_CRYPTO_OPERATION_FAILED
#
A crypto operation failed for an otherwise unspecified reason.
ERR_CRYPTO_PBKDF2_ERROR
#
The PBKDF2 algorithm failed for unspecified reasons. OpenSSL does not providemore details and therefore neither does Node.js.
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED
#
Node.js was compiled withoutscrypt
support. Not possible with the officialrelease binaries but can happen with custom builds, including distro builds.
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH
#
crypto.timingSafeEqual()
was called withBuffer
,TypedArray
, orDataView
arguments of different lengths.
ERR_CRYPTO_UNKNOWN_DH_GROUP
#
An unknown Diffie-Hellman group name was given. Seecrypto.getDiffieHellman()
for a list of valid group names.
ERR_CRYPTO_UNSUPPORTED_OPERATION
#
An attempt to invoke an unsupported crypto operation was made.
ERR_DEBUGGER_STARTUP_ERROR
#
Thedebugger timed out waiting for the required host/port to be free.
ERR_DIR_CONCURRENT_OPERATION
#
A synchronous read or close call was attempted on anfs.Dir
which hasongoing asynchronous operations.
ERR_DLOPEN_DISABLED
#
Loading native addons has been disabled using--no-addons
.
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE
#
Thenode:domain
module was not usable since it could not establish therequired error handling hooks, becauseprocess.setUncaughtExceptionCaptureCallback()
had been called at anearlier point in time.
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
#
process.setUncaughtExceptionCaptureCallback()
could not be calledbecause thenode:domain
module has been loaded at an earlier point in time.
The stack trace is extended to include the point in time at which thenode:domain
module had been loaded.
ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION
#
v8.startupSnapshot.setDeserializeMainFunction()
could not be calledbecause it had already been called before.
ERR_ENCODING_INVALID_ENCODED_DATA
#
Data provided toTextDecoder()
API was invalid according to the encodingprovided.
ERR_ENCODING_NOT_SUPPORTED
#
Encoding provided toTextDecoder()
API was not one of theWHATWG Supported Encodings.
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE
#
The JS execution context is not associated with a Node.js environment.This may occur when Node.js is used as an embedded library and some hooksfor the JS engine are not set up properly.
ERR_FALSY_VALUE_REJECTION
#
APromise
that was callbackified viautil.callbackify()
was rejected with afalsy value.
ERR_FEATURE_UNAVAILABLE_ON_PLATFORM
#
Used when a feature that is not availableto the current platform which is running Node.js is used.
ERR_FS_CP_DIR_TO_NON_DIR
#
An attempt was made to copy a directory to a non-directory (file, symlink,etc.) usingfs.cp()
.
ERR_FS_CP_EEXIST
#
An attempt was made to copy over a file that already existed withfs.cp()
, with theforce
anderrorOnExist
set totrue
.
ERR_FS_CP_NON_DIR_TO_DIR
#
An attempt was made to copy a non-directory (file, symlink, etc.) to a directoryusingfs.cp()
.
ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY
#
When usingfs.cp()
, a symlink indest
pointed to a subdirectoryofsrc
.
ERR_FS_FILE_TOO_LARGE
#
An attempt has been made to read a file whose size is larger than the maximumallowed size for aBuffer
.
ERR_FS_WATCH_QUEUE_OVERFLOW
#
The number of file system events queued without being handled exceeded the size specified inmaxQueue
infs.watch()
.
ERR_HTTP2_CONNECT_AUTHORITY
#
For HTTP/2 requests using theCONNECT
method, the:authority
pseudo-headeris required.
ERR_HTTP2_CONNECT_PATH
#
For HTTP/2 requests using theCONNECT
method, the:path
pseudo-header isforbidden.
ERR_HTTP2_CONNECT_SCHEME
#
For HTTP/2 requests using theCONNECT
method, the:scheme
pseudo-header isforbidden.
ERR_HTTP2_GOAWAY_SESSION
#
New HTTP/2 Streams may not be opened after theHttp2Session
has received aGOAWAY
frame from the connected peer.
ERR_HTTP2_HEADERS_AFTER_RESPOND
#
An additional headers was specified after an HTTP/2 response was initiated.
ERR_HTTP2_HEADER_SINGLE_VALUE
#
Multiple values were provided for an HTTP/2 header field that was required tohave only a single value.
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED
#
Informational HTTP status codes (1xx
) may not be set as the response statuscode on HTTP/2 responses.
ERR_HTTP2_INVALID_CONNECTION_HEADERS
#
HTTP/1 connection specific headers are forbidden to be used in HTTP/2requests and responses.
ERR_HTTP2_INVALID_INFO_STATUS
#
An invalid HTTP informational status code has been specified. Informationalstatus codes must be an integer between100
and199
(inclusive).
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
#
InputBuffer
andUint8Array
instances passed to thehttp2.getUnpackedSettings()
API must have a length that is a multiple ofsix.
ERR_HTTP2_INVALID_PSEUDOHEADER
#
Only valid HTTP/2 pseudoheaders (:status
,:path
,:authority
,:scheme
,and:method
) may be used.
ERR_HTTP2_INVALID_SESSION
#
An action was performed on anHttp2Session
object that had already beendestroyed.
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK
#
Whenever an HTTP/2SETTINGS
frame is sent to a connected peer, the peer isrequired to send an acknowledgment that it has received and applied the newSETTINGS
. By default, a maximum number of unacknowledgedSETTINGS
frames maybe sent at any given time. This error code is used when that limit has beenreached.
ERR_HTTP2_NESTED_PUSH
#
An attempt was made to initiate a new push stream from within a push stream.Nested push streams are not permitted.
ERR_HTTP2_NO_SOCKET_MANIPULATION
#
An attempt was made to directly manipulate (read, write, pause, resume, etc.) asocket attached to anHttp2Session
.
ERR_HTTP2_OUT_OF_STREAMS
#
The number of streams created on a single HTTP/2 session reached the maximumlimit.
ERR_HTTP2_PAYLOAD_FORBIDDEN
#
A message payload was specified for an HTTP response code for which a payload isforbidden.
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED
#
An HTTP/2 pseudo-header has been used inappropriately. Pseudo-headers are headerkey names that begin with the:
prefix.
ERR_HTTP2_PUSH_DISABLED
#
An attempt was made to create a push stream, which had been disabled by theclient.
ERR_HTTP2_SEND_FILE
#
An attempt was made to use theHttp2Stream.prototype.responseWithFile()
API tosend a directory.
ERR_HTTP2_SEND_FILE_NOSEEK
#
An attempt was made to use theHttp2Stream.prototype.responseWithFile()
API tosend something other than a regular file, butoffset
orlength
options wereprovided.
ERR_HTTP2_SOCKET_BOUND
#
An attempt was made to connect aHttp2Session
object to anet.Socket
ortls.TLSSocket
that had already been bound to anotherHttp2Session
object.
ERR_HTTP2_SOCKET_UNBOUND
#
An attempt was made to use thesocket
property of anHttp2Session
thathas already been closed.
ERR_HTTP2_STATUS_INVALID
#
An invalid HTTP status code has been specified. Status codes must be an integerbetween100
and599
(inclusive).
ERR_HTTP2_STREAM_CANCEL
#
AnHttp2Stream
was destroyed before any data was transmitted to the connectedpeer.
ERR_HTTP2_STREAM_SELF_DEPENDENCY
#
When setting the priority for an HTTP/2 stream, the stream may be marked asa dependency for a parent stream. This error code is used when an attempt ismade to mark a stream and dependent of itself.
ERR_HTTP2_TOO_MANY_INVALID_FRAMES
#
The limit of acceptable invalid HTTP/2 protocol frames sent by the peer,as specified through themaxSessionInvalidFrames
option, has been exceeded.
ERR_HTTP2_TRAILERS_NOT_READY
#
Thehttp2stream.sendTrailers()
method cannot be called until after the'wantTrailers'
event is emitted on anHttp2Stream
object. The'wantTrailers'
event will only be emitted if thewaitForTrailers
optionis set for theHttp2Stream
.
ERR_HTTP2_UNSUPPORTED_PROTOCOL
#
http2.connect()
was passed a URL that uses any protocol other thanhttp:
orhttps:
.
ERR_HTTP_BODY_NOT_ALLOWED
#
An error is thrown when writing to an HTTP response which does not allowcontents.
ERR_HTTP_CONTENT_LENGTH_MISMATCH
#
Response body size doesn't match with the specified content-length header value.
ERR_HTTP_HEADERS_SENT
#
An attempt was made to add more headers after the headers had already been sent.
ERR_HTTP_TRAILER_INVALID
#
TheTrailer
header was set even though the transfer encoding does not supportthat.
ERR_IMPORT_ATTRIBUTE_MISSING
#
An import attribute is missing, preventing the specified module to be imported.
ERR_IMPORT_ATTRIBUTE_TYPE_INCOMPATIBLE
#
An importtype
attribute was provided, but the specified module is of adifferent type.
ERR_IMPORT_ATTRIBUTE_UNSUPPORTED
#
An import attribute is not supported by this version of Node.js.
ERR_INCOMPATIBLE_OPTION_PAIR
#
An option pair is incompatible with each other and cannot be used at the sametime.
ERR_INPUT_TYPE_NOT_ALLOWED
#
The--input-type
flag was used to attempt to execute a file. This flag canonly be used with input via--eval
,--print
, orSTDIN
.
ERR_INSPECTOR_ALREADY_ACTIVATED
#
While using thenode:inspector
module, an attempt was made to activate theinspector when it already started to listen on a port. Useinspector.close()
before activating it on a different address.
ERR_INSPECTOR_ALREADY_CONNECTED
#
While using thenode:inspector
module, an attempt was made to connect when theinspector was already connected.
ERR_INSPECTOR_CLOSED
#
While using thenode:inspector
module, an attempt was made to use theinspector after the session had already closed.
ERR_INSPECTOR_NOT_CONNECTED
#
While using thenode:inspector
module, an attempt was made to use theinspector before it was connected.
ERR_INSPECTOR_NOT_WORKER
#
An API was called on the main thread that can only be used fromthe worker thread.
ERR_INTERNAL_ASSERTION
#
There was a bug in Node.js or incorrect usage of Node.js internals.To fix the error, open an issue athttps://github.com/nodejs/node/issues.
ERR_INVALID_ASYNC_ID
#
An invalidasyncId
ortriggerAsyncId
was passed usingAsyncHooks
. An idless than -1 should never happen.
ERR_INVALID_BUFFER_SIZE
#
A swap was performed on aBuffer
but its size was not compatible with theoperation.
ERR_INVALID_CURSOR_POS
#
A cursor on a given stream cannot be moved to a specified row without aspecified column.
ERR_INVALID_FILE_URL_HOST
#
A Node.js API that consumesfile:
URLs (such as certain functions in thefs
module) encountered a file URL with an incompatible host. Thissituation can only occur on Unix-like systems where onlylocalhost
or an emptyhost is supported.
ERR_INVALID_FILE_URL_PATH
#
A Node.js API that consumesfile:
URLs (such as certain functions in thefs
module) encountered a file URL with an incompatible path. The exactsemantics for determining whether a path can be used is platform-dependent.
ERR_INVALID_HANDLE_TYPE
#
An attempt was made to send an unsupported "handle" over an IPC communicationchannel to a child process. Seesubprocess.send()
andprocess.send()
for more information.
ERR_INVALID_MODULE
#
An attempt was made to load a module that does not exist or was otherwise notvalid.
ERR_INVALID_MODULE_SPECIFIER
#
The imported module string is an invalid URL, package name, or package subpathspecifier.
ERR_INVALID_OBJECT_DEFINE_PROPERTY
#
An error occurred while setting an invalid attribute on the property ofan object.
ERR_INVALID_PACKAGE_TARGET
#
Thepackage.json
"exports"
field contains an invalid target mappingvalue for the attempted module resolution.
ERR_INVALID_REPL_EVAL_CONFIG
#
BothbreakEvalOnSigint
andeval
options were set in theREPL
config,which is not supported.
ERR_INVALID_REPL_INPUT
#
The input may not be used in theREPL
. The conditions under which thiserror is used are described in theREPL
documentation.
ERR_INVALID_RETURN_PROPERTY
#
Thrown in case a function option does not provide a valid value for one of itsreturned object properties on execution.
ERR_INVALID_RETURN_PROPERTY_VALUE
#
Thrown in case a function option does not provide an expected valuetype for one of its returned object properties on execution.
ERR_INVALID_RETURN_VALUE
#
Thrown in case a function option does not return an expected valuetype on execution, such as when a function is expected to return a promise.
ERR_INVALID_STATE
#
Indicates that an operation cannot be completed due to an invalid state.For instance, an object may have already been destroyed, or may beperforming another operation.
ERR_INVALID_SYNC_FORK_INPUT
#
ABuffer
,TypedArray
,DataView
, orstring
was provided as stdio input toan asynchronous fork. See the documentation for thechild_process
modulefor more information.
ERR_INVALID_THIS
#
A Node.js API function was called with an incompatiblethis
value.
const urlSearchParams =newURLSearchParams('foo=bar&baz=new');const buf =Buffer.alloc(1);urlSearchParams.has.call(buf,'foo');// Throws a TypeError with code 'ERR_INVALID_THIS'
ERR_INVALID_TUPLE
#
An element in theiterable
provided to theWHATWGURLSearchParams
constructor did notrepresent a[name, value]
tuple – that is, if an element is not iterable, ordoes not consist of exactly two elements.
ERR_INVALID_TYPESCRIPT_SYNTAX
#
History
Version | Changes |
---|---|
v23.7.0, v22.14.0 | This error is no longer thrown on valid yet unsupported syntax. |
v23.0.0, v22.10.0 | Added in: v23.0.0, v22.10.0 |
The provided TypeScript syntax is not valid.
ERR_INVALID_URL
#
An invalid URL was passed to theWHATWGURL
constructor or the legacyurl.parse()
to be parsed.The thrown error object typically has an additional property'input'
thatcontains the URL that failed to parse.
ERR_INVALID_URL_PATTERN
#
An invalid URLPattern was passed to theWHATWG [URLPattern
constructor][new URLPattern(input)
] to be parsed.
ERR_INVALID_URL_SCHEME
#
An attempt was made to use a URL of an incompatible scheme (protocol) for aspecific purpose. It is only used in theWHATWG URL API support in thefs
module (which only accepts URLs with'file'
scheme), but may be usedin other Node.js APIs as well in the future.
ERR_IPC_CHANNEL_CLOSED
#
An attempt was made to use an IPC communication channel that was already closed.
ERR_IPC_DISCONNECTED
#
An attempt was made to disconnect an IPC communication channel that was alreadydisconnected. See the documentation for thechild_process
modulefor more information.
ERR_IPC_ONE_PIPE
#
An attempt was made to create a child Node.js process using more than one IPCcommunication channel. See the documentation for thechild_process
modulefor more information.
ERR_IPC_SYNC_FORK
#
An attempt was made to open an IPC communication channel with a synchronouslyforked Node.js process. See the documentation for thechild_process
modulefor more information.
ERR_LOADER_CHAIN_INCOMPLETE
#
An ESM loader hook returned without callingnext()
and without explicitlysignaling a short circuit.
ERR_LOAD_SQLITE_EXTENSION
#
An error occurred while loading a SQLite extension.
ERR_MEMORY_ALLOCATION_FAILED
#
An attempt was made to allocate memory (usually in the C++ layer) but itfailed.
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE
#
A message posted to aMessagePort
could not be deserialized in the targetvmContext
. Not all Node.js objects can be successfully instantiated inany context at this time, and attempting to transfer them usingpostMessage()
can fail on the receiving side in that case.
ERR_MISSING_ARGS
#
A required argument of a Node.js API was not passed. This is only used forstrict compliance with the API specification (which in some cases may acceptfunc(undefined)
but notfunc()
). In most native Node.js APIs,func(undefined)
andfunc()
are treated identically, and theERR_INVALID_ARG_TYPE
error code may be used instead.
ERR_MISSING_OPTION
#
For APIs that accept options objects, some options might be mandatory. This codeis thrown if a required option is missing.
ERR_MISSING_PASSPHRASE
#
An attempt was made to read an encrypted key without specifying a passphrase.
ERR_MISSING_PLATFORM_FOR_WORKER
#
The V8 platform used by this instance of Node.js does not support creatingWorkers. This is caused by lack of embedder support for Workers. In particular,this error will not occur with standard builds of Node.js.
ERR_MODULE_NOT_FOUND
#
A module file could not be resolved by the ECMAScript modules loader whileattempting animport
operation or when loading the program entry point.
ERR_MULTIPLE_CALLBACK
#
A callback was called more than once.
A callback is almost always meant to only be called once as the querycan either be fulfilled or rejected but not both at the same time. The latterwould be possible by calling a callback more than once.
ERR_NAPI_INVALID_DATAVIEW_ARGS
#
While callingnapi_create_dataview()
, a givenoffset
was outside the boundsof the dataview oroffset + length
was larger than a length of givenbuffer
.
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT
#
While callingnapi_create_typedarray()
, the providedoffset
was not amultiple of the element size.
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH
#
While callingnapi_create_typedarray()
,(length * size_of_element) + byte_offset
was larger than the length of givenbuffer
.
ERR_NAPI_TSFN_CALL_JS
#
An error occurred while invoking the JavaScript portion of the thread-safefunction.
ERR_NAPI_TSFN_GET_UNDEFINED
#
An error occurred while attempting to retrieve the JavaScriptundefined
value.
ERR_NON_CONTEXT_AWARE_DISABLED
#
A non-context-aware native addon was loaded in a process that disallows them.
ERR_NOT_BUILDING_SNAPSHOT
#
An attempt was made to use operations that can only be used when buildingV8 startup snapshot even though Node.js isn't building one.
ERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATION
#
The operation cannot be performed when it's not in a single-executableapplication.
ERR_NOT_SUPPORTED_IN_SNAPSHOT
#
An attempt was made to perform operations that are not supported whenbuilding a startup snapshot.
ERR_NO_CRYPTO
#
An attempt was made to use crypto features while Node.js was not compiled withOpenSSL crypto support.
ERR_NO_ICU
#
An attempt was made to use features that requireICU, but Node.js was notcompiled with ICU support.
ERR_NO_TYPESCRIPT
#
An attempt was made to use features that requireNative TypeScript support, but Node.js was notcompiled with TypeScript support.
ERR_OPERATION_FAILED
#
An operation failed. This is typically used to signal the general failureof an asynchronous operation.
ERR_OPTIONS_BEFORE_BOOTSTRAPPING
#
An attempt was made to get options before the bootstrapping was completed.
ERR_PACKAGE_IMPORT_NOT_DEFINED
#
Thepackage.json
"imports"
field does not define the given internalpackage specifier mapping.
ERR_PACKAGE_PATH_NOT_EXPORTED
#
Thepackage.json
"exports"
field does not export the requested subpath.Because exports are encapsulated, private internal modules that are not exportedcannot be imported through the package resolution, unless using an absolute URL.
ERR_PARSE_ARGS_INVALID_OPTION_VALUE
#
Whenstrict
set totrue
, thrown byutil.parseArgs()
if a<boolean>value is provided for an option of type<string>, or if a<string>value is provided for an option of type<boolean>.
ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL
#
Thrown byutil.parseArgs()
, when a positional argument is provided andallowPositionals
is set tofalse
.
ERR_PARSE_ARGS_UNKNOWN_OPTION
#
Whenstrict
set totrue
, thrown byutil.parseArgs()
if an argumentis not configured inoptions
.
ERR_PERFORMANCE_INVALID_TIMESTAMP
#
An invalid timestamp value was provided for a performance mark or measure.
ERR_PROTO_ACCESS
#
AccessingObject.prototype.__proto__
has been forbidden using--disable-proto=throw
.Object.getPrototypeOf
andObject.setPrototypeOf
should be used to get and set the prototype of anobject.
ERR_QUIC_APPLICATION_ERROR
#
A QUIC application error occurred.
ERR_QUIC_CONNECTION_FAILED
#
Establishing a QUIC connection failed.
ERR_QUIC_ENDPOINT_CLOSED
#
A QUIC Endpoint closed with an error.
ERR_QUIC_OPEN_STREAM_FAILED
#
Opening a QUIC stream failed.
ERR_QUIC_TRANSPORT_ERROR
#
A QUIC transport error occurred.
ERR_QUIC_VERSION_NEGOTIATION_ERROR
#
A QUIC session failed because version negotiation is required.
ERR_REQUIRE_ASYNC_MODULE
#
When trying torequire()
aES Module, the module turns out to be asynchronous.That is, it contains top-level await.
To see where the top-level await is, use--experimental-print-required-tla
(this would execute the modulesbefore looking for the top-level awaits).
ERR_REQUIRE_CYCLE_MODULE
#
When trying torequire()
aES Module, a CommonJS to ESM or ESM to CommonJS edgeparticipates in an immediate cycle.This is not allowed because ES Modules cannot be evaluated while they arealready being evaluated.
To avoid the cycle, therequire()
call involved in a cycle should not happenat the top-level of either an ES Module (viacreateRequire()
) or a CommonJSmodule, and should be done lazily in an inner function.
ERR_REQUIRE_ESM
#
History
Version | Changes |
---|---|
v23.0.0, v22.12.0, v20.19.0 | require() now supports loading synchronous ES modules by default. |
An attempt was made torequire()
anES Module.
This error has been deprecated sincerequire()
now supports loading synchronousES modules. Whenrequire()
encounters an ES module that contains top-levelawait
, it will throwERR_REQUIRE_ASYNC_MODULE
instead.
ERR_SCRIPT_EXECUTION_INTERRUPTED
#
Script execution was interrupted bySIGINT
(Forexample,Ctrl+C was pressed.)
ERR_SCRIPT_EXECUTION_TIMEOUT
#
Script execution timed out, possibly due to bugs in the script being executed.
ERR_SERVER_ALREADY_LISTEN
#
Theserver.listen()
method was called while anet.Server
was alreadylistening. This applies to all instances ofnet.Server
, including HTTP, HTTPS,and HTTP/2Server
instances.
ERR_SERVER_NOT_RUNNING
#
Theserver.close()
method was called when anet.Server
was notrunning. This applies to all instances ofnet.Server
, including HTTP, HTTPS,and HTTP/2Server
instances.
ERR_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND
#
A key was passed to single executable application APIs to identify an asset,but no match could be found.
ERR_SOCKET_BAD_BUFFER_SIZE
#
An invalid (negative) size was passed for either therecvBufferSize
orsendBufferSize
options indgram.createSocket()
.
ERR_SOCKET_BUFFER_SIZE
#
While usingdgram.createSocket()
, the size of the receive or sendBuffer
could not be determined.
ERR_SOCKET_CLOSED_BEFORE_CONNECTION
#
When callingnet.Socket.write()
on a connecting socket and the socket wasclosed before the connection was established.
ERR_SOCKET_CONNECTION_TIMEOUT
#
The socket was unable to connect to any address returned by the DNS within theallowed timeout when using the family autoselection algorithm.
ERR_SOCKET_DGRAM_NOT_CONNECTED
#
Adgram.disconnect()
ordgram.remoteAddress()
call was made on adisconnected socket.
ERR_SOURCE_PHASE_NOT_DEFINED
#
The provided module import does not provide a source phase imports representation for source phaseimport syntaximport source x from 'x'
orimport.source(x)
.
ERR_SRI_PARSE
#
A string was provided for a Subresource Integrity check, but was unable to beparsed. Check the format of integrity attributes by looking at theSubresource Integrity specification.
ERR_STREAM_ALREADY_FINISHED
#
A stream method was called that cannot complete because the stream wasfinished.
ERR_STREAM_DESTROYED
#
A stream method was called that cannot complete because the stream wasdestroyed usingstream.destroy()
.
ERR_STREAM_PREMATURE_CLOSE
#
An error returned bystream.finished()
andstream.pipeline()
, when a streamor a pipeline ends non gracefully with no explicit error.
ERR_STREAM_PUSH_AFTER_EOF
#
An attempt was made to callstream.push()
after anull
(EOF) had beenpushed to the stream.
ERR_STREAM_UNABLE_TO_PIPE
#
An attempt was made to pipe to a closed or destroyed stream in a pipeline.
ERR_STREAM_UNSHIFT_AFTER_END_EVENT
#
An attempt was made to callstream.unshift()
after the'end'
event wasemitted.
ERR_STREAM_WRAP
#
Prevents an abort if a string decoder was set on the Socket or if the decoderis inobjectMode
.
constSocket =require('node:net').Socket;const instance =newSocket();instance.setEncoding('utf8');
ERR_STREAM_WRITE_AFTER_END
#
An attempt was made to callstream.write()
afterstream.end()
has beencalled.
ERR_STRING_TOO_LONG
#
An attempt has been made to create a string longer than the maximum allowedlength.
ERR_SYSTEM_ERROR
#
An unspecified or non-specific system error has occurred within the Node.jsprocess. The error object will have anerr.info
object property withadditional details.
ERR_TEST_FAILURE
#
This error represents a failed test. Additional information about the failureis available via thecause
property. ThefailureType
property specifieswhat the test was doing when the failure occurred.
ERR_TLS_ALPN_CALLBACK_INVALID_RESULT
#
This error is thrown when anALPNCallback
returns a value that is not in thelist of ALPN protocols offered by the client.
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
#
This error is thrown when creating aTLSServer
if the TLS options includebothALPNProtocols
andALPNCallback
. These options are mutually exclusive.
ERR_TLS_CERT_ALTNAME_FORMAT
#
This error is thrown bycheckServerIdentity
if a user-suppliedsubjectaltname
property violates encoding rules. Certificate objects producedby Node.js itself always comply with encoding rules and will never causethis error.
ERR_TLS_CERT_ALTNAME_INVALID
#
While using TLS, the host name/IP of the peer did not match any of thesubjectAltNames
in its certificate.
ERR_TLS_DH_PARAM_SIZE
#
While using TLS, the parameter offered for the Diffie-Hellman (DH
)key-agreement protocol is too small. By default, the key length must be greaterthan or equal to 1024 bits to avoid vulnerabilities, even though it is stronglyrecommended to use 2048 bits or larger for stronger security.
ERR_TLS_HANDSHAKE_TIMEOUT
#
A TLS/SSL handshake timed out. In this case, the server must also abort theconnection.
ERR_TLS_INVALID_PROTOCOL_METHOD
#
The specifiedsecureProtocol
method is invalid. It is either unknown, ordisabled because it is insecure.
ERR_TLS_INVALID_STATE
#
The TLS socket must be connected and securely established. Ensure the 'secure'event is emitted before continuing.
ERR_TLS_PROTOCOL_VERSION_CONFLICT
#
Attempting to set a TLS protocolminVersion
ormaxVersion
conflicts with anattempt to set thesecureProtocol
explicitly. Use one mechanism or the other.
ERR_TLS_RENEGOTIATION_DISABLED
#
An attempt was made to renegotiate TLS on a socket instance with renegotiationdisabled.
ERR_TLS_REQUIRED_SERVER_NAME
#
While using TLS, theserver.addContext()
method was called without providinga host name in the first parameter.
ERR_TLS_SESSION_ATTACK
#
An excessive amount of TLS renegotiations is detected, which is a potentialvector for denial-of-service attacks.
ERR_TLS_SNI_FROM_SERVER
#
An attempt was made to issue Server Name Indication from a TLS server-sidesocket, which is only valid from a client.
ERR_TRACE_EVENTS_CATEGORY_REQUIRED
#
Thetrace_events.createTracing()
method requires at least one trace eventcategory.
ERR_TRACE_EVENTS_UNAVAILABLE
#
Thenode:trace_events
module could not be loaded because Node.js was compiledwith the--without-v8-platform
flag.
ERR_TRAILING_JUNK_AFTER_STREAM_END
#
Trailing junk found after the end of the compressed stream.This error is thrown when extra, unexpected data is detectedafter the end of a compressed stream (for example, in zlibor gzip decompression).
ERR_UNAVAILABLE_DURING_EXIT
#
Function was called within aprocess.on('exit')
handler that shouldn't becalled withinprocess.on('exit')
handler.
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET
#
process.setUncaughtExceptionCaptureCallback()
was called twice,without first resetting the callback tonull
.
This error is designed to prevent accidentally overwriting a callback registeredfrom another module.
ERR_UNHANDLED_ERROR
#
An unhandled error occurred (for instance, when an'error'
event is emittedby anEventEmitter
but an'error'
handler is not registered).
ERR_UNKNOWN_BUILTIN_MODULE
#
Used to identify a specific kind of internal Node.js error that should nottypically be triggered by user code. Instances of this error point to aninternal bug within the Node.js binary itself.
ERR_UNKNOWN_FILE_EXTENSION
#
An attempt was made to load a module with an unknown or unsupported fileextension.
ERR_UNKNOWN_MODULE_FORMAT
#
An attempt was made to load a module with an unknown or unsupported format.
ERR_UNKNOWN_SIGNAL
#
An invalid or unknown process signal was passed to an API expecting a validsignal (such assubprocess.kill()
).
ERR_UNSUPPORTED_DIR_IMPORT
#
import
a directory URL is unsupported. Instead,self-reference a package using its name anddefine a custom subpath inthe"exports"
field of thepackage.json
file.
import'./';// unsupportedimport'./index.js';// supportedimport'package-name';// supported
ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING
#
Type stripping is not supported for files descendent of anode_modules
directory.
ERR_UNSUPPORTED_RESOLVE_REQUEST
#
An attempt was made to resolve an invalid module referrer. This can happen whenimporting or callingimport.meta.resolve()
with either:
- a bare specifier that is not a builtin module from a module whose URL schemeis not
file
. - arelative URL from a module whose URL scheme is not aspecial scheme.
try {// Trying to import the package 'bare-specifier' from a `data:` URL module:awaitimport('data:text/javascript,import "bare-specifier"');}catch (e) {console.log(e.code);// ERR_UNSUPPORTED_RESOLVE_REQUEST}
ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
#
The provided TypeScript syntax is unsupported.This could happen when using TypeScript syntax that requirestransformation withtype-stripping.
ERR_VALID_PERFORMANCE_ENTRY_TYPE
#
While using the Performance Timing API (perf_hooks
), no valid performanceentry types are found.
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG
#
A dynamic import callback was invoked without--experimental-vm-modules
.
ERR_VM_MODULE_ALREADY_LINKED
#
The module attempted to be linked is not eligible for linking, because of one ofthe following reasons:
- It has already been linked (
linkingStatus
is'linked'
) - It is being linked (
linkingStatus
is'linking'
) - Linking has failed for this module (
linkingStatus
is'errored'
)
ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA
#
Cached data cannot be created for modules which have already been evaluated.
ERR_VM_MODULE_DIFFERENT_CONTEXT
#
The module being returned from the linker function is from a different contextthan the parent module. Linked modules must share the same context.
ERR_VM_MODULE_STATUS
#
The current module's status does not allow for this operation. The specificmeaning of the error depends on the specific function.
ERR_WEBASSEMBLY_RESPONSE
#
TheResponse
that has been passed toWebAssembly.compileStreaming
or toWebAssembly.instantiateStreaming
is not a valid WebAssembly response.
ERR_WORKER_INVALID_EXEC_ARGV
#
TheexecArgv
option passed to theWorker
constructor containsinvalid flags.
ERR_WORKER_MESSAGING_ERRORED
#
The destination thread threw an error while processing a message sent viapostMessageToThread()
.
ERR_WORKER_MESSAGING_FAILED
#
The thread requested inpostMessageToThread()
is invalid or has noworkerMessage
listener.
ERR_WORKER_MESSAGING_SAME_THREAD
#
The thread id requested inpostMessageToThread()
is the current thread id.
ERR_WORKER_MESSAGING_TIMEOUT
#
Sending a message viapostMessageToThread()
timed out.
ERR_WORKER_PATH
#
The path for the main script of a worker is neither an absolute pathnor a relative path starting with./
or../
.
ERR_WORKER_UNSERIALIZABLE_ERROR
#
All attempts at serializing an uncaught exception from a worker thread failed.
HPE_CHUNK_EXTENSIONS_OVERFLOW
#
Too much data was received for a chunk extensions. In order to protect againstmalicious or malconfigured clients, if more than 16 KiB of data is receivedthen anError
with this code will be emitted.
HPE_HEADER_OVERFLOW
#
History
Version | Changes |
---|---|
v11.4.0, v10.15.0 | Max header size in |
Too much HTTP header data was received. In order to protect against malicious ormalconfigured clients, if more thanmaxHeaderSize
of HTTP header data is received thenHTTP parsing will abort without a request or response object being created, andanError
with this code will be emitted.
HPE_UNEXPECTED_CONTENT_LENGTH
#
Server is sending both aContent-Length
header andTransfer-Encoding: chunked
.
Transfer-Encoding: chunked
allows the server to maintain an HTTP persistentconnection for dynamically generated content.In this case, theContent-Length
HTTP header cannot be used.
UseContent-Length
orTransfer-Encoding: chunked
.
Legacy Node.js error codes#
ERR_CANNOT_TRANSFER_OBJECT
#
The value passed topostMessage()
contained an object that is not supportedfor transferring.
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
#
The UTF-16 encoding was used withhash.digest()
. While thehash.digest()
method does allow anencoding
argument to be passed in,causing the method to return a string rather than aBuffer
, the UTF-16encoding (e.g.ucs
orutf16le
) is not supported.
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER
#
An incompatible combination of options was passed tocrypto.scrypt()
orcrypto.scryptSync()
. New versions of Node.js use the error codeERR_INCOMPATIBLE_OPTION_PAIR
instead, which is consistent with other APIs.
ERR_FS_INVALID_SYMLINK_TYPE
#
An invalid symlink type was passed to thefs.symlink()
orfs.symlinkSync()
methods.
ERR_HTTP2_FRAME_ERROR
#
Used when a failure occurs sending an individual frame on the HTTP/2session.
ERR_HTTP2_HEADERS_OBJECT
#
Used when an HTTP/2 Headers Object is expected.
ERR_HTTP2_HEADER_REQUIRED
#
Used when a required header is missing in an HTTP/2 message.
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND
#
HTTP/2 informational headers must only be sentprior to calling theHttp2Stream.prototype.respond()
method.
ERR_HTTP2_STREAM_CLOSED
#
Used when an action has been performed on an HTTP/2 Stream that has alreadybeen closed.
ERR_HTTP_INVALID_CHAR
#
Used when an invalid character is found in an HTTP response status message(reason phrase).
ERR_IMPORT_ASSERTION_TYPE_FAILED
#
An import assertion has failed, preventing the specified module to be imported.
ERR_IMPORT_ASSERTION_TYPE_MISSING
#
An import assertion is missing, preventing the specified module to be imported.
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED
#
An import attribute is not supported by this version of Node.js.
ERR_INDEX_OUT_OF_RANGE
#
A given index was out of the accepted range (e.g. negative offsets).
ERR_INVALID_OPT_VALUE
#
An invalid or unexpected value was passed in an options object.
ERR_INVALID_OPT_VALUE_ENCODING
#
An invalid or unknown file encoding was passed.
ERR_INVALID_PERFORMANCE_MARK
#
While using the Performance Timing API (perf_hooks
), a performance mark isinvalid.
ERR_INVALID_TRANSFER_OBJECT
#
History
Version | Changes |
---|---|
v21.0.0 | A |
v21.0.0 | Removed in: v21.0.0 |
An invalid transfer object was passed topostMessage()
.
ERR_MANIFEST_ASSERT_INTEGRITY
#
An attempt was made to load a resource, but the resource did not match theintegrity defined by the policy manifest. See the documentation for policymanifests for more information.
ERR_MANIFEST_DEPENDENCY_MISSING
#
An attempt was made to load a resource, but the resource was not listed as adependency from the location that attempted to load it. See the documentationfor policy manifests for more information.
ERR_MANIFEST_INTEGRITY_MISMATCH
#
An attempt was made to load a policy manifest, but the manifest had multipleentries for a resource which did not match each other. Update the manifestentries to match in order to resolve this error. See the documentation forpolicy manifests for more information.
ERR_MANIFEST_INVALID_RESOURCE_FIELD
#
A policy manifest resource had an invalid value for one of its fields. Updatethe manifest entry to match in order to resolve this error. See thedocumentation for policy manifests for more information.
ERR_MANIFEST_INVALID_SPECIFIER
#
A policy manifest resource had an invalid value for one of its dependencymappings. Update the manifest entry to match to resolve this error. See thedocumentation for policy manifests for more information.
ERR_MANIFEST_PARSE_POLICY
#
An attempt was made to load a policy manifest, but the manifest was unable tobe parsed. See the documentation for policy manifests for more information.
ERR_MANIFEST_TDZ
#
An attempt was made to read from a policy manifest, but the manifestinitialization has not yet taken place. This is likely a bug in Node.js.
ERR_MANIFEST_UNKNOWN_ONERROR
#
A policy manifest was loaded, but had an unknown value for its "onerror"behavior. See the documentation for policy manifests for more information.
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
#
This error code was replaced byERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
in Node.js v15.0.0, because it is no longer accurate as other types oftransferable objects also exist now.
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
#
History
Version | Changes |
---|---|
v21.0.0 | A |
v21.0.0 | Removed in: v21.0.0 |
v15.0.0 | Added in: v15.0.0 |
An object that needs to be explicitly listed in thetransferList
argumentis in the object passed to apostMessage()
call, but is not providedin thetransferList
for that call. Usually, this is aMessagePort
.
In Node.js versions prior to v15.0.0, the error code being used here wasERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
. However, the set oftransferable object types has been expanded to cover more types thanMessagePort
.
ERR_NAPI_CONS_PROTOTYPE_OBJECT
#
Used by theNode-API
whenConstructor.prototype
is not an object.
ERR_NAPI_TSFN_START_IDLE_LOOP
#
On the main thread, values are removed from the queue associated with thethread-safe function in an idle loop. This error indicates that an errorhas occurred when attempting to start the loop.
ERR_NAPI_TSFN_STOP_IDLE_LOOP
#
Once no more items are left in the queue, the idle loop must be suspended. Thiserror indicates that the idle loop has failed to stop.
ERR_NO_LONGER_SUPPORTED
#
A Node.js API was called in an unsupported manner, such asBuffer.write(string, encoding, offset[, length])
.
ERR_OUTOFMEMORY
#
Used generically to identify that an operation caused an out of memorycondition.
ERR_PARSE_HISTORY_DATA
#
Thenode:repl
module was unable to parse data from the REPL history file.
ERR_STDERR_CLOSE
#
History
Version | Changes |
---|---|
v10.12.0 | Rather than emitting an error, |
v10.12.0 | Removed in: v10.12.0 |
An attempt was made to close theprocess.stderr
stream. By design, Node.jsdoes not allowstdout
orstderr
streams to be closed by user code.
ERR_STDOUT_CLOSE
#
History
Version | Changes |
---|---|
v10.12.0 | Rather than emitting an error, |
v10.12.0 | Removed in: v10.12.0 |
An attempt was made to close theprocess.stdout
stream. By design, Node.jsdoes not allowstdout
orstderr
streams to be closed by user code.
ERR_STREAM_READ_NOT_IMPLEMENTED
#
Used when an attempt is made to use a readable stream that has not implementedreadable._read()
.
ERR_TAP_PARSER_ERROR
#
An error representing a failing parser state. Additional information aboutthe token causing the error is available via thecause
property.
ERR_TLS_RENEGOTIATION_FAILED
#
Used when a TLS renegotiation request has failed in a non-specific way.
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
#
ASharedArrayBuffer
whose memory is not managed by the JavaScript engineor by Node.js was encountered during serialization. Such aSharedArrayBuffer
cannot be serialized.
This can only happen when native addons createSharedArrayBuffer
s in"externalized" mode, or put existingSharedArrayBuffer
into externalized mode.
ERR_UNKNOWN_STDIN_TYPE
#
An attempt was made to launch a Node.js process with an unknownstdin
filetype. This error is usually an indication of a bug within Node.js itself,although it is possible for user code to trigger it.
ERR_UNKNOWN_STREAM_TYPE
#
An attempt was made to launch a Node.js process with an unknownstdout
orstderr
file type. This error is usually an indication of a bug within Node.jsitself, although it is possible for user code to trigger it.
ERR_VALUE_OUT_OF_RANGE
#
Used when a given value is out of the accepted range.
ERR_VM_MODULE_LINKING_ERRORED
#
The linker function returned a module for which linking has failed.
ERR_WORKER_UNSUPPORTED_EXTENSION
#
The pathname used for the main script of a worker has anunknown file extension.
ERR_ZLIB_BINDING_CLOSED
#
Used when an attempt is made to use azlib
object after it has already beenclosed.
OpenSSL Error Codes#
Time Validity Errors#
Trust or Chain Related Errors#
UNABLE_TO_GET_ISSUER_CERT
#
The issuer certificate of a looked up certificate could not be found. Thisnormally means the list of trusted certificates is not complete.
UNABLE_TO_GET_ISSUER_CERT_LOCALLY
#
The certificate’s issuer is not known. This is the case if the issuer is notincluded in the trusted certificate list.
DEPTH_ZERO_SELF_SIGNED_CERT
#
The passed certificate is self-signed and the same certificate cannot be foundin the list of trusted certificates.
SELF_SIGNED_CERT_IN_CHAIN
#
The certificate’s issuer is not known. This is the case if the issuer is notincluded in the trusted certificate list.
UNABLE_TO_VERIFY_LEAF_SIGNATURE
#
No signatures could be verified because the chain contains only one certificateand it is not self signed.
CERT_UNTRUSTED
#
The root certificate authority (CA) is not marked as trusted for the specifiedpurpose.
Basic Extension Errors#
INVALID_CA
#
A CA certificate is invalid. Either it is not a CA or its extensions are notconsistent with the supplied purpose.
Usage and Policy Errors#
Formatting Errors#
UNABLE_TO_DECRYPT_CERT_SIGNATURE
#
The certificate signature could not be decrypted. This means that the actualsignature value could not be determined rather than it not matching the expectedvalue, this is only meaningful for RSA keys.
UNABLE_TO_DECRYPT_CRL_SIGNATURE
#
The certificate revocation list (CRL) signature could not be decrypted: thismeans that the actual signature value could not be determined rather than it notmatching the expected value.
UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
#
The public key in the certificate SubjectPublicKeyInfo could not be read.