Veakoodid
Veakoodid
Kõik API vead tagastavad järjekindla JSON-vormingu:
{ "error": "Not Found", "message": "Resume not found", "statusCode": 404 }HTTP staatuskoodid
| Kood | Nimi | Kirjeldus |
|---|---|---|
200 | OK | Päring õnnestus |
201 | Created | Ressurss edukalt loodud |
400 | Bad Request | Vigane päringu keha või parameetrid |
401 | Unauthorized | Puuduv või kehtetu API-võti |
402 | Payment Required | Krediite pole alles. Osta juurde või oota igakuist lähtestamist |
403 | Forbidden | Toiming pole lubatud (nt BYOK ilma tellimuseta) |
404 | Not Found | Ressurssi ei eksisteeri |
413 | Payload Too Large | Faili üleslaadimine ületab 10 MB piirmäära |
422 | Unprocessable Entity | Kehtiv JSON, kuid semantiliselt vigane (nt töökirjeldus liiga lühike) |
429 | Too Many Requests | Kiirusepiirang ületatud. Proovi uuesti pärast Retry-After päise väärtust |
500 | Internal Server Error | Midagi läks valesti meie poolel |
Levinud veastsenaariumid
Puuduv API-võti
{ "error": "Unauthorized", "message": "Missing x-api-key header", "statusCode": 401 }Lahendus: Lisa oma API-võti x-api-key päisesse.
Kehtetu API-võti
{ "error": "Unauthorized", "message": "Invalid API key", "statusCode": 401 }Lahendus: Kontrolli oma võtit aadressil console.laddro.com. Võti võib olla tühistatud.
Krediidid otsas
{ "error": "Payment Required", "message": "No credits remaining. Purchase credits at console.laddro.com", "statusCode": 402 }Lahendus: Osta krediidipakk või oota igakuise tasuta kvoodi lähtestumist.
BYOK ilma aktiivse tellimuseta
{ "error": "Forbidden", "message": "BYOK requires an active recurring Laddro subscription", "statusCode": 403 }Lahendus: Telli aadressilt laddro.com jooksev plaan.
Kehtetu pakkuja võti
{ "error": "Unprocessable Entity", "message": "API key validation failed for provider 'anthropic': invalid_api_key", "statusCode": 422 }Lahendus: Kontrolli teenusepakkuja API-võtit. API valideerib võtmeid testkutsega enne salvestamist.
Uuestiproovimise strateegia
429 ja 5xx vigade korral rakenda eksponentsiaalset tagasitõmbumist:
async function withRetry(fn: () => Promise<Response>, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fn()
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get('Retry-After') || '1')
await new Promise(r => setTimeout(r, retryAfter * 1000))
continue
}
return response
} catch (error) {
if (i === maxRetries - 1) throw error
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000))
}
}
}