1.0.0b6 (2026-05-21)
Features Added
- Error source classification headers: All HTTP error responses now include
x-platform-error-sourcewith a value ofuser,platform, orupstreamto indicate which component caused the error. Client validation errors (400/404) are classified asuser, Foundry storage infrastructure errors (transport failures, 5xx) asplatform, and developer handler exceptions asupstream. Platform errors additionally includex-platform-error-detailwith truncated exception details (max 2048 characters) for diagnostics. Matches the container image specification §8 error source classification.
Breaking Changes
- Removed the automatic
invoke_agentserver span that was created on each response creation request. Trace context propagation is now handled by the coreTraceContextMiddleware, and user-created spans inside handlers are correctly parented without framework-generated spans. - Removed
_safe_set_attrs,_wrap_streaming_response, and_classify_error_codeinternal helpers (no longer needed without framework-level span management). - Removed OTel error tagging attributes (
azure.ai.agentserver.responses.error.code,azure.ai.agentserver.responses.error.message) that were set on the framework span.
Bugs Fixed
- Removed
ContentDecodePolicyfrom theFoundryStorageProviderHTTP pipeline. The policy eagerly decoded every response body as JSON and crashed withUnicodeDecodeErrorwhen the storage backend (or an intermediary gateway/load-balancer) returned a non-UTF-8 body — for example a gzip-compressed payload, an HTML error page, or a transport-corrupted response. The crash propagated up before our error-classification code could see the response, masking the underlying status with a generic decode error. Our serializers and error-extraction helpers already callhttp_resp.text()lazily with defensive error handling, so the eager decode policy was never needed.
Other Changes
- Platform header name constants (e.g.
x-platform-error-source,x-platform-error-detail) are now imported fromazure-ai-agentserver-core(_platform_headersmodule). Error source classification helpers remain internal to this package. - Simplified request handling: baggage entries (
response_id,conversation_id,streaming,x-request-id) are still set on each request, but span creation and lifecycle management are left to downstream frameworks.