Ошибки
Приложения, работающие в Node.js, обычно сталкиваются со следующими категориями ошибок:
- Стандартные ошибки JavaScript, такие как <EvalError>, <SyntaxError>, <RangeError>, <ReferenceError>, <TypeError> и <URIError>.
- Стандартные
DOMException. - Системные ошибки, вызванные ограничениями базовой операционной системы, например при попытке открыть несуществующий файл или отправить данные через закрытый сокет.
-
AssertionError— это особый класс ошибок, которые могут возникнуть, когда Node.js обнаруживает исключительное нарушение логики, которое не должно происходить. Обычно их вызывает модульnode:assert. - Ошибки, заданные пользователем и вызванные кодом приложения.
Все ошибки JavaScript и системные ошибки, возникающие в Node.js, наследуются от стандартного класса JavaScript <Error> или являются его экземплярами; гарантируется, что они предоставляют как минимум свойства, доступные в этом классе.
Свойство error.message ошибок, возникающих в Node.js, может изменяться в любых версиях. Вместо этого для идентификации ошибки используйте error.code. Для DOMException используйте domException.name, чтобы определить его тип.
Распространение и перехват ошибок
Node.js поддерживает несколько механизмов распространения и обработки ошибок, возникающих во время работы приложения. Способ сообщения об этих ошибках и их обработки полностью зависит от типа Error и стиля вызываемого API.
Все ошибки JavaScript обрабатываются как исключения, которые немедленно создают и выбрасывают ошибку с помощью стандартного механизма throw JavaScript. Они обрабатываются с помощью конструкции try…catch, предоставляемой языком JavaScript.
// Throws with a ReferenceError because z is not defined.
try {
const m = 1;
const n = m + z;
} catch (err) {
// Handle the error here.
} copy Любое использование механизма JavaScript throw вызовет исключение, которое необходимо обработать, иначе процесс Node.js немедленно завершится.
За редкими исключениями, синхронные API (любой блокирующий метод, который не возвращает <Promise> и не принимает функцию callback, например fs.readFileSync) используют throw для сообщения об ошибках.
Об ошибках, возникающих в асинхронных API, можно сообщать несколькими способами:
-
Некоторые асинхронные методы возвращают <Promise>; всегда учитывайте возможность его отклонения. О том, как процесс реагирует на необработанное отклонение промиса, см. в описании флага
--unhandled-rejections.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 })(); copy -
Большинство асинхронных методов, принимающих функцию
callback, принимают объектErrorв качестве первого аргумента этой функции. Если первый аргумент не являетсяnullи представляет собой экземплярError, значит, произошла ошибка, которую следует обработать.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 }); copy -
Если асинхронный метод вызывается для объекта, являющегося
EventEmitter, ошибки можно направить в событие'error'этого объекта.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); copy -
Некоторые асинхронные методы API Node.js по-прежнему могут использовать механизм
throwдля генерации исключений, которые необходимо обрабатывать с помощьюtry…catch. Полного списка таких методов нет; чтобы определить подходящий механизм обработки ошибок, обратитесь к документации каждого метода.
Механизм события 'error' чаще всего используется в API на основе потоков и генераторов событий, которые представляют собой последовательность асинхронных операций во времени (в отличие от одной операции, которая может завершиться успехом или ошибкой).
Для всех объектов EventEmitter, если обработчик события 'error' не задан, ошибка будет выброшена, в результате чего процесс Node.js сообщит о неперехваченном исключении и аварийно завершится, если только не выполнено одно из следующих условий: для события 'uncaughtException' зарегистрирован обработчик или используется устаревший модуль node:domain.
const EventEmitter = require('node:events');
const ee = new EventEmitter();
setImmediate(() => {
// This will crash the process because no 'error' event
// handler has been added.
ee.emit('error', new Error('This will crash'));
}); copy Ошибки, возникшие таким образом, невозможно перехватить с помощью try…catch, поскольку они выбрасываются после завершения вызывающего кода.
Разработчикам следует обращаться к документации каждого метода, чтобы точно определить, как распространяются ошибки, возникающие в этих методах.
Класс: Error
Общий объект JavaScript <Error>, не указывающий на конкретное обстоятельство возникновения ошибки. Объекты Error сохраняют «трассировку стека», указывающую место в коде, где был создан Error, и могут содержать текстовое описание ошибки.
Все ошибки, созданные Node.js, включая системные ошибки и ошибки JavaScript, являются экземплярами класса Error или наследуются от него.
new Error(message[, options])
Создает новый объект Error и присваивает свойству error.message указанное текстовое сообщение. Если в качестве message передан объект, текстовое сообщение создается вызовом String(message). Если указан параметр cause, он присваивается свойству error.cause. Свойство error.stack будет указывать место в коде, где был вызван new Error(). Трассировки стека зависят от API трассировки стека V8. Трассировка стека охватывает только (a) начало синхронного выполнения кода или (b) количество кадров, заданное свойством Error.stackTraceLimit, в зависимости от того, что меньше.
Error.captureStackTrace(targetObject[, constructorOpt])
-
targetObject<Object> -
constructorOpt<Function>
Создает свойство .stack у объекта targetObject. При обращении оно возвращает строку, представляющую место в коде, где был вызван Error.captureStackTrace().
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack` copy Первая строка трассировки будет начинаться с ${myObject.name}: ${myObject.message}.
Необязательный аргумент constructorOpt принимает функцию. Если он задан, все кадры выше constructorOpt, включая constructorOpt, будут исключены из создаваемой трассировки стека.
Аргумент constructorOpt полезен для сокрытия от пользователя деталей реализации генерации ошибок. Например:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a(); copy
Error.stackTraceLimit
- Тип: <number>
Свойство Error.stackTraceLimit задает количество кадров стека, собираемых при создании трассировки стека (с помощью new Error().stack или Error.captureStackTrace(obj)).
Значение по умолчанию — 10, но ему можно присвоить любое допустимое число JavaScript. Изменения повлияют на все трассировки стека, собранные после изменения значения.
Если задать значение, не являющееся числом, или отрицательное число, кадры в трассировках стека собираться не будут.
error.cause
- Тип: <any>
Если свойство error.cause задано, оно содержит исходную причину Error. Оно используется при перехвате ошибки и выбрасывании новой ошибки с другим сообщением или кодом, чтобы сохранить доступ к исходной ошибке.
Свойство error.cause обычно задается вызовом new Error(message, { cause }). Конструктор не задает его, если параметр cause не указан.
Это свойство позволяет объединять ошибки в цепочки. При сериализации объектов Error функция util.inspect() рекурсивно сериализует error.cause, если оно задано.
const cause = new Error('The remote HTTP server responded with a 500 status');
const symptom = new Error('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) copy
error.code
- Тип: <string>
Свойство error.code — это строковая метка, определяющая тип ошибки. error.code — наиболее стабильный способ идентификации ошибки. Оно изменяется только между основными версиями Node.js. В отличие от него, строки error.message могут изменяться в любых версиях Node.js. Подробную информацию о конкретных кодах см. в разделе Коды ошибок Node.js.
error.message
- Тип: <string>
Свойство error.message содержит строковое описание ошибки, заданное вызовом new Error(message). Значение message, переданное конструктору, также появится в первой строке трассировки стека объекта Error, однако изменение этого свойства после создания объекта Error может не изменить первую строку трассировки стека (например, если значение error.stack было прочитано до изменения этого свойства).
const err = new Error('The message');
console.error(err.message);
// Prints: The message copy
error.stack
- Тип: <string>
Свойство error.stack содержит строку, описывающую место в коде, где был создан Error.
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) copy
Первая строка имеет формат <error class name>: <error message>, за ней следует последовательность кадров стека (каждая строка начинается с «at »). Каждый кадр описывает место вызова в коде, которое привело к возникновению ошибки. V8 пытается отобразить имя каждой функции (по имени переменной, имени функции или имени метода объекта), но иногда не может найти подходящее имя. Если V8 не может определить имя функции, для этого кадра отображается только информация о расположении. В противном случае определенное имя функции указывается вместе с информацией о расположении в скобках.
Кадры создаются только для функций JavaScript. Например, если выполнение синхронно проходит через функцию дополнения C++ под названием cheetahify, которая сама вызывает функцию JavaScript, кадр, соответствующий вызову cheetahify, в трассировке стека отсутствует:
const cheetahify = require('./native-binding.node');
function makeFaster() {
// `cheetahify()` *synchronously* calls speedy.
cheetahify(function speedy() {
throw new Error('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 copy Информация о расположении может иметь один из следующих видов:
-
native, если кадр соответствует внутреннему вызову V8 (как в[].forEach). -
plain-filename.js:line:column, если кадр соответствует внутреннему вызову Node.js. -
/absolute/path/to/file.js:line:column, если кадр соответствует вызову в пользовательской программе (использующей систему модулей CommonJS) или ее зависимостях. -
<transport-protocol>:///url/to/module/file.mjs:line:column, если кадр соответствует вызову в пользовательской программе (использующей систему модулей ES) или ее зависимостях.
Строка, представляющая трассировку стека, создается отложенно при обращении к свойству error.stack.
Количество кадров, сохраняемых в трассировке стека, ограничено меньшим из двух значений: Error.stackTraceLimit или количеством доступных кадров в текущем такте цикла событий.
Класс: AssertionError
- Расширяет: <errors.Error>
Указывает на неудачную проверку утверждения. Подробности см. в разделе Class: assert.AssertionError.
Класс: RangeError
- Расширяет: <errors.Error>
Указывает, что переданный аргумент не входит в множество допустимых значений или диапазон значений для функции: например, находится вне числового диапазона или не соответствует набору вариантов для заданного параметра функции.
require('node:net').connect(-1);
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1" copy Node.js будет немедленно создавать и выбрасывать экземпляры RangeError для проверки аргументов.
Класс: ReferenceError
- Расширяет: <errors.Error>
Указывает на попытку доступа к неопределенной переменной. Такие ошибки обычно свидетельствуют об опечатках в коде или о другой неисправности программы.
Хотя клиентский код может создавать и распространять такие ошибки, на практике это делает только V8.
doesNotExist; // Throws ReferenceError, doesNotExist is not a variable in this program. copy
Если приложение не генерирует и не выполняет код динамически, экземпляры ReferenceError указывают на ошибку в коде или его зависимостях.
Класс: SyntaxError
- Расширяет: <errors.Error>
Указывает, что программа не является допустимым кодом JavaScript. Такие ошибки могут возникать и распространяться только в результате вычисления кода. Вычисление кода может происходить в результате вызова eval, Function, require или vm. Почти всегда эти ошибки указывают на неисправность программы.
try {
require('node:vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' will be a SyntaxError.
} copy Экземпляры SyntaxError невозможно обработать в контексте, в котором они возникли: их можно перехватить только в других контекстах.
Класс: SystemError
- Расширяет: <errors.Error>
Node.js создает системные ошибки при возникновении исключений в среде выполнения. Обычно они возникают, когда приложение нарушает ограничение операционной системы. Например, системная ошибка возникнет, если приложение попытается прочитать несуществующий файл.
-
address<string> Если задано, адрес, соединение с которым по сети не удалось установить -
code<string> Строковый код ошибки -
dest<string> Если задано, путь назначения файла при сообщении об ошибке файловой системы -
errno<number> Номер ошибки, предоставленный системой -
info<Object> Если задано, дополнительные сведения об условии возникновения ошибки -
message<string> Человекочитаемое описание ошибки, предоставленное системой -
path<string> Если задано, путь к файлу при сообщении об ошибке файловой системы -
port<number> Если задано, недоступный порт сетевого соединения -
syscall<string> Имя системного вызова, вызвавшего ошибку
error.address
- Тип: <string>
Если свойство error.address задано, оно содержит строку с адресом, соединение с которым по сети не удалось установить.
error.dest
- Тип: <string>
Если свойство error.dest задано, оно содержит путь назначения файла при сообщении об ошибке файловой системы.
error.errno
- Тип: <number>
Свойство error.errno содержит отрицательное число, соответствующее коду ошибки, определенному в libuv Error handling.
В Windows номер ошибки, предоставляемый системой, нормализуется библиотекой libuv.
Чтобы получить строковое представление кода ошибки, используйте util.getSystemErrorName(error.errno).
error.info
- Тип: <Object>
Если свойство error.info задано, оно содержит объект с подробностями об условии возникновения ошибки.
error.message
- Тип: <string>
error.message — это человекочитаемое описание ошибки, предоставленное системой.
error.path
- Тип: <string>
Если свойство error.path задано, оно содержит строку с соответствующим недопустимым путем.
error.port
- Тип: <number>
Если свойство error.port задано, оно содержит недоступный порт сетевого соединения.
error.syscall
- Тип: <string>
Свойство error.syscall содержит строку с описанием неудачного системного вызова.
Распространенные системные ошибки
Ниже приведен список системных ошибок, часто встречающихся при написании программ Node.js. Полный список см. на странице руководства errno(3).
-
EACCES(Доступ запрещен): предпринята попытка доступа к файлу способом, запрещенным правами доступа к нему. -
EADDRINUSE(Адрес уже используется): не удалось привязать сервер (net,httpилиhttps) к локальному адресу, поскольку этот адрес уже занят другим сервером в локальной системе. -
ECONNREFUSED(В соединении отказано): установить соединение не удалось, поскольку целевой компьютер активно отклонил запрос. Обычно это происходит при попытке подключиться к неактивной службе на удаленном узле. -
ECONNRESET(Соединение сброшено удаленной стороной): удаленная сторона принудительно закрыла соединение. Обычно это происходит из-за потери соединения на удаленном сокете вследствие тайм-аута или перезагрузки. Часто встречается при использовании модулейhttpиnet. -
EEXIST(Файл существует): целью операции, для которой требовалось отсутствие файла, оказался существующий файл. -
EISDIR(Является каталогом): операция ожидала файл, но указанный путь оказался каталогом. -
EMFILE(Слишком много открытых файлов в системе): достигнуто максимальное допустимое в системе количество файловых дескрипторов, и запросы на новые дескрипторы не могут быть выполнены, пока не будет закрыт хотя бы один из них. Ошибка возникает при одновременном открытии большого количества файлов, особенно в системах (в частности, macOS) с низким лимитом файловых дескрипторов для процессов. Чтобы увеличить низкий лимит, выполните командуulimit -n 2048в той же оболочке, из которой будет запущен процесс Node.js. -
ENOENT(Нет такого файла или каталога): часто возникает при операцияхfsи указывает, что компонент указанного пути не существует. По указанному пути не найден объект (файл или каталог). -
ENOTDIR(Не является каталогом): компонент указанного пути существует, но не является каталогом, как ожидалось. Часто возникает при вызовеfs.readdir. -
ENOTEMPTY(Каталог не пуст): целью операции, требующей пустого каталога, оказался каталог с записями; обычно это происходит при вызовеfs.unlink. -
ENOTFOUND(Ошибка поиска DNS): указывает на сбой DNS дляEAI_NODATAилиEAI_NONAME. Это не стандартная ошибка POSIX. -
EPERM(Операция не разрешена): предпринята попытка выполнить операцию, требующую повышенных привилегий. -
EPIPE(Обрыв канала): выполнена запись в канал, сокет или FIFO, из которого не может прочитать данные ни один процесс. Часто встречается на уровняхnetиhttpи указывает на то, что удаленная сторона записываемого потока закрыла соединение. -
ETIMEDOUT(Истекло время ожидания операции): запрос на подключение или отправку завершился неудачно, поскольку подключенная сторона не ответила должным образом в течение заданного времени. Обычно встречается при работе сhttpилиnet. Часто указывает на то, что вызовsocket.end()выполнен неправильно.
Класс: TypeError
- Расширяет <errors.Error>
Указывает, что переданный аргумент имеет недопустимый тип. Например, передача функции параметру, ожидающему строку, вызовет ошибку TypeError.
require('node:url').parse(() => { });
// Throws TypeError, since it expected a string. copy Node.js будет немедленно создавать и выбрасывать экземпляры TypeError для проверки аргументов.
Исключения и ошибки
Исключение JavaScript — это значение, выбрасываемое в результате недопустимой операции или в качестве цели инструкции throw. Хотя эти значения не обязательно должны быть экземплярами Error или классов, наследующих от Error, все исключения, выбрасываемые Node.js или средой выполнения JavaScript, будут экземплярами Error.
Некоторые исключения невозможно восстановить на уровне JavaScript. Такие исключения всегда приводят к аварийному завершению процесса Node.js. В качестве примеров можно привести проверки assert() или вызовы abort() на уровне C++.
Ошибки OpenSSL
Ошибки, возникающие в crypto или tls, относятся к классу Error и, помимо стандартных свойств .code и .message, могут иметь дополнительные свойства, специфичные для OpenSSL.
error.opensslErrorStack
Массив ошибок, помогающий определить, в какой части библиотеки OpenSSL возникла ошибка.
error.function
Функция OpenSSL, в которой возникла ошибка.
error.library
Библиотека OpenSSL, в которой возникла ошибка.
error.reason
Человекочитаемая строка с описанием причины ошибки.
Коды ошибок Node.js
ABORT_ERR
Используется, когда операция была прервана (обычно с помощью AbortController).
API, которые не используют AbortSignals, обычно не вызывают ошибку с этим кодом.
В этом коде не используется стандартное соглашение ERR_*, применяемое в ошибках Node.js, чтобы обеспечить совместимость с AbortError веб-платформы.
ERR_ACCESS_DENIED
Специальный тип ошибки, возникающий, когда Node.js пытается получить доступ к ресурсу, ограниченному моделью разрешений.
ERR_AMBIGUOUS_ARGUMENT
Аргумент функции используется таким образом, что это указывает на возможное неправильное понимание сигнатуры функции. Эта ошибка вызывается модулем node:assert, если параметр message в assert.throws(block, message) совпадает с сообщением об ошибке, выдаваемым block, поскольку такое использование предполагает, что пользователь считает message ожидаемым сообщением, а не сообщением, которое отобразит AssertionError, если block не вызовет ошибку.
ERR_ARG_NOT_ITERABLE
Для API Node.js требовался итерируемый аргумент (то есть значение, которое можно использовать в циклах for...of), но он не был предоставлен.
ERR_ASSERTION
Специальный тип ошибки, которая может возникнуть, когда Node.js обнаруживает исключительное нарушение логики, которого не должно происходить. Обычно такие ошибки вызываются модулем node:assert.
ERR_ASYNC_CALLBACK
Предпринята попытка зарегистрировать в качестве обратного вызова AsyncHooks объект, который не является функцией.
ERR_ASYNC_TYPE
Тип асинхронного ресурса недопустим. При использовании публичного API для встраивания пользователи также могут определять собственные типы.
ERR_BROTLI_COMPRESSION_FAILED
Не удалось сжать данные, переданные в поток Brotli.
ERR_BROTLI_INVALID_PARAM
При создании потока Brotli был передан недопустимый ключ параметра.
ERR_BUFFER_CONTEXT_NOT_AVAILABLE
Предпринята попытка создать экземпляр Node.js Buffer из кода дополнения или встраивания в контексте движка JS, не связанного с экземпляром Node.js. Данные, переданные методу Buffer, будут освобождены к моменту возврата из метода.
Вместо создания экземпляра Buffer можно создать обычный Uint8Array; он отличается только прототипом результирующего объекта. Uint8Arrays обычно принимаются во всех основных API Node.js, где используются Buffers; они доступны во всех контекстах.
ERR_BUFFER_OUT_OF_BOUNDS
Предпринята попытка выполнить операцию за пределами Buffer.
ERR_BUFFER_TOO_LARGE
Предпринята попытка создать Buffer, размер которого превышает максимально допустимый.
ERR_CANNOT_WATCH_SIGINT
Node.js не удалось отслеживать сигнал SIGINT.
ERR_CHILD_CLOSED_BEFORE_REPLY
Дочерний процесс был закрыт до того, как родительский процесс получил ответ.
ERR_CHILD_PROCESS_IPC_REQUIRED
Используется, когда дочерний процесс порождается без указания канала IPC.
ERR_CHILD_PROCESS_STDIO_MAXBUFFER
Используется, когда основной процесс пытается прочитать данные из STDERR/STDOUT дочернего процесса, а длина данных превышает значение параметра maxBuffer.
ERR_CLOSED_MESSAGE_PORT
Предпринята попытка использовать экземпляр MessagePort в закрытом состоянии, обычно после вызова .close().
ERR_CONSOLE_WRITABLE_STREAM
Экземпляр Console создан без потока stdout либо Console имеет поток stdout или stderr, недоступный для записи.
ERR_CONSTRUCT_CALL_INVALID
Был вызван конструктор класса, который нельзя вызвать.
ERR_CONSTRUCT_CALL_REQUIRED
Конструктор класса был вызван без new.
ERR_CONTEXT_NOT_INITIALIZED
Контекст vm, переданный в API, ещё не инициализирован. Это может произойти, если при создании контекста возникла ошибка (и была перехвачена), например, при сбое выделения памяти или при достижении максимального размера стека вызовов.
ERR_CPU_PROFILE_ALREADY_STARTED
Профиль CPU с указанным именем уже запущен.
ERR_CPU_PROFILE_NOT_STARTED
Профиль CPU с указанным именем не запущен.
ERR_CPU_PROFILE_TOO_MANY
Собирается слишком много профилей CPU.
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
Был запрошен движок OpenSSL (например, через параметры TLS clientCertEngine или privateKeyEngine), который не поддерживается используемой версией OpenSSL, вероятно, из-за флага времени компиляции OPENSSL_NO_ENGINE.
ERR_CRYPTO_ECDH_INVALID_FORMAT
Методу getPublicKey() класса crypto.ECDH() было передано недопустимое значение аргумента format.
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
Методу computeSecret() класса crypto.ECDH() было передано недопустимое значение аргумента key. Это означает, что открытый ключ находится за пределами эллиптической кривой.
ERR_CRYPTO_ENGINE_UNKNOWN
В require('node:crypto').setEngine() был передан недопустимый идентификатор криптографического движка.
ERR_CRYPTO_FIPS_FORCED
Был использован аргумент командной строки --force-fips, но предпринята попытка включить или отключить режим FIPS в модуле node:crypto.
ERR_CRYPTO_FIPS_UNAVAILABLE
Предпринята попытка включить или отключить режим FIPS, но этот режим недоступен.
ERR_CRYPTO_HASH_FINALIZED
hash.digest() был вызван несколько раз. Метод hash.digest() можно вызывать не более одного раза для каждого экземпляра объекта Hash.
ERR_CRYPTO_HASH_UPDATE_FAILED
Вызов hash.update() не удался по неизвестной причине. Такое случается крайне редко, если вообще случается.
ERR_CRYPTO_INCOMPATIBLE_KEY
Указанные криптографические ключи несовместимы с выполняемой операцией.
ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS
Выбранный формат кодирования открытого или закрытого ключа несовместим с другими параметрами.
ERR_CRYPTO_INITIALIZATION_FAILED
Не удалось инициализировать криптографическую подсистему.
ERR_CRYPTO_INVALID_AUTH_TAG
Указан недопустимый тег аутентификации.
ERR_CRYPTO_INVALID_COUNTER
Для шифра в режиме счётчика указан недопустимый счётчик.
ERR_CRYPTO_INVALID_CURVE
Указана недопустимая эллиптическая кривая.
ERR_CRYPTO_INVALID_DIGEST
Указан недопустимый алгоритм криптографического хеширования.
ERR_CRYPTO_INVALID_IV
Указан недопустимый вектор инициализации.
ERR_CRYPTO_INVALID_JWK
Указан недопустимый ключ JSON Web Key.
ERR_CRYPTO_INVALID_KEYLEN
Указана недопустимая длина ключа.
ERR_CRYPTO_INVALID_KEYPAIR
Указана недопустимая пара ключей.
ERR_CRYPTO_INVALID_KEYTYPE
Указан недопустимый тип ключа.
ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE
Тип указанного объекта криптографического ключа недопустим для выполняемой операции.
ERR_CRYPTO_INVALID_MESSAGELEN
Указана недопустимая длина сообщения.
ERR_CRYPTO_INVALID_SCRYPT_PARAMS
Указаны недопустимые параметры алгоритма scrypt.
ERR_CRYPTO_INVALID_STATE
Криптографический метод был применён к объекту в недопустимом состоянии. Например, вызов cipher.getAuthTag() до вызова cipher.final().
ERR_CRYPTO_INVALID_TAG_LENGTH
Указана недопустимая длина тега аутентификации.
ERR_CRYPTO_JOB_INIT_FAILED
Не удалось инициализировать асинхронную криптографическую операцию.
ERR_CRYPTO_JWK_UNSUPPORTED_CURVE
Эллиптическая кривая ключа не зарегистрирована для использования в реестре эллиптических кривых JSON Web Key.
ERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPE
Тип асимметричного ключа не зарегистрирован для использования в реестре типов ключей JSON Web Key.
ERR_CRYPTO_OPERATION_FAILED
Криптографическая операция завершилась с ошибкой по неуказанной причине.
ERR_CRYPTO_PBKDF2_ERROR
Алгоритм PBKDF2 завершился с ошибкой по неизвестным причинам. OpenSSL не предоставляет дополнительных сведений, поэтому Node.js тоже их не сообщает.
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER
Один или несколько параметров crypto.scrypt() или crypto.scryptSync() выходят за допустимые пределы.
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED
Node.js был собран без поддержки scrypt. В официальных бинарных файлах выпуска такое невозможно, но может происходить в пользовательских сборках, включая сборки дистрибутивов.
ERR_CRYPTO_SIGN_KEY_REQUIRED
Методу sign.sign() не был передан ключ key для подписи.
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH
Функция crypto.timingSafeEqual() была вызвана с аргументами Buffer, TypedArray или DataView разной длины.
ERR_CRYPTO_UNKNOWN_CIPHER
Указан неизвестный шифр.
ERR_CRYPTO_UNKNOWN_DH_GROUP
Указано неизвестное имя группы Диффи — Хеллмана. Список допустимых имён групп см. в разделе crypto.getDiffieHellman().
ERR_CRYPTO_UNSUPPORTED_OPERATION
Предпринята попытка выполнить неподдерживаемую криптографическую операцию.
ERR_DEBUGGER_ERROR
Произошла ошибка отладчика debugger.
ERR_DEBUGGER_STARTUP_ERROR
Время ожидания отладчиком debugger освобождения необходимого хоста/порта истекло.
ERR_DIR_CLOSED
fs.Dir ранее был закрыт.
ERR_DIR_CONCURRENT_OPERATION
Предпринята попытка синхронного чтения или закрытия fs.Dir, для которого выполняются асинхронные операции.
ERR_DLOPEN_DISABLED
Загрузка нативных дополнений отключена с помощью --no-addons.
ERR_DLOPEN_FAILED
Вызов process.dlopen() завершился с ошибкой.
ERR_DNS_SET_SERVERS_FAILED
Не удалось задать DNS-сервер с помощью c-ares.
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE
Модуль node:domain недоступен, поскольку не удалось настроить необходимые обработчики ошибок: ранее уже был вызван process.setUncaughtExceptionCaptureCallback().
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
Не удалось вызвать process.setUncaughtExceptionCaptureCallback(), поскольку модуль node:domain был загружен ранее.
В трассировку стека добавляется информация о моменте загрузки модуля node:domain.
ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION
Не удалось вызвать v8.startupSnapshot.setDeserializeMainFunction(), поскольку он уже вызывался ранее.
ERR_ENCODING_INVALID_ENCODED_DATA
Данные, переданные в API TextDecoder(), недопустимы для указанной кодировки.
ERR_ENCODING_NOT_SUPPORTED
Кодировка, указанная в API TextDecoder(), отсутствует среди поддерживаемых WHATWG кодировок.
ERR_EVAL_ESM_CANNOT_PRINT
--print нельзя использовать с входными данными ESM.
ERR_EVENT_RECURSION
Вызывается при попытке рекурсивно отправить событие для EventTarget.
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE
Контекст выполнения JS не связан со средой Node.js. Это может произойти, когда Node.js используется как встраиваемая библиотека, а некоторые обработчики движка JS настроены неправильно.
ERR_FALSY_VALUE_REJECTION
Promise, преобразованный в функцию обратного вызова с помощью util.callbackify(), был отклонён с ложным значением.
ERR_FEATURE_UNAVAILABLE_ON_PLATFORM
Используется, когда применяется функция, недоступная на платформе, на которой работает Node.js.
ERR_FS_CP_DIR_TO_NON_DIR
С помощью fs.cp() предпринята попытка скопировать каталог в объект, который не является каталогом (файл, символическую ссылку и т. д.).
ERR_FS_CP_EEXIST
С помощью fs.cp() предпринята попытка перезаписать уже существующий файл при установленных в true параметрах force и errorOnExist.
ERR_FS_CP_EINVAL
При использовании fs.cp() параметр src или dest указывал на недопустимый путь.
ERR_FS_CP_FIFO_PIPE
С помощью fs.cp() предпринята попытка скопировать именованный канал.
ERR_FS_CP_NON_DIR_TO_DIR
С помощью fs.cp() предпринята попытка скопировать объект, который не является каталогом (файл, символическую ссылку и т. д.), в каталог.
ERR_FS_CP_SOCKET
С помощью fs.cp() предпринята попытка скопировать данные в сокет.
ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY
При использовании fs.cp() символическая ссылка в dest указывала на подкаталог src.
ERR_FS_CP_UNKNOWN
С помощью fs.cp() предпринята попытка скопировать объект неизвестного типа файла.
ERR_FS_EISDIR
Путь указывает на каталог.
ERR_FS_FILE_TOO_LARGE
Предпринята попытка прочитать файл, размер которого превышает поддерживаемый предел в 2 ГиБ для fs.readFile(). Это ограничение связано не с Buffer, а с внутренними ограничениями ввода-вывода. Для работы с файлами большего размера используйте fs.createReadStream(), чтобы считывать файл частями.
ERR_FS_INVALID_SYMLINK_TYPE
Методу fs.symlink() или fs.symlinkSync() был передан недопустимый тип символической ссылки.
ERR_FS_WATCH_QUEUE_OVERFLOW
Количество ожидающих обработки событий файловой системы превысило размер, заданный параметром maxQueue в fs.watch().
ERR_HTTP2_ALTSVC_INVALID_ORIGIN
Кадрам HTTP/2 ALTSVC требуется допустимый источник.
ERR_HTTP2_ALTSVC_LENGTH
Размер полезной нагрузки кадров HTTP/2 ALTSVC не может превышать 16 382 байта.
ERR_HTTP2_CONNECT_AUTHORITY
Для запросов HTTP/2, использующих метод CONNECT, требуется псевдозаголовок :authority.
ERR_HTTP2_CONNECT_PATH
Для запросов HTTP/2, использующих метод CONNECT, псевдозаголовок :path запрещён.
ERR_HTTP2_CONNECT_SCHEME
Для запросов HTTP/2, использующих метод CONNECT, псевдозаголовок :scheme запрещён.
ERR_HTTP2_ERROR
Произошла неспецифическая ошибка HTTP/2.
ERR_HTTP2_GOAWAY_SESSION
Новые потоки HTTP/2 нельзя открывать после того, как Http2Session получил от подключённого узла кадр GOAWAY.
ERR_HTTP2_HEADERS_AFTER_RESPOND
После начала отправки ответа HTTP/2 были указаны дополнительные заголовки.
ERR_HTTP2_HEADERS_SENT
Предпринята попытка отправить несколько заголовков ответа.
ERR_HTTP2_HEADER_SINGLE_VALUE
Для поля заголовка HTTP/2, которому полагалось содержать только одно значение, было указано несколько значений.
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED
Информационные коды состояния HTTP (1xx) нельзя задавать в качестве кода состояния ответа HTTP/2.
ERR_HTTP2_INVALID_CONNECTION_HEADERS
Заголовки HTTP/1, относящиеся к соединению, запрещено использовать в запросах и ответах HTTP/2.
ERR_HTTP2_INVALID_HEADER_VALUE
Указано недопустимое значение заголовка HTTP/2.
ERR_HTTP2_INVALID_INFO_STATUS
Указан недопустимый информационный код состояния HTTP. Информационные коды состояния должны быть целым числом от 100 до 199 включительно.
ERR_HTTP2_INVALID_ORIGIN
Кадрам HTTP/2 ORIGIN требуется допустимый источник.
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
Длина экземпляров Buffer и Uint8Array, переданных в API http2.getUnpackedSettings(), должна быть кратна шести.
ERR_HTTP2_INVALID_PSEUDOHEADER
Можно использовать только допустимые псевдозаголовки HTTP/2 (:status, :path, :authority, :scheme и :method).
ERR_HTTP2_INVALID_SESSION
Была выполнена операция с объектом Http2Session, который уже был уничтожен.
ERR_HTTP2_INVALID_SETTING_VALUE
Для параметра HTTP/2 указано недопустимое значение.
ERR_HTTP2_INVALID_STREAM
Была выполнена операция с потоком, который уже был уничтожен.
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK
При отправке кадра HTTP/2 SETTINGS подключённому узлу тот обязан подтвердить получение и применение новых SETTINGS. По умолчанию одновременно можно отправить не более определённого количества кадров SETTINGS, не получив подтверждения. Этот код ошибки используется при достижении данного предела.
ERR_HTTP2_NESTED_PUSH
Предпринята попытка создать новый поток push из другого потока push. Вложенные потоки push не допускаются.
ERR_HTTP2_NO_MEM
При использовании API http2session.setLocalWindowSize(windowSize) закончилась память.
ERR_HTTP2_NO_SOCKET_MANIPULATION
Предпринята попытка напрямую управлять сокетом (читать, записывать, приостанавливать, возобновлять и т. д.), подключённым к Http2Session.
ERR_HTTP2_ORIGIN_LENGTH
Длина кадров HTTP/2 ORIGIN не может превышать 16 382 байта.
ERR_HTTP2_OUT_OF_STREAMS
Количество потоков, созданных в одном сеансе HTTP/2, достигло максимального предела.
ERR_HTTP2_PAYLOAD_FORBIDDEN
Для кода ответа HTTP, запрещающего полезную нагрузку, была указана полезная нагрузка сообщения.
ERR_HTTP2_PING_CANCEL
Проверочный запрос HTTP/2 ping был отменён.
ERR_HTTP2_PING_LENGTH
Длина полезной нагрузки HTTP/2 ping должна составлять ровно 8 байт.
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED
Псевдозаголовок HTTP/2 использован неправильно. Псевдозаголовки — это имена ключей заголовков, начинающиеся с префикса :.
ERR_HTTP2_PUSH_DISABLED
Предпринята попытка создать поток push, отключённый клиентом.
ERR_HTTP2_SEND_FILE
Предпринята попытка отправить каталог с помощью API Http2Stream.prototype.responseWithFile().
ERR_HTTP2_SEND_FILE_NOSEEK
Предпринята попытка отправить с помощью API Http2Stream.prototype.responseWithFile() объект, не являющийся обычным файлом, при этом были указаны параметры offset или length.
ERR_HTTP2_SESSION_ERROR
Http2Session был закрыт с ненулевым кодом ошибки.
ERR_HTTP2_SETTINGS_CANCEL
Настройки Http2Session были отменены.
ERR_HTTP2_SOCKET_BOUND
Предпринята попытка подключить объект Http2Session к net.Socket или tls.TLSSocket, уже связанному с другим объектом Http2Session.
ERR_HTTP2_SOCKET_UNBOUND
Предпринята попытка использовать свойство socket объекта Http2Session, который уже закрыт.
ERR_HTTP2_STATUS_101
Использование информационного кода состояния 101 в HTTP/2 запрещено.
ERR_HTTP2_STATUS_INVALID
Указан недопустимый код состояния HTTP. Коды состояния должны быть целым числом от 100 до 599 включительно.
ERR_HTTP2_STREAM_CANCEL
Объект Http2Stream был уничтожен до передачи каких-либо данных подключённому узлу.
ERR_HTTP2_STREAM_ERROR
В кадре RST_STREAM был указан ненулевой код ошибки.
ERR_HTTP2_STREAM_SELF_DEPENDENCY
При настройке приоритета потока HTTP/2 можно указать зависимость потока от родительского потока. Этот код ошибки используется при попытке установить зависимость потока от самого себя.
ERR_HTTP2_TOO_MANY_CUSTOM_SETTINGS
Превышено максимальное количество поддерживаемых пользовательских параметров (10).
ERR_HTTP2_TOO_MANY_INVALID_FRAMES
Превышен предел допустимого количества недопустимых кадров протокола HTTP/2, отправляемых узлом и заданных с помощью параметра maxSessionInvalidFrames.
ERR_HTTP2_TRAILERS_ALREADY_SENT
Завершающие заголовки для Http2Stream уже были отправлены.
ERR_HTTP2_TRAILERS_NOT_READY
Метод http2stream.sendTrailers() нельзя вызвать, пока для объекта Http2Stream не будет сгенерировано событие 'wantTrailers'. Событие 'wantTrailers' будет сгенерировано, только если для Http2Stream задан параметр waitForTrailers.
ERR_HTTP2_UNSUPPORTED_PROTOCOL
В http2.connect() передан URL, использующий протокол, отличный от http: или https:.
ERR_HTTP_BODY_NOT_ALLOWED
Ошибка возникает при записи в HTTP-ответ, который не допускает содержимого.
ERR_HTTP_CONTENT_LENGTH_MISMATCH
Размер тела ответа не совпадает со значением заголовка content-length.
ERR_HTTP_HEADERS_SENT
Предпринята попытка добавить заголовки после того, как заголовки уже были отправлены.
ERR_HTTP_INVALID_HEADER_VALUE
Указано недопустимое значение HTTP-заголовка.
ERR_HTTP_INVALID_STATUS_CODE
Код состояния находится за пределами допустимого диапазона кодов состояния (100–999).
ERR_HTTP_REQUEST_TIMEOUT
Клиент не отправил весь запрос в течение отведенного времени.
ERR_HTTP_SOCKET_ASSIGNED
Для указанного ServerResponse уже назначен сокет.
ERR_HTTP_SOCKET_ENCODING
Изменение кодировки сокета запрещено согласно разделу 3 RFC 7230.
ERR_HTTP_TRAILER_INVALID
Заголовок Trailer был задан, хотя кодировка передачи его не поддерживает.
ERR_ILLEGAL_CONSTRUCTOR
Предпринята попытка создать объект с помощью непубличного конструктора.
ERR_IMPORT_ATTRIBUTE_MISSING
Отсутствует атрибут импорта, из-за чего указанный модуль не удается импортировать.
ERR_IMPORT_ATTRIBUTE_TYPE_INCOMPATIBLE
Был указан атрибут импорта type, но указанный модуль имеет другой тип.
ERR_IMPORT_ATTRIBUTE_UNSUPPORTED
Эта версия Node.js не поддерживает атрибут импорта.
ERR_INCOMPATIBLE_OPTION_PAIR
Пара параметров несовместима и не может использоваться одновременно.
ERR_INPUT_TYPE_NOT_ALLOWED
Флаг --input-type использован для попытки выполнить файл. Этот флаг можно использовать только с вводом через --eval, --print или STDIN.
ERR_INSPECTOR_ALREADY_ACTIVATED
При использовании модуля node:inspector предпринята попытка активировать инспектор, хотя он уже начал прослушивать порт. Перед активацией инспектора по другому адресу используйте inspector.close().
ERR_INSPECTOR_ALREADY_CONNECTED
При использовании модуля node:inspector предпринята попытка подключиться, хотя инспектор уже подключен.
ERR_INSPECTOR_CLOSED
При использовании модуля node:inspector предпринята попытка использовать инспектор после закрытия сеанса.
ERR_INSPECTOR_COMMAND
При отправке команды через модуль node:inspector произошла ошибка.
ERR_INSPECTOR_NOT_ACTIVE
inspector не активен в момент вызова inspector.waitForDebugger().
ERR_INSPECTOR_NOT_AVAILABLE
Модуль node:inspector недоступен для использования.
ERR_INSPECTOR_NOT_CONNECTED
При использовании модуля node:inspector предпринята попытка использовать инспектор до подключения.
ERR_INSPECTOR_NOT_WORKER
В основном потоке вызван API, который можно использовать только из рабочего потока.
ERR_INTERNAL_ASSERTION
В Node.js произошла ошибка или было использовано внутреннее API Node.js неправильным образом. Чтобы исправить ошибку, создайте issue на https://github.com/nodejs/node/issues.
ERR_INVALID_ADDRESS
Указанный адрес не распознан API Node.js.
ERR_INVALID_ADDRESS_FAMILY
Указанное семейство адресов не распознано API Node.js.
ERR_INVALID_ARG_TYPE
В API Node.js передан аргумент неправильного типа.
ERR_INVALID_ARG_VALUE
Для указанного аргумента передано недопустимое или неподдерживаемое значение.
ERR_INVALID_ASYNC_ID
С помощью AsyncHooks передан недопустимый asyncId или triggerAsyncId. Идентификатор меньше -1 не должен встречаться.
ERR_INVALID_BUFFER_SIZE
Для Buffer выполнена операция обмена, но его размер несовместим с этой операцией.
ERR_INVALID_CHAR
В заголовках обнаружены недопустимые символы.
ERR_INVALID_CURSOR_POS
Курсор в заданном потоке нельзя переместить в указанную строку без указания столбца.
ERR_INVALID_FD
Дескриптор файла («fd») недействителен (например, имеет отрицательное значение).
ERR_INVALID_FD_TYPE
Тип дескриптора файла («fd») недействителен.
ERR_INVALID_FILE_URL_HOST
В API Node.js, принимающем URL file: (например, в некоторых функциях модуля fs), обнаружен URL файла с несовместимым хостом. Такая ситуация возможна только в Unix-подобных системах, где поддерживается только localhost или пустой хост.
ERR_INVALID_FILE_URL_PATH
В API Node.js, принимающем URL file: (например, в некоторых функциях модуля fs), обнаружен URL файла с несовместимым путем. Точные правила определения допустимости пути зависят от платформы.
Объект возникшей ошибки содержит свойство input, в котором находится объект URL недопустимого URL file:.
ERR_INVALID_HANDLE_TYPE
Предпринята попытка отправить неподдерживаемый «handle» по каналу межпроцессного взаимодействия дочернему процессу. Дополнительную информацию см. в разделах subprocess.send() и process.send().
ERR_INVALID_HTTP_TOKEN
Указан недопустимый токен HTTP.
ERR_INVALID_IP_ADDRESS
IP-адрес недействителен.
ERR_INVALID_MIME_SYNTAX
Синтаксис MIME недействителен.
ERR_INVALID_MODULE
Предпринята попытка загрузить несуществующий или иным образом недействительный модуль.
ERR_INVALID_MODULE_SPECIFIER
Строка импортируемого модуля представляет собой недопустимый URL, имя пакета или спецификатор подпути пакета.
ERR_INVALID_OBJECT_DEFINE_PROPERTY
При установке недопустимого атрибута свойства объекта произошла ошибка.
ERR_INVALID_PACKAGE_CONFIG
Не удалось выполнить разбор недопустимого файла package.json.
ERR_INVALID_PACKAGE_TARGET
Поле package.json "exports" содержит недопустимое значение сопоставления целевого объекта для выполняемого разрешения модуля.
ERR_INVALID_PROTOCOL
В http.request() передан недопустимый options.protocol.
ERR_INVALID_REPL_EVAL_CONFIG
В конфигурации REPL заданы параметры breakEvalOnSigint и eval, что не поддерживается.
ERR_INVALID_REPL_INPUT
Этот ввод нельзя использовать в REPL. Условия возникновения этой ошибки описаны в документации REPL.
ERR_INVALID_RETURN_PROPERTY
Возникает, если параметр функции не предоставляет допустимое значение для одного из свойств возвращаемого объекта при выполнении.
ERR_INVALID_RETURN_PROPERTY_VALUE
Возникает, если параметр функции не предоставляет ожидаемый тип значения для одного из свойств возвращаемого объекта при выполнении.
ERR_INVALID_RETURN_VALUE
Возникает, если параметр функции не возвращает значение ожидаемого типа при выполнении, например, когда функция должна возвращать промис.
ERR_INVALID_STATE
Указывает, что операцию невозможно завершить из-за недопустимого состояния. Например, объект мог быть уже уничтожен или выполнять другую операцию.
ERR_INVALID_SYNC_FORK_INPUT
В качестве входных данных stdio для асинхронного процесса fork передан Buffer, TypedArray, DataView или string. Дополнительную информацию см. в документации модуля child_process.
ERR_INVALID_THIS
Функция API Node.js вызвана с несовместимым значением this.
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
const buf = Buffer.alloc(1);
urlSearchParams.has.call(buf, 'foo');
// Throws a TypeError with code 'ERR_INVALID_THIS' copy
ERR_INVALID_TUPLE
Элемент в переданном iterable конструктору URLSearchParams из WHATWG не представляет собой кортеж [name, value] — то есть элемент не является итерируемым или состоит не ровно из двух элементов.
ERR_INVALID_TYPESCRIPT_SYNTAX
Указанный синтаксис TypeScript недействителен.
ERR_INVALID_URI
Передан недопустимый URI.
ERR_INVALID_URL
Недопустимый URL передан конструктору URL из WHATWG или для разбора устаревшей функции url.parse(). Обычно объект возникшей ошибки содержит дополнительное свойство 'input', в котором находится URL, не прошедший разбор.
ERR_INVALID_URL_SCHEME
Предпринята попытка использовать URL с несовместимой схемой (протоколом) для определенной цели. Ошибка используется только в поддержке API URL WHATWG в модуле fs (который принимает только URL со схемой 'file'), но в будущем может также использоваться в других API Node.js.
ERR_IPC_CHANNEL_CLOSED
Предпринята попытка использовать уже закрытый канал межпроцессного взаимодействия.
ERR_IPC_DISCONNECTED
Предпринята попытка отключить уже отключенный канал межпроцессного взаимодействия. Дополнительную информацию см. в документации модуля child_process.
ERR_IPC_ONE_PIPE
Предпринята попытка создать дочерний процесс Node.js с использованием более чем одного канала межпроцессного взаимодействия. Дополнительную информацию см. в документации модуля child_process.
ERR_IPC_SYNC_FORK
Предпринята попытка открыть канал межпроцессного взаимодействия с синхронно созданным процессом Node.js. Дополнительную информацию см. в документации модуля child_process.
ERR_IP_BLOCKED
IP заблокирован компонентом net.BlockList.
ERR_LOADER_CHAIN_INCOMPLETE
Хук загрузчика ESM завершился, не вызвав next() и явно не сообщив о коротком замыкании.
ERR_LOAD_SQLITE_EXTENSION
При загрузке расширения SQLite произошла ошибка.
ERR_MEMORY_ALLOCATION_FAILED
Предпринята попытка выделить память (обычно на уровне C++), но она завершилась неудачей.
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE
Не удалось десериализовать сообщение, отправленное в MessagePort, в целевом контексте Context vm. В настоящее время не все объекты Node.js можно успешно создать в любом контексте, поэтому попытка передать их с помощью postMessage() может завершиться ошибкой на стороне получателя.
ERR_METHOD_NOT_IMPLEMENTED
Требуемый метод не реализован.
ERR_MISSING_ARGS
Не передан обязательный аргумент API Node.js. Эта ошибка используется только для строгого соответствия спецификации API (которая в некоторых случаях может принимать func(undefined), но не func()). В большинстве нативных API Node.js func(undefined) и func() считаются идентичными, поэтому вместо этого может использоваться код ошибки ERR_INVALID_ARG_TYPE.
ERR_MISSING_OPTION
Для API, принимающих объекты параметров, некоторые параметры могут быть обязательными. Этот код возникает, если обязательный параметр отсутствует.
ERR_MISSING_PASSPHRASE
Предпринята попытка прочитать зашифрованный ключ без указания парольной фразы.
ERR_MISSING_PLATFORM_FOR_WORKER
Платформа V8, используемая этим экземпляром Node.js, не поддерживает создание рабочих потоков. Причина — отсутствие поддержки рабочих потоков со стороны встраивающей программы. В частности, эта ошибка не возникает в стандартных сборках Node.js.
ERR_MODULE_NOT_FOUND
Загрузчику модулей ECMAScript не удалось разрешить файл модуля при выполнении операции import или загрузке точки входа программы.
ERR_MULTIPLE_CALLBACK
Функция обратного вызова вызвана более одного раза.
Обычно функция обратного вызова должна вызываться только один раз, поскольку запрос может быть либо выполнен, либо отклонен, но не то и другое одновременно. Второй вариант может возникнуть, если вызвать функцию обратного вызова более одного раза.
ERR_NAPI_CONS_FUNCTION
При использовании Node-API переданный конструктор не являлся функцией.
ERR_NAPI_INVALID_DATAVIEW_ARGS
При вызове napi_create_dataview() указанный offset выходил за границы dataview или offset + length превышал длину заданного buffer.
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT
При вызове napi_create_typedarray() переданный offset не был кратен размеру элемента.
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH
При вызове napi_create_typedarray() значение (length * size_of_element) + byte_offset превышало длину заданного buffer.
ERR_NAPI_TSFN_CALL_JS
При вызове JavaScript-части потокобезопасной функции произошла ошибка.
ERR_NAPI_TSFN_GET_UNDEFINED
При попытке получить значение JavaScript undefined произошла ошибка.
ERR_NON_CONTEXT_AWARE_DISABLED
В процесс, запрещающий загрузку таких модулей, загружено нативное дополнение, не поддерживающее контексты.
ERR_NOT_BUILDING_SNAPSHOT
Предпринята попытка использовать операции, доступные только при создании стартового снимка V8, хотя Node.js его не создает.
ERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATION
Операцию нельзя выполнить вне однофайлового исполняемого приложения.
ERR_NOT_SUPPORTED_IN_SNAPSHOT
Предпринята попытка выполнить операции, которые не поддерживаются при создании стартового снимка.
ERR_NO_CRYPTO
Предпринята попытка использовать криптографические функции, хотя Node.js был собран без поддержки криптографии OpenSSL.
ERR_NO_ICU
Предпринята попытка использовать функции, требующие ICU, но Node.js был собран без поддержки ICU.
ERR_NO_TYPESCRIPT
Предпринята попытка использовать функции, требующие встроенной поддержки TypeScript, но Node.js был собран без поддержки TypeScript.
ERR_OPERATION_FAILED
Операция завершилась неудачно. Обычно этот код используется для обозначения общей ошибки асинхронной операции.
ERR_OPTIONS_BEFORE_BOOTSTRAPPING
Предпринята попытка получить параметры до завершения инициализации.
ERR_OUT_OF_RANGE
Указанное значение выходит за допустимый диапазон.
ERR_PACKAGE_IMPORT_NOT_DEFINED
Поле package.json "imports" не задает сопоставление для указанного внутреннего спецификатора пакета.
ERR_PACKAGE_PATH_NOT_EXPORTED
Поле package.json "exports" не экспортирует запрошенный подпуть. Поскольку экспорты инкапсулированы, закрытые внутренние модули, которые не экспортируются, нельзя импортировать при разрешении пакетов, если не использовать абсолютный URL.
ERR_PARSE_ARGS_INVALID_OPTION_VALUE
Если strict установлен в true, функция util.parseArgs() вызывает эту ошибку, когда для параметра типа <string> указано значение типа <boolean> или для параметра типа <boolean> указано значение типа <string>.
ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL
Функция util.parseArgs() вызывает эту ошибку, если передан позиционный аргумент, а allowPositionals установлен в false.
ERR_PARSE_ARGS_UNKNOWN_OPTION
Если strict установлен в true, функция util.parseArgs() вызывает эту ошибку, если аргумент не настроен в options.
ERR_PERFORMANCE_INVALID_TIMESTAMP
Для отметки или измерения производительности указано недопустимое значение временной метки.
ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS
Для измерения производительности указаны недопустимые параметры.
ERR_PROTO_ACCESS
Доступ к Object.prototype.__proto__ запрещен с помощью --disable-proto=throw. Для получения и установки прототипа объекта следует использовать Object.getPrototypeOf и Object.setPrototypeOf.
ERR_QUIC_CONNECTION_FAILED
Не удалось установить соединение QUIC.
ERR_QUIC_ENDPOINT_CLOSED
Конечная точка QUIC закрылась с ошибкой.
ERR_QUIC_VERSION_NEGOTIATION_ERROR
Сеанс QUIC завершился с ошибкой, поскольку требуется согласование версии.
ERR_REQUIRE_ASYNC_MODULE
При попытке выполнить require() модуль ES выясняется, что модуль асинхронный. То есть он содержит await на верхнем уровне.
Чтобы определить, где находится await на верхнем уровне, используйте --experimental-print-required-tla (при этом модули будут выполнены до поиска await на верхнем уровне).
ERR_REQUIRE_CYCLE_MODULE
При попытке выполнить require() модуль ES ребро CommonJS → ESM или ESM → CommonJS участвует в непосредственном цикле. Это запрещено, поскольку модули ES нельзя вычислять, пока они уже вычисляются.
Чтобы избежать цикла, вызов require(), участвующий в цикле, не должен происходить на верхнем уровне ни модуля ES (через createRequire()), ни модуля CommonJS. Его следует выполнять отложенно во внутренней функции.
ERR_REQUIRE_ESM
Предпринята попытка выполнить require() модуль ES.
Этот код ошибки устарел, поскольку require() теперь поддерживает загрузку синхронных модулей ES. Если require() обнаружит модуль ES, содержащий await await, вместо этого будет вызвана ошибка ERR_REQUIRE_ASYNC_MODULE.
ERR_SCRIPT_EXECUTION_INTERRUPTED
Выполнение скрипта прервано с помощью SIGINT (например, нажатием Ctrl+C).
ERR_SCRIPT_EXECUTION_TIMEOUT
Время ожидания выполнения скрипта истекло, возможно, из-за ошибок в выполняемом скрипте.
ERR_SERVER_ALREADY_LISTEN
Метод server.listen() вызван, когда net.Server уже прослушивает подключения. Это относится ко всем экземплярам net.Server, включая экземпляры HTTP, HTTPS и HTTP/2 Server.
ERR_SERVER_NOT_RUNNING
Метод server.close() вызван, когда net.Server не запущен. Это относится ко всем экземплярам net.Server, включая экземпляры HTTP, HTTPS и HTTP/2 Server.
ERR_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND
В API однофайлового исполняемого приложения передан ключ для идентификации ресурса, но соответствие не найдено.
ERR_SOCKET_ALREADY_BOUND
Предпринята попытка привязать сокет, который уже привязан.
ERR_SOCKET_BAD_BUFFER_SIZE
Для параметра recvBufferSize или sendBufferSize в dgram.createSocket() указан недопустимый (отрицательный) размер.
ERR_SOCKET_BAD_PORT
Функция API, ожидающая порт >= 0 и < 65536, получила недопустимое значение.
ERR_SOCKET_BAD_TYPE
Функция API, ожидающая тип сокета (udp4 или udp6), получила недопустимое значение.
ERR_SOCKET_BUFFER_SIZE
При использовании dgram.createSocket() не удалось определить размер буфера приёма или отправки Buffer.
ERR_SOCKET_CLOSED
Предпринята попытка выполнить операцию с уже закрытым сокетом.
ERR_SOCKET_CLOSED_BEFORE_CONNECTION
Метод net.Socket.write() был вызван для подключающегося сокета, который закрылся до установления соединения.
ERR_SOCKET_CONNECTION_TIMEOUT
Сокету не удалось подключиться ни к одному из адресов, возвращённых DNS, в течение отведённого времени ожидания при использовании алгоритма автоматического выбора семейства адресов.
ERR_SOCKET_DGRAM_IS_CONNECTED
Метод dgram.connect() был вызван для уже подключённого сокета.
ERR_SOCKET_DGRAM_NOT_CONNECTED
Метод dgram.disconnect() или dgram.remoteAddress() был вызван для отключённого сокета.
ERR_SOCKET_DGRAM_NOT_RUNNING
Метод был вызван, когда подсистема UDP не работала.
ERR_SOURCE_MAP_CORRUPT
Не удалось разобрать карту исходного кода, поскольку она отсутствует или повреждена.
ERR_SOURCE_MAP_MISSING_SOURCE
Файл, импортированный из карты исходного кода, не найден.
ERR_SQLITE_ERROR
От SQLite возвращена ошибка.
ERR_SRI_PARSE
Для проверки Subresource Integrity была передана строка, которую не удалось разобрать. Проверьте формат атрибутов integrity в спецификации Subresource Integrity.
ERR_STREAM_ALREADY_FINISHED
Был вызван метод потока, выполнение которого невозможно, поскольку поток завершён.
ERR_STREAM_CANNOT_PIPE
Предпринята попытка вызвать stream.pipe() для потока Writable.
ERR_STREAM_DESTROYED
Был вызван метод потока, выполнение которого невозможно, поскольку поток уничтожен с помощью stream.destroy().
ERR_STREAM_NULL_VALUES
Предпринята попытка вызвать stream.write() с фрагментом null.
ERR_STREAM_PREMATURE_CLOSE
Ошибка, возвращаемая stream.finished() и stream.pipeline(), если поток или конвейер завершается некорректно без явной ошибки.
ERR_STREAM_PUSH_AFTER_EOF
Предпринята попытка вызвать stream.push() после того, как в поток был передан null (EOF).
ERR_STREAM_UNSHIFT_AFTER_END_EVENT
Предпринята попытка вызвать stream.unshift() после генерации события 'end'.
ERR_STREAM_WRAP
Предотвращает прерывание, если для Socket задан декодер строк или декодер находится в состоянии objectMode.
const Socket = require('node:net').Socket;
const instance = new Socket();
instance.setEncoding('utf8'); copy
ERR_STREAM_WRITE_AFTER_END
Предпринята попытка вызвать stream.write() после вызова stream.end().
ERR_STRING_TOO_LONG
Предпринята попытка создать строку, длина которой превышает максимально допустимое значение.
ERR_SYNTHETIC
Искусственный объект ошибки, используемый для сохранения стека вызовов в диагностических отчётах.
ERR_SYSTEM_ERROR
В процессе Node.js произошла неопределённая или неспецифическая системная ошибка. В объекте ошибки будет свойство err.info с дополнительными сведениями.
ERR_TEST_FAILURE
Эта ошибка указывает на неудачное прохождение теста. Дополнительные сведения о сбое доступны через свойство cause. Свойство failureType указывает, что выполнял тест в момент сбоя.
ERR_TLS_ALPN_CALLBACK_INVALID_RESULT
Эта ошибка возникает, когда ALPNCallback возвращает значение, отсутствующее в списке протоколов ALPN, предложенных клиентом.
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS
Эта ошибка возникает при создании TLSServer, если параметры TLS включают одновременно ALPNProtocols и ALPNCallback. Эти параметры взаимоисключающие.
ERR_TLS_CERT_ALTNAME_FORMAT
Эта ошибка возникает в checkServerIdentity, если свойство subjectaltname, заданное пользователем, нарушает правила кодирования. Объекты сертификатов, созданные самим Node.js, всегда соответствуют правилам кодирования и никогда не вызовут эту ошибку.
ERR_TLS_CERT_ALTNAME_INVALID
При использовании TLS имя хоста/IP-адрес узла-партнёра не совпало ни с одним из значений subjectAltNames в его сертификате.
ERR_TLS_DH_PARAM_SIZE
При использовании TLS параметр, предложенный для протокола согласования ключей Диффи — Хеллмана (DH), слишком мал. По умолчанию длина ключа должна составлять не менее 1024 бит, чтобы избежать уязвимостей, хотя для более надёжной защиты настоятельно рекомендуется использовать ключ длиной 2048 бит или больше.
ERR_TLS_HANDSHAKE_TIMEOUT
Истекло время ожидания рукопожатия TLS/SSL. В этом случае сервер также должен прервать соединение.
ERR_TLS_INVALID_CONTEXT
Контекст должен быть объектом SecureContext.
ERR_TLS_INVALID_PROTOCOL_METHOD
Указанный метод secureProtocol недопустим. Он либо неизвестен, либо отключён из-за небезопасности.
ERR_TLS_INVALID_PROTOCOL_VERSION
Допустимые версии протокола TLS: 'TLSv1', 'TLSv1.1' или 'TLSv1.2'.
ERR_TLS_INVALID_STATE
Сокет TLS должен быть подключён, а защищённое соединение должно быть установлено. Прежде чем продолжить, убедитесь, что сгенерировано событие 'secure'.
ERR_TLS_PROTOCOL_VERSION_CONFLICT
Попытка задать версию протокола TLS minVersion или maxVersion конфликтует с явной установкой secureProtocol. Используйте только один из этих способов.
ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED
Не удалось задать подсказку идентификатора PSK. Возможно, подсказка слишком длинная.
ERR_TLS_RENEGOTIATION_DISABLED
Предпринята попытка повторного согласования TLS для экземпляра сокета, в котором повторное согласование отключено.
ERR_TLS_REQUIRED_SERVER_NAME
При использовании TLS метод server.addContext() был вызван без указания имени хоста в первом параметре.
ERR_TLS_SESSION_ATTACK
Обнаружено чрезмерное количество повторных согласований TLS, что может использоваться для атак типа «отказ в обслуживании».
ERR_TLS_SNI_FROM_SERVER
Предпринята попытка отправить индикацию имени сервера с сокета TLS на стороне сервера, хотя это допустимо только на стороне клиента.
ERR_TRACE_EVENTS_CATEGORY_REQUIRED
Для метода trace_events.createTracing() требуется как минимум одна категория событий трассировки.
ERR_TRACE_EVENTS_UNAVAILABLE
Не удалось загрузить модуль node:trace_events, поскольку Node.js был собран с флагом --without-v8-platform.
ERR_TRAILING_JUNK_AFTER_STREAM_END
После конца сжатого потока обнаружены лишние данные. Эта ошибка возникает, если после конца сжатого потока обнаруживаются дополнительные неожиданные данные (например, при распаковке zlib или gzip).
ERR_TRANSFORM_ALREADY_TRANSFORMING
Поток Transform завершился, пока преобразование ещё выполнялось.
ERR_TRANSFORM_WITH_LENGTH_0
Поток Transform завершился, хотя в буфере записи ещё оставались данные.
ERR_TTY_INIT_FAILED
Не удалось инициализировать TTY из-за системной ошибки.
ERR_UNAVAILABLE_DURING_EXIT
Функция была вызвана в обработчике process.on('exit'), хотя её не следует вызывать в обработчике process.on('exit').
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET
process.setUncaughtExceptionCaptureCallback() был вызван дважды без предварительного сброса обратного вызова в null.
Эта ошибка предназначена для предотвращения случайной перезаписи обратного вызова, зарегистрированного другим модулем.
ERR_UNESCAPED_CHARACTERS
Получена строка, содержащая неэкранированные символы.
ERR_UNHANDLED_ERROR
Произошла необработанная ошибка (например, когда объект EventEmitter генерирует событие 'error', но обработчик 'error' не зарегистрирован).
ERR_UNKNOWN_BUILTIN_MODULE
Используется для обозначения определённого типа внутренней ошибки Node.js, которая обычно не должна возникать в пользовательском коде. Экземпляры этой ошибки указывают на внутреннюю ошибку в самом исполняемом файле Node.js.
ERR_UNKNOWN_CREDENTIAL
Передан несуществующий идентификатор группы или пользователя Unix.
ERR_UNKNOWN_ENCODING
В API передан недопустимый или неизвестный параметр кодировки.
ERR_UNKNOWN_FILE_EXTENSION
Предпринята попытка загрузить модуль с неизвестным или неподдерживаемым расширением файла.
ERR_UNKNOWN_MODULE_FORMAT
Предпринята попытка загрузить модуль с неизвестным или неподдерживаемым форматом.
ERR_UNKNOWN_SIGNAL
В API, ожидающий допустимый сигнал (например, subprocess.kill()), передан недопустимый или неизвестный сигнал процесса.
ERR_UNSUPPORTED_DIR_IMPORT
import импорт URL каталога не поддерживается. Вместо этого ссылайтесь на пакет по его имени и задайте пользовательский подпуть в поле "exports" файла package.json.
import './'; // unsupported import './index.js'; // supported import 'package-name'; // supported copy
ERR_UNSUPPORTED_ESM_URL_SCHEME
import с URL-схемами, отличными от file и data, не поддерживается.
ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING
Удаление типов не поддерживается для файлов, находящихся внутри каталога node_modules или его подкаталогов.
ERR_UNSUPPORTED_RESOLVE_REQUEST
Предпринята попытка разрешить недопустимый модуль-инициатор. Это может произойти при импорте или вызове import.meta.resolve() в следующих случаях:
- из модуля с URL-схемой, отличной от
file, передан голый спецификатор, не являющийся встроенным модулем; - из модуля, URL-схема которого не относится к специальным схемам, передан относительный URL.
try {
// Trying to import the package 'bare-specifier' from a `data:` URL module:
await import('data:text/javascript,import "bare-specifier"');
} catch (e) {
console.log(e.code); // ERR_UNSUPPORTED_RESOLVE_REQUEST
} copy
ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
Указанный синтаксис TypeScript не поддерживается. Такое может произойти при использовании синтаксиса TypeScript, требующего преобразования с помощью удаления типов.
ERR_USE_AFTER_CLOSE
Предпринята попытка использовать уже закрытый объект.
ERR_VALID_PERFORMANCE_ENTRY_TYPE
При использовании API Performance Timing (perf_hooks) не найдено допустимых типов записей производительности.
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
Не указан обратный вызов динамического импорта.
ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG
Обратный вызов динамического импорта был вызван без --experimental-vm-modules.
ERR_VM_MODULE_ALREADY_LINKED
Модуль нельзя связать по одной из следующих причин:
- Он уже связан (
linkingStatus—'linked') - В данный момент он связывается (
linkingStatus—'linking') - Не удалось связать этот модуль (
linkingStatus—'errored')
ERR_VM_MODULE_CACHED_DATA_REJECTED
Параметр cachedData, переданный конструктору модуля, недопустим.
ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA
Нельзя создать кэшированные данные для уже вычисленных модулей.
ERR_VM_MODULE_DIFFERENT_CONTEXT
Модуль, возвращённый функцией связывателя, относится к контексту, отличному от контекста родительского модуля. Связанные модули должны использовать один и тот же контекст.
ERR_VM_MODULE_LINK_FAILURE
Не удалось связать модуль.
ERR_VM_MODULE_NOT_MODULE
Выполненное значение промиса связывания не является объектом vm.Module.
ERR_VM_MODULE_STATUS
Текущий статус модуля не позволяет выполнить эту операцию. Конкретное значение ошибки зависит от вызываемой функции.
ERR_WASI_ALREADY_STARTED
Экземпляр WASI уже запущен.
ERR_WASI_NOT_STARTED
Экземпляр WASI не запущен.
ERR_WEBASSEMBLY_RESPONSE
Объект Response, переданный в WebAssembly.compileStreaming или WebAssembly.instantiateStreaming, не является допустимым ответом WebAssembly.
ERR_WORKER_INIT_FAILED
Не удалось выполнить инициализацию Worker.
ERR_WORKER_INVALID_EXEC_ARGV
Параметр execArgv, переданный конструктору Worker, содержит недопустимые флаги.
ERR_WORKER_MESSAGING_ERRORED
В целевом потоке возникла ошибка при обработке сообщения, отправленного через postMessageToThread().
ERR_WORKER_MESSAGING_FAILED
Поток, указанный в postMessageToThread(), недопустим или в нём отсутствует обработчик workerMessage.
ERR_WORKER_MESSAGING_SAME_THREAD
Идентификатор потока, запрошенный в postMessageToThread(), совпадает с идентификатором текущего потока.
ERR_WORKER_MESSAGING_TIMEOUT
Время ожидания отправки сообщения через postMessageToThread() истекло.
ERR_WORKER_NOT_RUNNING
Операция завершилась ошибкой, поскольку экземпляр Worker в данный момент не работает.
ERR_WORKER_OUT_OF_MEMORY
Экземпляр Worker завершил работу, поскольку достиг лимита памяти.
ERR_WORKER_PATH
Путь к основному скрипту рабочего потока не является ни абсолютным путём, ни относительным путём, начинающимся с ./ или ../.
ERR_WORKER_UNSERIALIZABLE_ERROR
Не удалось сериализовать необработанное исключение из рабочего потока, несмотря на все попытки.
ERR_WORKER_UNSUPPORTED_OPERATION
Запрошенная функциональность не поддерживается в рабочих потоках.
ERR_ZLIB_INITIALIZATION_FAILED
Не удалось создать объект zlib из-за неправильной конфигурации.
ERR_ZSTD_INVALID_PARAM
При создании потока Zstd передан недопустимый ключ параметра.
HPE_CHUNK_EXTENSIONS_OVERFLOW
Получено слишком много данных для расширений фрагмента. Для защиты от вредоносных клиентов и клиентов с неправильной настройкой при получении более 16 КиБ данных генерируется Error с этим кодом.
HPE_HEADER_OVERFLOW
Получено слишком много данных HTTP-заголовка. Для защиты от вредоносных клиентов и клиентов с неправильной настройкой при получении более maxHeaderSize данных HTTP-заголовка разбор HTTP будет прерван без создания объекта запроса или ответа, а также будет сгенерирован Error с этим кодом.
HPE_UNEXPECTED_CONTENT_LENGTH
Сервер отправляет одновременно заголовок Content-Length и Transfer-Encoding: chunked.
Transfer-Encoding: chunked позволяет серверу поддерживать постоянное HTTP-соединение для динамически генерируемого содержимого. В этом случае нельзя использовать HTTP-заголовок Content-Length.
Используйте Content-Length или Transfer-Encoding: chunked.
MODULE_NOT_FOUND
Загрузчику модулей CommonJS не удалось разрешить файл модуля при попытке выполнить операцию require() или загрузить точку входа программы.
Устаревшие коды ошибок Node.js
ERR_CANNOT_TRANSFER_OBJECT
Значение, переданное в postMessage(), содержало объект, который не поддерживается для передачи.
ERR_CPU_USAGE
Не удалось обработать собственный вызов из process.cpuUsage.
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
Вместе с hash.digest() использовалась кодировка UTF-16. Хотя метод hash.digest() позволяет передать аргумент encoding, в результате чего метод возвращает строку, а не Buffer, кодировка UTF-16 (например, ucs или utf16le) не поддерживается.
ERR_HTTP2_FRAME_ERROR
Используется, если при отправке отдельного кадра в сеансе HTTP/2 происходит сбой.
ERR_HTTP2_HEADERS_OBJECT
Используется, когда ожидается объект заголовков HTTP/2.
ERR_HTTP2_HEADER_REQUIRED
Используется, когда в сообщении HTTP/2 отсутствует обязательный заголовок.
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND
Информационные заголовки HTTP/2 можно отправлять только до вызова метода Http2Stream.prototype.respond().
ERR_HTTP2_STREAM_CLOSED
Используется, когда действие выполняется над потоком HTTP/2, который уже был закрыт.
ERR_HTTP_INVALID_CHAR
Используется, когда в сообщении статуса ответа HTTP (фразе причины) обнаружен недопустимый символ.
ERR_IMPORT_ASSERTION_TYPE_FAILED
Утверждение импорта завершилось ошибкой, из-за чего указанный модуль не удалось импортировать.
ERR_IMPORT_ASSERTION_TYPE_MISSING
Отсутствует утверждение импорта, из-за чего указанный модуль не удалось импортировать.
ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED
Эта версия Node.js не поддерживает атрибут импорта.
ERR_INDEX_OUT_OF_RANGE
Указанный индекс выходит за допустимый диапазон (например, имеет отрицательное смещение).
ERR_INVALID_OPT_VALUE
В объект параметров передано недопустимое или неожиданное значение.
ERR_INVALID_OPT_VALUE_ENCODING
Передана недопустимая или неизвестная кодировка файла.
ERR_INVALID_PERFORMANCE_MARK
При использовании API времени производительности (perf_hooks) метка производительности недопустима.
ERR_INVALID_TRANSFER_OBJECT
В postMessage() передан недопустимый объект передачи.
ERR_MANIFEST_ASSERT_INTEGRITY
Предпринималась попытка загрузить ресурс, однако ресурс не соответствовал целостности, заданной в манифесте политики. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_DEPENDENCY_MISSING
Предпринималась попытка загрузить ресурс, однако он не был указан в качестве зависимости для расположения, из которого была предпринята попытка его загрузить. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_INTEGRITY_MISMATCH
Предпринималась попытка загрузить манифест политики, однако в манифесте было несколько записей для ресурса, которые не совпадали друг с другом. Чтобы устранить эту ошибку, обновите записи манифеста так, чтобы они совпадали. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_INVALID_RESOURCE_FIELD
Одно из полей ресурса в манифесте политики содержит недопустимое значение. Чтобы устранить эту ошибку, обновите запись манифеста. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_INVALID_SPECIFIER
Одно из сопоставлений зависимостей ресурса в манифесте политики содержит недопустимое значение. Чтобы устранить эту ошибку, обновите запись манифеста. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_PARSE_POLICY
Предпринималась попытка загрузить манифест политики, однако его не удалось проанализировать. Дополнительные сведения см. в документации по манифестам политик.
ERR_MANIFEST_TDZ
Предпринималась попытка чтения манифеста политики, однако его инициализация еще не была выполнена. Вероятно, это ошибка в Node.js.
ERR_MANIFEST_UNKNOWN_ONERROR
Манифест политики был загружен, однако для поведения «onerror» указано неизвестное значение. Дополнительные сведения см. в документации по манифестам политик.
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
В Node.js v15.0.0 этот код ошибки был заменен на ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST, поскольку он больше не является точным: теперь существуют и другие типы передаваемых объектов.
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST
Объект, который необходимо явно указать в аргументе transferList, содержится в объекте, переданном при вызове postMessage(), но не указан в transferList этого вызова. Обычно это MessagePort.
В версиях Node.js до v15.0.0 здесь использовался код ошибки ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST. Однако набор типов передаваемых объектов был расширен и теперь включает больше типов, чем MessagePort.
ERR_NAPI_CONS_PROTOTYPE_OBJECT
Используется в Node-API, когда Constructor.prototype не является объектом.
ERR_NAPI_TSFN_START_IDLE_LOOP
В основном потоке значения извлекаются из очереди, связанной с потокобезопасной функцией, в цикле ожидания. Эта ошибка указывает на то, что при попытке запустить цикл произошла ошибка.
ERR_NAPI_TSFN_STOP_IDLE_LOOP
Когда в очереди не остается элементов, цикл ожидания необходимо приостановить. Эта ошибка указывает на то, что цикл ожидания не удалось остановить.
ERR_NO_LONGER_SUPPORTED
API Node.js был вызван неподдерживаемым способом, например Buffer.write(string, encoding, offset[, length]).
ERR_OUTOFMEMORY
Используется для общего обозначения того, что операция привела к нехватке памяти.
ERR_PARSE_HISTORY_DATA
Модулю node:repl не удалось проанализировать данные из файла истории REPL.
ERR_SOCKET_CANNOT_SEND
Не удалось отправить данные через сокет.
ERR_STDERR_CLOSE
Предпринималась попытка закрыть поток process.stderr. По замыслу Node.js пользовательский код не может закрывать потоки stdout или stderr.
ERR_STDOUT_CLOSE
Предпринималась попытка закрыть поток process.stdout. По замыслу Node.js пользовательский код не может закрывать потоки stdout или stderr.
ERR_STREAM_READ_NOT_IMPLEMENTED
Используется при попытке использовать поток для чтения, в котором не реализован метод readable._read().
ERR_TAP_LEXER_ERROR
Ошибка, указывающая на сбой в состоянии лексера.
ERR_TAP_PARSER_ERROR
Ошибка, указывающая на сбой в состоянии парсера. Дополнительные сведения о токене, вызвавшем ошибку, доступны через свойство cause.
ERR_TAP_VALIDATION_ERROR
Эта ошибка указывает на неудачную проверку TAP.
ERR_TLS_RENEGOTIATION_FAILED
Используется, если запрос на повторное согласование TLS завершился ошибкой по неспецифической причине.
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
При сериализации обнаружен SharedArrayBuffer, память которого не управляется движком JavaScript или Node.js. Такой SharedArrayBuffer нельзя сериализовать.
Это возможно только тогда, когда собственные дополнения создают SharedArrayBuffer в режиме «externalized» или переводят существующие SharedArrayBuffer в режим externalized.
ERR_UNKNOWN_STDIN_TYPE
Предпринималась попытка запустить процесс Node.js с неизвестным типом файла stdin. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя ее может вызвать и пользовательский код.
ERR_UNKNOWN_STREAM_TYPE
Предпринималась попытка запустить процесс Node.js с неизвестным типом файла stdout или stderr. Эта ошибка обычно указывает на ошибку в самом Node.js, хотя ее может вызвать и пользовательский код.
ERR_V8BREAKITERATOR
Был использован API BreakIterator V8, но полный набор данных ICU не установлен.
ERR_VALUE_OUT_OF_RANGE
Используется, когда указанное значение выходит за допустимый диапазон.
ERR_VM_MODULE_LINKING_ERRORED
Функция компоновщика вернула модуль, компоновка которого завершилась ошибкой.
ERR_VM_MODULE_NOT_LINKED
Перед созданием экземпляра модуль необходимо успешно скомпоновать.
ERR_WORKER_UNSUPPORTED_EXTENSION
Путь к основному скрипту рабочего потока имеет неизвестное расширение файла.
ERR_ZLIB_BINDING_CLOSED
Используется при попытке применить объект zlib после его закрытия.
Коды ошибок OpenSSL
Ошибки срока действия
CERT_NOT_YET_VALID
Срок действия сертификата еще не начался: дата notBefore позже текущего времени.
CERT_HAS_EXPIRED
Срок действия сертификата истек: дата notAfter раньше текущего времени.
CRL_NOT_YET_VALID
Список отзыва сертификатов (CRL) имеет будущую дату выпуска.
CRL_HAS_EXPIRED
Срок действия списка отзыва сертификатов (CRL) истек.
CERT_REVOKED
Сертификат отозван: он находится в списке отзыва сертификатов (CRL).
Ошибки доверия или цепочки сертификатов
UNABLE_TO_GET_ISSUER_CERT
Не удалось найти сертификат издателя для найденного сертификата. Обычно это означает, что список доверенных сертификатов неполон.
UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Издатель сертификата неизвестен. Это происходит, если издатель не включен в список доверенных сертификатов.
DEPTH_ZERO_SELF_SIGNED_CERT
Переданный сертификат является самоподписанным, и такой же сертификат не найден в списке доверенных сертификатов.
SELF_SIGNED_CERT_IN_CHAIN
Издатель сертификата неизвестен. Это происходит, если издатель не включен в список доверенных сертификатов.
CERT_CHAIN_TOO_LONG
Длина цепочки сертификатов превышает максимально допустимую глубину.
UNABLE_TO_GET_CRL
Не удалось найти CRL, на который ссылается сертификат.
UNABLE_TO_VERIFY_LEAF_SIGNATURE
Не удалось проверить подписи: цепочка содержит только один сертификат, который не является самоподписанным.
CERT_UNTRUSTED
Корневой центр сертификации (CA) не помечен как доверенный для указанной цели.
Ошибки базовых расширений
INVALID_CA
Сертификат CA недействителен: либо он не является сертификатом CA, либо его расширения не соответствуют указанной цели.
PATH_LENGTH_EXCEEDED
Превышен параметр pathlength расширения basicConstraints.
Ошибки, связанные с именами
HOSTNAME_MISMATCH
Сертификат не соответствует указанному имени.
Ошибки использования и политики
INVALID_PURPOSE
Переданный сертификат нельзя использовать для указанной цели.
CERT_REJECTED
Корневой CA помечен как отклоняющий указанную цель.
Ошибки форматирования
CERT_SIGNATURE_FAILURE
Подпись сертификата недействительна.
CRL_SIGNATURE_FAILURE
Подпись списка отзыва сертификатов (CRL) недействительна.
ERROR_IN_CERT_NOT_BEFORE_FIELD
Поле notBefore сертификата содержит недопустимое время.
ERROR_IN_CERT_NOT_AFTER_FIELD
Поле notAfter сертификата содержит недопустимое время.
ERROR_IN_CRL_LAST_UPDATE_FIELD
Поле lastUpdate списка CRL содержит недопустимое время.
ERROR_IN_CRL_NEXT_UPDATE_FIELD
Поле nextUpdate списка CRL содержит недопустимое время.
UNABLE_TO_DECRYPT_CERT_SIGNATURE
Не удалось расшифровать подпись сертификата. Это означает, что определить фактическое значение подписи не удалось, а не то, что оно не совпадает с ожидаемым; это имеет значение только для ключей RSA.
UNABLE_TO_DECRYPT_CRL_SIGNATURE
Не удалось расшифровать подпись списка отзыва сертификатов (CRL): это означает, что определить фактическое значение подписи не удалось, а не то, что оно не совпадает с ожидаемым.
UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
Не удалось прочитать открытый ключ в поле SubjectPublicKeyInfo сертификата.
Другие ошибки OpenSSL
OUT_OF_MEM
Произошла ошибка при попытке выделить память. Такого никогда не должно происходить.
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/errors.html