Laddro DocsLaddro Docs

Virhekoodit

Virhekoodit

Kaikki API-virheet palauttavat yhdenmukaisen JSON-muodon:

{
  "error": "Not Found",
  "message": "Resume not found",
  "statusCode": 404
}

HTTP-tilakoodit

KoodiNimiKuvaus
200OKPyynto onnistui
201CreatedResurssi luotu onnistuneesti
400Bad RequestVirheellinen pyynnon runko tai parametrit
401UnauthorizedAPI-avain puuttuu tai on virheellinen
402Payment RequiredKrediitteja ei jaljella. Osta lisaa tai odota kuukausittaista nollausta
403ForbiddenToiminto ei sallittu (esim. BYOK ilman tilausta)
404Not FoundResurssia ei ole olemassa
413Payload Too LargeTiedoston lataus ylittaa 10 Mt rajan
422Unprocessable EntityValidi JSON mutta semanttisesti virheellinen (esim. tyonkuvaus liian lyhyt)
429Too Many RequestsPyyntorajoitus ylitetty. Yrita uudelleen Retry-After-otsikon arvon jalkeen
500Internal Server ErrorJokin 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))
    }
  }
}

On this page