[nanocore] Internal Gateway transport failures keep no cause on the capability attempt or in the log

Aperta
#207 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
observability

Direzione di ricerca

Start with apps/nanocore/src/internal-agents/gateway-provider.ts, where transport failures are classified after provider handoff. Trace how capability attempts and App logs record failure details, then check existing failure kinds and redaction rules. Done when bounded, redacted causes and available HTTP status are retained in both places, common transport causes use suitable existing kinds, and retries remain unchanged.

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

Descrizione

enhancement

Observed

On a fresh v0.1.0-rc.2 installation, one administration conversation was refused after 1.5 seconds with the public Turn error provider_call_failed and the message Administration could not complete this bounded run.

The App log line was internal_gateway_call_failed with phase transport and failureKind unknown, with no HTTP status. The capability record shows one primary attempt on the configured subscription route, outputBegan false and terminalResult failed.

Later calls on the same logical model, route and provider profile completed, so this was a single transient failure, not a configuration error. The operator still could not tell whether the provider, the network or NanoCore failed, because no cause was kept.

Cause

phase becomes transport after provider handoff in apps/nanocore/src/internal-agents/gateway-provider.ts, and failureKind defaults to unknown when the thrown error has no classified provider failure kind and no HTTP status. Nothing else from the thrown error is retained.

Suggested fix

  • Retain a redacted, bounded cause on the capability attempt and in the log: the error class or code (for example a network error code, an aborted stream, or a provider SDK error name), and the HTTP status when one exists. Never retain request bodies, headers or credentials.
  • Map common transport causes (connection reset, DNS failure, TLS failure, timeout before output) to existing failure kinds where they fit, so that an operator can tell a provider outage from an internal defect.
  • This is diagnosability only. External provider behavior stays accepted as external, and no retry behavior changes.
Lingua principale
TypeScript
Stelle
0
Fork
1
Merge medio
4h 45m
PR unite (30g)
4

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 lingkaix/openkit

Tutte le issue di lingkaix/openkit

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.