Skip to content

openrouter

Stream errors surfaced, keep-alives skipped, cancellations that stop billing.

Updated View as Markdown

OpenRouter discipline: stream errors surfaced, keep-alives skipped, request lifetimes reviewed, retry policy checked, and deliberate model pins identified.

Severity Check Catches
warning midstream-error-ignored A streamed response consumed without checking for mid-stream errors
warning sse-comment-parse-crash A hand-rolled SSE reader that feeds keep-alive comments to JSON.parse
info missing-abort-signal A proven native or supported client request with no established caller cancellation signal
info retry-after-ignored A response-dependent raw retry loop with no corresponding Retry-After consultation
info hardcoded-dated-model-slug A concrete version-looking model pin selected in a supported request

Blind spots (the short version)

  • Calls, aliases, bounded templates, ordered options and property paths are resolved structurally; formatting and line wrapping do not change the answer.
  • Stream checks cover supported chat-completion reader transformations in one file. Cross-module handlers and custom parsers are not executed.
  • Mutation, opaque transfers, unresolved choices, callbacks and conditional header consultation narrow the affected check. SDK-managed retry behavior is outside the raw retry claim.
  • Reading Retry-After does not prove correct waiting, and signal presence does not prove that a caller aborts or that every provider stops billing.
  • Cost/token accounting is deliberately not checked. Default .mts, .cts, .cjs, generated and test exclusions remain.

The full list prints in every report this doctor appears in.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close