401 is universal
This commit is contained in:
@@ -274,15 +274,10 @@ const handleUpstreamErrors: ProxyResHandlerWithBody = async (
|
|||||||
assertNever(service);
|
assertNever(service);
|
||||||
}
|
}
|
||||||
} else if (statusCode === 401) {
|
} else if (statusCode === 401) {
|
||||||
// OpenAI specific - retry with different key for any 401 error
|
// Universal 401 handling - authentication failed, retry with different key
|
||||||
if (service === "openai") {
|
|
||||||
keyPool.disable(req.key!, "revoked");
|
|
||||||
await reenqueueRequest(req);
|
|
||||||
throw new RetryableError("OpenAI key authentication failed, retrying with different key.");
|
|
||||||
}
|
|
||||||
// Key is invalid or was revoked
|
|
||||||
keyPool.disable(req.key!, "revoked");
|
keyPool.disable(req.key!, "revoked");
|
||||||
errorPayload.proxy_note = `Assigned API key is invalid or revoked, please try again.`;
|
await reenqueueRequest(req);
|
||||||
|
throw new RetryableError(`${service} key authentication failed, retrying with different key.`);
|
||||||
} else if (statusCode === 402) {
|
} else if (statusCode === 402) {
|
||||||
// Deepseek specific - insufficient balance
|
// Deepseek specific - insufficient balance
|
||||||
if (service === "deepseek") {
|
if (service === "deepseek") {
|
||||||
|
|||||||
Reference in New Issue
Block a user