confirmed Issue
Fixed in: not specified
A stream that ends cleanly before the provider's terminal event finishes with ModelResponse.state 'complete' and finish_reason None, although the docs define 'incomplete' as a streamed response stopped before completion. Responses marks the response incomplete, but _ContinuationStreamedResponse.get() replaces it with complete once iteration ends; the Anthropic and Google adapters never set incomplete. The Chat Completions case is #6610 (documented-behavior). pydantic-ai's triage bot reproduced all three adapters and labelled the issue p:2-high and needs-maintainer-discussion (2026-10-25): the open question is whether a stream that ends before the provider's terminal event should report state 'incomplete'.