Azure OpenAI: Intermittent HTTP 500 Errors During "High" Concurrency

AbigailIreland-5813 0 Reputation points
2026-09-21T18:44:44.4866667+00:00

Problem description

I am experiencing intermittent but persistent HTTP 500 errors when using my Azure OpenAI resource with the gpt-5.1 model. These errors started around Thu, Sep 17, 2026, and occur primarily under higher concurrency levels, specifically when I have 8 or more concurrent requests. Despite the resource metrics showing only successful responses (HTTP 200), my probe requests often fail with 500 errors, and the Azure metrics do not reflect these failures - the failing requests are not reported at all. I have already implemented retries with backoff and jitter, but the failures continue, and the frequency of errors makes the process unreliable.

Environment

Service: Azure OpenAI; Resource: qadvisor-openai-dev; Region: Global Standard; Model: gpt-5.1.

What I've already tried

I have tested with minimal payloads and production-like payloads, observing failures with both, mostly when there are 8 in-flight requests. I compared probe results with Azure metrics and noted the requests which received 500 responses are not being reported at all. I have confirmed that there are no reported issues in Azure Service Health, and I am testing directly against the endpoint. Despite retries with backoff, the errors persist. Based on the missing metrics, I believe this may be related to the Azure gateway receiving my requests rather than an issue with the OpenAI service, but Azure support removed my ability to continue responding in the support case thread and left me only with the option to create a forum post here.

Current status

I am seeking assistance to identify the root cause of these 500 errors. Additionally, any suggestions on how to get in touch with an actual support human at Azure would be appreciated. I tried calling the Microsoft Customer Support numbers I could find but they all take you to the same system, which tells me their representatives will not be able to assist me with this case and directs me back to the Azure portal.

Azure OpenAI in Foundry Models

1 answer

Sort by: Most helpful
  1. Karnam Venkata Rajeswari 5,340 Reputation points Microsoft External Staff Moderator
    2026-09-21T20:07:35.4433333+00:00

    Hello @AbigailIreland-5813 ,

    Welcome to Microsoft Q&A .Thank you for reaching out to us.

    The behaviour described is consistent with failures occurring before the requests are admitted by the service, which is why the resource metrics show only successful responses while the probes record 500 errors.

    Metrics capture only those requests that the service accepts and processes, so errors that never appear in telemetry usually originate along the path between the calling application and Azure. The concurrency threshold around eight in-flight requests, combined with identical behaviour across minimal and production-like payloads, points in the same direction, since a model-side failure would normally vary with payload shape rather than with the number of open connections.

    Please note that

    1. If apim-request-id or x-ms-request-id is present, the request reached the Azure OpenAI gateway and is traceable in backend telemetry.
    2. If the header is absent, or the body is not the standard Azure OpenAI JSON error format, the 500 was generated locally by the Functions host, an SDK wrapper, a proxy, or a TLS-inspecting agent.

    In a locally hosted Function App, the most common contributors are an unhandled exception, timeout or cancellation inside the function that the local runtime surfaces as HTTP 500; connection pool exhaustion caused by creating a new client instance per request; interference from a corporate proxy, VPN or security agent during simultaneous TLS handshakes; and a short client-side timeout that aborts calls as latency rises under load. Transient service-side 500 and 503 responses are documented and are addressed by retry with exponential backoff, though these would normally be visible in the metrics, so that remains a secondary possibility until the request IDs confirm otherwise.

    Recommended steps, in order:

    1. Capture apim-request-id, x-ms-request-id, full response headers, raw body and exact UTC timestamp for three to five failures. These identifiers are required for any backend trace.
    2. Enable diagnostic settings on the resource (Audit Logs, Request and Response Logs, AllMetrics) to a Log Analytics workspace, then query the failure window.
    3. Under Monitoring, chart Requests split by StatusCode and ModelDeploymentName at one-minute granularity, and cross-check Resource Health for the same period.
    4. Apply the following client adjustments:
      • Reuse a single HTTP or Azure OpenAI client instance across requests.
      • Raise the connection limit.
      • Confirm HTTP/2 is in use.
      • Increase the client timeout to at least 120 seconds during testing.
    5. Reproduce the test in three configurations for comparison: a plain script at eight concurrency from the same machine, the same script from an Azure VM, and the Function App deployed to Azure rather than run locally.
    6. Confirm the deployment has sufficient TPM and RPM headroom, and check whether any 429 responses are being masked by retry logic.
    7. Retain retries with backoff and jitter, and log each retry outcome to separate transient failures from structural ones.

    The following references might be helpful , please check them out

    Please let us know if the response was helpful

     

    Thank you

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.