Feilkoder
Feilkoder
Alle API-feil returnerer et konsistent JSON-format:
{ "error": "Not Found", "message": "Resume not found", "statusCode": 404 }HTTP-statuskoder
| Kode | Navn | Beskrivelse |
|---|---|---|
200 | OK | Forespørselen lyktes |
201 | Created | Ressurs opprettet |
400 | Bad Request | Ugyldig forespørselskropp eller parametere |
401 | Unauthorized | Manglende eller ugyldig API-nøkkel |
402 | Payment Required | Ingen kreditter igjen. Kjøp flere eller vent på månedlig tilbakestilling |
403 | Forbidden | Handlingen er ikke tillatt (f.eks. BYOK uten abonnement) |
404 | Not Found | Ressursen finnes ikke |
413 | Payload Too Large | Filopplastingen overskrider grensen på 10 MB |
422 | Unprocessable Entity | Gyldig JSON men semantisk ugyldig (f.eks. for kort jobbeskrivelse) |
429 | Too Many Requests | Hastighetsbegrensning overskredet. Prøv igjen etter Retry-After-headerverdien |
500 | Internal Server Error | Noe gikk galt på vår side |
Vanlige feilscenarier
Manglende API-nøkkel
{ "error": "Unauthorized", "message": "Missing x-api-key header", "statusCode": 401 }Løsning: Legg til API-nøkkelen din i x-api-key-headeren.
Ugyldig API-nøkkel
{ "error": "Unauthorized", "message": "Invalid API key", "statusCode": 401 }Løsning: Sjekk nøkkelen din på console.laddro.com. Nøkkelen kan ha blitt tilbakekalt.
Ingen kreditter
{ "error": "Payment Required", "message": "No credits remaining. Purchase credits at console.laddro.com", "statusCode": 402 }Løsning: Kjøp en kredittpakke eller vent på at den månedlige gratiskvoten tilbakestilles.
BYOK uten aktivt abonnement
{ "error": "Forbidden", "message": "BYOK requires an active recurring Laddro subscription", "statusCode": 403 }Løsning: Abonner på laddro.com med en løpende plan.
Ugyldig leverandørnøkkel
{ "error": "Unprocessable Entity", "message": "API key validation failed for provider 'anthropic': invalid_api_key", "statusCode": 422 }Løsning: Dobbeltsjekk leverandørens API-nøkkel. API-et validerer nøkler med et testkall før de lagres.
Strategi for gjenforsøk
For 429- og 5xx-feil, implementer eksponentiell backoff:
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))
}
}
}