Fix Cloud Code Assist API errors (429/400)

- Enhanced rate limit detection for Cloud Code Assist quota exhaustion
- Added tool call ID sanitization to fix invalid request format errors
- Integrated Cloud Code Assist format error detection into failover system
- Added comprehensive error pattern matching for Cloud Code Assist APIs

Fixes #cloud-code-assist-api-errors
This commit is contained in:
Jefferson Warrior
2026-01-08 18:34:08 -06:00
committed by Peter Steinberger
parent 74485f171b
commit 5843733978
2 changed files with 53 additions and 6 deletions

View File

@@ -61,6 +61,7 @@ import {
ensureSessionHeader,
formatAssistantErrorText,
isAuthAssistantError,
isCloudCodeAssistFormatError,
isContextOverflowError,
isFailoverAssistantError,
isFailoverErrorMessage,
@@ -1523,9 +1524,15 @@ export async function runEmbeddedPiAgent(params: {
const assistantFailoverReason = classifyFailoverReason(
lastAssistant?.errorMessage ?? "",
);
const cloudCodeAssistFormatError = lastAssistant?.errorMessage
? isCloudCodeAssistFormatError(lastAssistant.errorMessage)
: false;
// Treat timeout as potential rate limit (Antigravity hangs on rate limit)
const shouldRotate = (!aborted && failoverFailure) || timedOut;
const shouldRotate =
(!aborted &&
(failoverFailure || cloudCodeAssistFormatError)) ||
timedOut;
if (shouldRotate) {
// Mark current profile for cooldown before rotating
@@ -1546,6 +1553,11 @@ export async function runEmbeddedPiAgent(params: {
`Profile ${lastProfileId} timed out (possible rate limit). Trying next account...`,
);
}
if (cloudCodeAssistFormatError) {
log.warn(
`Profile ${lastProfileId} hit Cloud Code Assist format error. Tool calls will be sanitized on retry.`,
);
}
}
const rotated = await advanceAuthProfile();
if (rotated) {