Errors
OpenAI-Format Errors
{
"error": {
"message": "model field is required",
"type": "invalid_request_error",
"code": "validation_invalid_request"
}
}
Anthropic-Format Errors
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "max_tokens is required"
}
}
Error Code Reference
| HTTP | Code | Meaning | Retry? |
|------|------|---------|--------|
| 400 | validation_invalid_request | Bad request body | No |
| 401 | auth_missing_key | No API key | No |
| 401 | auth_invalid_key | Invalid API key | No |
| 429 | rate_limit_exceeded | Too many requests | Yes, after Retry-After |
| 502 | provider_upstream_error | Provider unavailable | Yes |
| 503 | no_binding_available | No provider routed | Yes |
SDK Error Handling
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gateway.vibecc.dev/v1",
apiKey: process.env.OPENAI_API_KEY,
});
try {
const response = await client.chat.completions.create({ /* ... */ });
} catch (err) {
if (err instanceof OpenAI.APIError) {
console.error(err.status, err.message);
if (err.status === 429) {
const retryAfter = err.headers["retry-after"];
// wait retryAfter seconds then retry
}
}
}