# Pydantic AI v2.65.0 adds WebSocket transport and a conversation store

published: 2026-11-03T02:05:34.959Z
topic: frameworks
source: https://github.com/pydantic/pydantic-ai/releases/tag/v2.65.0
url: https://aiagentnews.io/stories/pydantic-ai-v2-65-0-adds-websocket-transport-and-a-conversation-store

Pydantic AI released v2.65.0, which adds WebSocket transport to OpenAI Responses and a ConversationStore that keeps conversations as messages stored once. The release also changes how model refusals, quota errors and Temporal retries are handled.

The release adds a WebSocket transport to OpenAI Responses and a ConversationStore that keeps a conversation as a log of messages stored once. Conversation.revision is added to catch conflicting saves. ModelFallback now moves to the next model when a model refuses, and ContentFilterError in fallback_on can match refusals.

Several compatibility notes change error behavior. Z.ai balance and plan-limit 429 responses now raise ModelQuotaExceededError instead of ModelRateLimitError. Temporal no longer retries model errors that cannot succeed on retry by default, controlled through non_retryable_model_errors. Importing a name removed in V2, such as OpenAIModel or MCPServerStdio, now names its replacement.

Other changes cover '12h' prompt cache retention on the OpenAI Responses API for GPT-5.6 and later, a server deadline of at least 20 minutes for Google requests, and a Daytona dependency that now requires daytona>=0.226.1. Bug fixes address Playwright browser cleanup and tool parameter docstrings.

## Why it matters if you build agents

Code that catches ModelRateLimitError for Z.ai quota responses will need to catch ModelQuotaExceededError instead. Temporal workflows that relied on retrying model errors should check the new non_retryable_model_errors setting. Agents using ModelFallback can now move past a refusal to the next model rather than stopping.
