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
DOMExceptions. - 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.
AssertionErrors 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:assertmodule.- 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-rejectionsflag 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
callbackfunction will accept anErrorobject passed as the first argument to that function. If that firstargument is notnulland 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
throwmechanism 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:domainmodule 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#
- Type:<number>
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#
- Type:<any>
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#
- Type:<string>
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#
- Type:<string>
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 messageerror.stack#
- Type:<string>
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:3The 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#
- Type:<string>
If present,error.address is a string describing the address to which anetwork connection failed.
error.dest#
- Type:<string>
If present,error.dest is the file path destination when reporting a filesystem error.
error.errno#
- Type:<number>
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).
error.message#
- Type:<string>
error.message is a system-provided human-readable description of the error.
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 thehttpandnetmodules.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 2048in the same shell that will run the Node.js process.ENOENT(No such file or directory): Commonly raised byfsoperationsto 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_NODATAorEAI_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 thenetandhttplayers, 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 byhttpornet. 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 usingAbortSignals 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 theAssertionErrorwill 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_LOADER_REQUEST_NEVER_SETTLED#
An operation related to module loading is customized by an asynchronous loaderhook that never settled the promise before the loader thread exits.
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 aBufferinstance is to create a normalUint8Array, which only differs in theprototype of the resulting object.Uint8Arrays are generally accepted in allNode.js core APIs whereBuffers 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_CPU_PROFILE_ALREADY_STARTED#
The CPU profile with the given name is already started.
ERR_CPU_PROFILE_NOT_STARTED#
The CPU profile with the given name is not started.
ERR_CPU_PROFILE_TOO_MANY#
There are too many CPU profiles being collected.
ERR_CRYPTO_ARGON2_NOT_SUPPORTED#
Argon2 is not supported by the current version of OpenSSL being used.
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_KEM_NOT_SUPPORTED#
Attempted to use KEM operations while Node.js was not compiled withOpenSSL with KEM support.
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 was made to read a file larger than the supported 2 GiB limit forfs.readFile(). This is not a limitation ofBuffer, but an internal I/O constraint.For handling larger files, consider usingfs.createReadStream() to read thefile in chunks.
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.
The thrown error object includes aninput property that contains the URL objectof the invalidfile: URL.
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 theWHATWGURLconstructor 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 theWHATWGURLPattern constructor 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_LINK_MISMATCH#
A module can not be linked because the same module requests in it are notresolved to the same module.
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 JavaScriptundefinedvalue.
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_PROXY_TUNNEL#
Failed to establish proxy tunnel whenNODE_USE_ENV_PROXY or--use-env-proxy is enabled.
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 sendBuffercould 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';// supportedERR_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 (
linkingStatusis'linked') - It is being linked (
linkingStatusis'linking') - Linking has failed for this module (
linkingStatusis'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_LISTin 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 aSharedArrayBuffercannot be serialized.
This can only happen when native addons createSharedArrayBuffers 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.