Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

node:internal/inspector/network_http: `TypeError: Missing dataLength` in event when response uses `setEncoding()`

Ouverte Adaptée aux débutants
#66,551 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@lazerg y travaille déjà.

Depuis le 6/10/2026.

  • #66552 par @lazerg — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, node.js
Domaine
devtools

Piste de recherche

Commencez dans lib/internal/inspector/network_http.js et suivez le listener de données qui envoie les fragments de réponse à l’inspecteur. Reproduisez le problème avec un processus connecté à l’inspecteur qui effectue une https.request et appelle response.setEncoding('utf8') ; le travail est terminé lorsque la requête aboutit sans l’erreur Missing dataLength ni réponse interrompue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Node.js version: 24.21.0 (as bundled in Electron 43.7.3 / VS Code 1.140.0)
Platform: macOS arm64 (likely affects all platforms)

Description

When the V8 inspector is attached and an IncomingMessage response has had setEncoding() called on it, the inspector's data listener in lib/internal/inspector/network_http.js throws TypeError: Missing dataLength in event. This throw propagates through EventEmitter.emit uncaug and causes Node's stream machinery to call destroy(err) on the socket. The caller receives reason: aborted with no indication of the real cause.

Root cause

network_http.js passes chunk.byteLength as dataLength to the C++ NetworkAgent::dataReceived handler. When response.setEncoding('utf8') has been called, Node emits string chunks instead of Buffer
chunks — strings have .length but not .byteLength, so chunk.byteLength is undefined. The C++ ObjectGetInt validation fails and throws.

Suggested fix

// lib/internal/inspector/network_http.js
dataLength: typeof chunk === 'string' ? Buffer.byteLength(chunk) : chunk.byteLength,

Reproduction

Attach the V8 inspector (e.g. VS Code F5 debugger) to a Node process that makes an https.request call and calls response.setEncoding('utf8') in the response handler. The request will abort with reason: aborted instead of completing successfully. The same code works without the debugger attached.

Example
const data = [];
response.setEncoding('utf8')
response.on('data', function (chunk) {
  data.push(chunk);
});
response.on('end', function () {
  resolve(data.join(''));
});
Langage dominant
JavaScript
Étoiles
122k
Forks
39k
Merge moyen
3 j 22 h
PR mergées (30 j)
245

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de nodejs/node

Toutes les issues de nodejs/node

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.