ruvnet/ruflo · error · LLMProviderError
ANTHROPIC_${response.status}
ANTHROPIC_${response.status}
Error message
${message} What it means
handleErrorResponse mapped an Anthropic HTTP 429 response to a RateLimitError. The account or model is rate-limited; the upstream message (or raw body when unparseable) is preserved and can be retried after backoff.
Source
Thrown at v3/@claude-flow/providers/src/anthropic-provider.ts:449
private async handleErrorResponse(response: Response): Promise<never> {
const errorText = await response.text();
let errorData: { error?: { message?: string } };
try {
errorData = JSON.parse(errorText);
} catch {
errorData = { error: { message: errorText } };
}
const message = errorData.error?.message || 'Unknown error';
switch (response.status) {
case 401:
throw new AuthenticationError(message, 'anthropic', errorData);
case 429:
throw new RateLimitError(message, 'anthropic', undefined, errorData);
default:
throw new LLMProviderError(
message,
`ANTHROPIC_${response.status}`,
'anthropic',
response.status,
response.status >= 500,
errorData
);
}
}
}
View on GitHub (pinned to fa13ee4ad6)
Solutions
- Check network connectivity and endpoint reachability.
- Log the underlying message to distinguish network errors from API errors.
- Retry idempotent requests after transient failures.
Defensive patterns
Strategy: retry
When it happens
Trigger: The Anthropic provider wraps a network or parsing failure with the underlying message.
Common situations: Network failure, timeout, or an unexpected response body from the API endpoint.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/db8c2907ae7c1a5d.
Report an issue: GitHub.