Streaming & cancellation
Understand what each connection owns before retrying or stopping work.
Native inference streams
Chat, Responses and Messages have different event contracts. Use the matching official SDK helper; do not parse one as another. Messages is buffered until authoritative usage arrives.
Browser event readers
Disconnecting from a first-party conversation event reader does not cancel its durable run. Reconnect to the same run with its event cursor; deduplicate sequence numbers instead of creating another request.
Cancellation is a request
Native client abort requests best-effort cancellation. Native requests have a 120-second deadline; timeout returns a native error, not a custom 202 job receipt. Neither abort nor timeout proves upstream computation stopped.
Uncertain usage
Unknown measured usage retains a conservative reservation. The service does not return invented zero-token accounting. Check the operation state before deciding to retry.