What the error says
HTTP status 500, type server_error, with the message:
The server had an error while processing your request. Sorry about that!
Is the OpenAI API down right now?
OpenAI's own status page
OpenAI reports an incident on its status page: ChatGPT Issues.
Impact: minor. Since 2026-11-05 15:25 UTC.
Latest update, 2026-11-05 15:30 UTC: We’re investigating a potential issue for the listed services and checking how it affects users. We’ll share an update when we know more.
Checks passingOur checks of the OpenAI API
As of Nov 5, 2026, 3:42 PM UTC, RealUptime's checks of OpenAI passed in all 10 regions that returned a reading.
Our checks of the OpenAI API pass right now. They send a few small requests, so they cannot see load on the model you call: a 500 can still come from OpenAI while they pass. Compare with OpenAI's own status.
What it means
OpenAI returns 500 when its servers fail while handling a request that was otherwise valid. Single 500s happen at normal times and usually clear on a retry; a run of them across requests is the sign to check OpenAI's status and our reading below.
Is it you or them? Usually OpenAI's: it uses this code for failures or load on its own side.
Common causes
- A transient failure on OpenAI's servers.
- An incident affecting the model or endpoint you call.
- Rarely, a request shape that trips a server bug: if one request fails every time while others pass, change it and report it to OpenAI.
How to fix it
- Retry with exponential backoff, as in the snippet below.
- If the errors continue, compare the time with our reading and OpenAI's status below.
- Fall back to another model, or queue the work, while an incident is open.
- If one request fails every time while everything else passes, contact OpenAI with the request id from the response headers.
Retry with backoff
A retry loop that waits as long as OpenAI asks, else doubles the wait with random jitter so many clients do not retry in step:
// Retry OpenAI 500 errors with backoff and jitter.
const RETRYABLE = new Set([429, 500, 502, 503, 504, 529]);
async function withRetry(call: () => Promise<Response>, maxAttempts = 5): Promise<Response> {
for (let attempt = 1; ; attempt++) {
const response = await call();
if (!RETRYABLE.has(response.status) || attempt === maxAttempts) return response;
// Wait as long as the provider asks, else 1s, 2s, 4s... with full jitter.
const retryAfter = Number(response.headers.get("retry-after"));
const delayMs = retryAfter > 0 ? retryAfter * 1000 : Math.random() * 1000 * 2 ** (attempt - 1);
await new Promise((resolve) => setTimeout(resolve, delayMs));
}
}See these errors grouped, and know when the API is down
RealUptime Errors takes errors from any Sentry SDK. Tag each failed call with the provider, status and model, and errors from the same code group into one issue with its count and first and last time seen, so a run of 500s shows up as one rising issue instead of a flood:
import * as Sentry from "@sentry/node";
// The DSN from your RealUptime Errors project settings.
Sentry.init({ dsn: process.env.REALUPTIME_ERRORS_DSN });
if (!response.ok) {
Sentry.captureException(new Error(`OpenAI ${response.status}`), {
tags: { ai_provider: "openai", ai_status: response.status, ai_model: model },
fingerprint: ["openai", String(response.status)],
});
}RealUptime Monitor can check an API endpoint from several regions every minute and alert you when it fails, and the OpenAI outage page can alert you when OpenAI reports an incident. Both are free to start.
Related errors
- OpenAI error 503: The engine is currently overloaded
- OpenAI error 429: Rate limit reached
- OpenAI error 429: You exceeded your current quota
- Every AI API error code we cover
OpenAI's own reference: platform.openai.com/docs/guides/error-codes. How our checks work: methodology.