An Azure service that provides access to OpenAI’s GPT-3 models with enterprise capabilities.
request ID ac71a605-9b90-4372-a9ff-eb316f9a8132
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
timestamp:"2026-10-20T11:39:16.889353"
message:"Response payload is not completed: <TransferEncodingError: 400, message='Not enough data to satisfy transfer length header.'>"
x-client-request-id:"11fc79db-5f36-46a7-bd86-283ca45e81d7"
model:"gpt-6.1-sol"
path:"-"
error_type:"ReadError"
timestamp:"2026-10-20T11:31:20.983292"
message:"litellm.MidStreamFallbackError: litellm.InternalServerError: InternalServerError: OpenAIException - ping timeout Original exception: InternalServerError: litellm.InternalServerError: InternalServerError: OpenAIException - ping timeout"
x-client-request-id:"bf103aa0-427b-4605-bfab-2c9be3ce3850"
model:"gpt-6.1-sol"
path:"/responses"
error_type:"MidStreamFallbackError"
timestamp:"2026-10-20T11:51:29.583654"
message:"litellm.Timeout: Timeout Error: OpenAIException - { "error": { "code": "Timeout", "message": "The operation was timeout." } }"
x-client-request-id:"4106e678-5a4f-4213-be8d-0545bb66e4e5"
model:"gpt-6.1-sol"
path:"-"
error_type:"Timeout"
timestamp:"2026-10-20T10:35:06.174348"
message:"litellm.MidStreamFallbackError: litellm.InternalServerError: OpenAIException - The server had an error processing your request. Sorry about that! You can retry your request, or contact us through an Azure support request at: https://go.microsoft.com/fwlink/?linkid=2213926 if you keep seeing this error. (Please include the request ID ac71a605-9b90-4372-a9ff-eb316f9a8132 in your email.) Original exception: InternalServerError: litellm.InternalServerError: OpenAIException - The server had an error processing your request. Sorry about that! You can retry your request, or contact us through an Azure support request at: https://go.microsoft.com/fwlink/?linkid=2213926 if you keep seeing this error. (Please include the request ID ac71a605-9b90-4372-a9ff-eb316f9a8132 in your email.)"
x-client-request-id:"9e28bb83-f642-4f9f-837c-4d3383cd1ae3"
model:"gpt-6.1-sol"
path:"/responses"
error_type:"MidStreamFallbackError"
An Azure service that provides access to OpenAI’s GPT-3 models with enterprise capabilities.
request ID ac71a605-9b90-4372-a9ff-eb316f9a8132
AI answer
Retry the entire /responses request with exponential backoff and jitter whenever the stream times out, is truncated, or emits an error event; never treat the partial stream as a completed response.
Azure Responses streaming can begin with HTTP 200 and later fail through an in-stream error event. Microsoft explicitly recommends stopping or restarting the stream in that case.^1^ The errors shown are therefore retryable failures, not ordinary HTTP 400 request-validation errors.
Use a new request for every attempt and discard any partial output from the failed attempt. Microsoft’s Python SDK already retries connection errors, timeouts, HTTP 408/409/429, and 5xx responses twice; max_retries changes that behavior.^2^
import os, random, time
from openai import OpenAI
client = OpenAI(
base_url=os.environ["AZURE_OPENAI_ENDPOINT"].rstrip("/") + "/openai/v1/",
api_key=os.environ["AZURE_OPENAI_API_KEY"],
timeout=180.0,
max_retries=0, # outer loop controls retries
)
for attempt in range(4):
try:
response = client.responses.create(
model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
input="Your prompt",
)
print(response.output_text)
break
except Exception:
if attempt == 3:
raise
time.sleep(min(2 ** attempt + random.random(), 15))
For streaming, wrap creation and complete consumption of the iterator in the retry block. Buffer output per attempt and publish it only after receiving the normal terminal/completion event. This avoids duplicated or incomplete output when a retry starts.
Do not stack aggressive retries in both LiteLLM and the application. Choose one controlling layer, cap the attempts, and add jitter to prevent synchronized retry bursts.
The messages identify failures from different layers:
TransferEncodingError: Not enough data to satisfy transfer length header means the HTTP body ended before its declared transfer length was received.MidStreamFallbackError means failure occurred after streaming had started.ping timeout and litellm.Timeout indicate transport or request-lifetime timeouts.No published evidence establishes one specific October 20, 2026 Azure incident for this exact combination. Run these tests with the same prompt and deployment:
stream=false.stream=false, bypassing LiteLLM.Interpret the result:
This separation matters because LiteLLM documents provider-side and gateway-side failures independently.^3^ LiteLLM also has related stream-handling reports involving truncated upstream bodies and incomplete Azure/OpenAI streams, although neither proves this exact Azure incident.^4^^5^
1.105.0, verify whether GZipBufferedResponseMiddleware is involved. A reported regression in that version delays streamed response headers until the first chunk or keepalive ping.^6^Azure classifies 500/503 responses as transient service or backend-overload errors and recommends exponential backoff. If they persist beyond a few minutes, check Azure Service Health and open a support request.^7^
Include:
/responses, streaming setting, and timeout valuesx-client-request-id values shown aboveA temporary deployment in another supported region or a fallback deployment can keep the workload running while the affected path is investigated. Do not send API keys, prompts containing sensitive data, or tenant identifiers in a public Q&A post.
References