Virhekoodit
Virhekoodit
Kaikki API-virheet palauttavat yhdenmukaisen JSON-muodon:
{
"error": "Not Found",
"message": "Resume not found",
"statusCode": 404
}HTTP-tilakoodit
| Koodi | Nimi | Kuvaus |
|---|---|---|
200 | OK | Pyynto onnistui |
201 | Created | Resurssi luotu onnistuneesti |
400 | Bad Request | Virheellinen pyynnon runko tai parametrit |
401 | Unauthorized | API-avain puuttuu tai on virheellinen |
402 | Payment Required | Krediitteja ei jaljella. Osta lisaa tai odota kuukausittaista nollausta |
403 | Forbidden | Toiminto ei sallittu (esim. BYOK ilman tilausta) |
404 | Not Found | Resurssia ei ole olemassa |
413 | Payload Too Large | Tiedoston lataus ylittaa 10 Mt rajan |
422 | Unprocessable Entity | Validi JSON mutta semanttisesti virheellinen (esim. tyonkuvaus liian lyhyt) |
429 | Too Many Requests | Pyyntorajoitus ylitetty. Yrita uudelleen Retry-After-otsikon arvon jalkeen |
500 | Internal Server Error | Jokin meni pieleen meidaan paassamme |
Yleiset virhetilanteet
API-avain puuttuu
{
"error": "Unauthorized",
"message": "Missing x-api-key header",
"statusCode": 401
}Korjaus: Lisaa API-avaimesi x-api-key-otsikkoon.
Virheellinen API-avain
{
"error": "Unauthorized",
"message": "Invalid API key",
"statusCode": 401
}Korjaus: Tarkista avaimesi osoitteessa console.laddro.com. Avaimet on saatettu peruuttaa.
Ei krediitteja
{
"error": "Payment Required",
"message": "No credits remaining. Purchase credits at console.laddro.com",
"statusCode": 402
}Korjaus: Osta krediittipaketti tai odota ilmaisen kuukausikiintion nollausta.
BYOK ilman aktiivista tilausta
{
"error": "Forbidden",
"message": "BYOK requires an active recurring Laddro subscription",
"statusCode": 403
}Korjaus: Tilaa osoitteessa laddro.com toistuvalla suunnitelmalla.
Virheellinen tarjoajan avain
{
"error": "Unprocessable Entity",
"message": "API key validation failed for provider 'anthropic': invalid_api_key",
"statusCode": 422
}Korjaus: Tarkista tarjoajan API-avaimesi. API validoi avaimet testikutsulla ennen tallennusta.
Uudelleenyritysstrategia
429- ja 5xx-virheille toteuta eksponentiaalinen 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))
}
}
}