diff --git a/src/proxy/middleware/response/index.ts b/src/proxy/middleware/response/index.ts index 0b5823c..627c5e8 100644 --- a/src/proxy/middleware/response/index.ts +++ b/src/proxy/middleware/response/index.ts @@ -401,13 +401,15 @@ const handleUpstreamErrors: ProxyResHandlerWithBody = async ( } else if (statusCode === 503) { switch (service) { case "aws": - if ( - errorType === "ServiceUnavailableException" && - errorPayload.error?.message?.match(/too many connections/i) - ) { - errorPayload.proxy_note = `The requested AWS Bedrock model is overloaded. Try again in a few minutes, or try another model.`; - } - break; + // Re-enqueue on any 503 from AWS Bedrock + req.log.warn( + { key: req.key?.hash, errorType, errorPayload }, + `AWS Bedrock service unavailable (503). Re-enqueueing request.` + ); + await reenqueueRequest(req); + throw new RetryableError( + "AWS Bedrock service unavailable (503), re-enqueued request." + ); default: errorPayload.proxy_note = `Upstream service unavailable. Try again later.`; break;