{"record":{"id":"b59dfd2731948e88","repo":"denoland/deno","slug":"err-invalid-arg-value-b59dfd","errorCode":"ERR_INVALID_ARG_VALUE","errorMessage":"The property 'options.encoding' is invalid. Received ${inspected}","messagePattern":"The property 'options\\.encoding' is invalid\\. Received (.+?)","errorType":"error_code","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"ext/node/polyfills/internal/webstreams/adapters.js","lineNumber":81,"sourceCode":") {\n  if (!isReadableStream(readableStream)) {\n    throw new ERR_INVALID_ARG_TYPE(\n      \"readableStream\",\n      \"ReadableStream\",\n      readableStream,\n    );\n  }\n\n  validateObject(options, \"options\");\n  const {\n    highWaterMark,\n    encoding,\n    objectMode = false,\n    signal,\n  } = options;\n\n  if (encoding !== undefined && !Buffer.isEncoding(encoding)) {\n    throw new ERR_INVALID_ARG_VALUE(encoding, \"options.encoding\");\n  }\n  validateBoolean(objectMode, \"options.objectMode\");\n\n  const reader = readableStream.getReader();\n  let closed = false;\n\n  const readable = new (lazyStream().Readable)({\n    objectMode,\n    highWaterMark,\n    encoding,\n    signal,\n\n    read() {\n      reader.read().then(\n        (chunk) => {\n          if (chunk.done) {\n            readable.push(null);\n          } else {","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/denoland/deno/blob/9ad36f7a2cce60488e6ec52283efb32efddaf93a/ext/node/polyfills/internal/webstreams/adapters.js#L63-L99","documentation":"The options bag of the web-to-Node readable adapter (Readable.fromWeb) accepts an encoding used to decode byte chunks into strings; it must be a name Buffer.isEncoding() recognizes. Any other value throws ERR_INVALID_ARG_VALUE for options.encoding before reading starts.","triggerScenarios":"Readable.fromWeb(rs, {encoding: 'utf-16'}) (canonical is 'utf16le'); {encoding: 'TEXT'}; an encoding taken from an HTTP charset header — many IANA names are not Node Buffer encodings.","commonSituations":"charset=iso-8859-1 vs the Node name 'latin1'; user-configurable output encoding; defaults copied from ICU-based libraries; 'utf-8' works but variant spellings do not.","solutions":["Use canonical names: 'utf8', 'utf16le', 'latin1', 'ascii', 'base64', 'hex'","Map charsets to Node names (iso-8859-1 → latin1, unicode → utf8) before passing","Leave encoding undefined when raw Buffer chunks are wanted"],"exampleFix":"// before\nconst r = Readable.fromWeb(rs, { encoding: 'utf-16' }); // throws\n\n// after\nconst r = Readable.fromWeb(rs, { encoding: 'utf16le' });","handlingStrategy":"validation","validationCode":"if (encoding !== undefined && !Buffer.isEncoding(encoding)) {\n  throw new Error(`Invalid encoding: ${encoding}`);\n}\nconst r = Readable.fromWeb(rs, { encoding });","typeGuard":"const isValidEncoding = (e) => e === undefined || (typeof e === 'string' && Buffer.isEncoding(e));","tryCatchPattern":null,"preventionTips":["Map HTTP charsets to Node encoding names before use","Validate externally sourced encodings once at startup","Prefer 'utf8' unless decoding legacy formats"],"tags":["web-streams","encoding","stream-adapters","node-compat"],"backgroundTag":"invalid-encoding","analyzedSha":"9ad36f7a2cce60488e6ec52283efb32efddaf93a","analyzedAt":"2026-08-20T13:07:44.778Z","schemaVersion":2},"datasetVersion":"2026-08-31T09:17:48.483Z"}