fetch: errors from Node's bundled fetch have an empty stack
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
- Ambito
- backend
Direzione di ricerca
Apri index-fetch.js e analizza il ramo di fallback usato quando __filename non è definito, insieme alla chiamata a Error.captureStackTrace descritta nell’issue. Rimuovi l’opzione del costruttore affinché V8 possa acquisire i frame dello stack disponibili, quindi verifica che gli errori del fetch integrato in Node includano i frame del chiamante, come mostrato nella riproduzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug Description
Every error Node's built-in fetch rejects with has an empty stack: just the Name: message line, no frames. This started with #4812.
The cause is the fallback branch in index-fetch.js, taken when __filename is undefined, as in Node's bundled copy:
} else if (err && typeof err === 'object') {
Error.captureStackTrace(err, module.exports.fetch)
}
This runs inside the .catch callback, where fetch is no longer on the stack. When V8 can't find the constructorOpt frame it records no frames, so the stack ends up empty. Dropping the second argument fixes it.
Reproducible By
// repro.mjs: uses Node's global fetch (undici from npm takes the other branch)
async function caller (signal) {
await fetch('http://localhost:1', { signal })
}
await caller().catch(err => console.log(err.stack))
await caller(AbortSignal.abort(new Error('my reason'))).catch(err => console.log(err.stack))
Expected Behavior
Node 24.13.1 (undici 7.18.2):
TypeError: fetch failed
at node:internal/deps/undici/undici:16416:13
at async caller (file:///…/repro.mjs:2:3)
at async file:///…/repro.mjs:4:1
Error: my reason
at node:internal/deps/undici/undici:16416:13
at async caller (file:///…/repro.mjs:2:3)
at async file:///…/repro.mjs:5:1
Logs & Screenshots
Node 24.22.1 (undici 7.30.1) and 26.13.0 (undici 8.12.2):
TypeError: fetch failed
Error: my reason
Environment
macOS and Alpine Linux, both arm64. Affected: Node 24.22.1 and 26.13.0. The branch is unchanged on main.
- Lingua principale
- JavaScript
- Stelle
- 7.7k
- Fork
- 966
- Merge medio
- 3g 8h
- PR unite (30g)
- 56
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nodejs/undici
-
setCookie turns finite out-of-range expires values into a Unix-epoch expiryForse già presa @vtxe02023274 l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
ProxyAgent: unsupported proxy scheme (e.g. socks5h:) reports "URL must start with http: or https:" even though socks5:/socks: are supportedForse già presa @petrroll l’ha presa 11 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Un-experimental DecompressInterceptorForse già presa @mcollina l’ha presa 17 giorni fa. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nodejs/undici
Issue simili
-
good first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
modrollstudio/Modroll-Studio-Website#80 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
-
area: panel enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
GabrielGirardi/ledge#7 ·
-
0. Needs triage 35-feedback bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
A-linter
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
oxc-project/oxc#28783 ·
I maintainer di solito rispondono entro 1 giorno