Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Anthropic: mid-stream connection drops are retried immediately and without notice

Chiusa Adatta ai principianti
#173 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, node.js, typescript
Ambito
backend, testing

Direzione di ricerca

Leggi src/main/llm/anthropic.ts nelle vicinanze di runTurn e retryDecision, poi esamina la gestione degli errori di lib/BetaMessageStream.js. Aggiungi test con un server simulato per una chiusura del socket a metà dello stream e per JSON dello strumento non valido; il lavoro è completato quando gli errori del socket usano il percorso di retry visibile, mentre il JSON dello strumento non valido mantiene il suo comportamento di retry limitato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug priority: medium severity: medium

Found in the 2026-10-07 code review (traced through @anthropic-ai/sdk 0.129.0; not run).

Problem

runTurn (src/main/llm/anthropic.ts:202-211) is meant to retry only when tool input JSON can't be parsed. But BetaMessageStream.#handleError (lib/BetaMessageStream.js:40-58) wraps every non-Anthropic error, including a socket closing mid-stream (TypeError: terminated, cause UND_ERR_SOCKET), in a plain AnthropicError, which is not an APIError. So connection drops take the JSON-retry branch: they are re-sent at once, up to twice, with only onRestart. There is no notice and no backoff.

Impact

This breaks the AGENTS.md rule that every retry is shown in the chat (the agent loop retries visibly, with backoff). An overloaded or flaky connection is hit again immediately.

Fix

const badToolJson =
  error instanceof Anthropic.AnthropicError && /Unable to parse tool parameter JSON/.test(error.message);
if (!badToolJson || request.signal.aborted || jsonRetries++ >= MAX_JSON_RETRIES) throw error;

retryDecision already recognizes UND_ERR_SOCKET through cause. Add tests with a mock server that closes the socket mid-stream, and one that sends invalid tool JSON.

Lingua principale
TypeScript
Stelle
2
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PierrunoYT/patch

Tutte le issue di PierrunoYT/patch

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.