Skip to content

Error Handling

All errors return JSON with a descriptive message.

StatusCodeMeaning
400Bad RequestInvalid JSON body, wrong Content-Type, missing required fields, input too long, or mode not recognized
429Too Many RequestsRate limit exceeded
502Bad GatewayLLM returned a response that couldn’t be parsed as valid JSON
503Service UnavailableAll LLM providers failed or no API keys configured
{
"error": "Human-readable error description",
"fallback": false
}

The fallback field indicates whether the system attempted to use fallback providers before failing.

The request must include Content-Type: application/json.

{
"error": "resumeText is required"
}

Fix: Include the resumeText field in your request body.

{
"error": "resumeText exceeds maximum length of 50,000 characters"
}

Resume text is capped at 50,000 characters and job descriptions at 20,000. If you’re hitting this limit, trim whitespace or reduce content.

{
"error": "rate limit exceeded. try again in 60 seconds."
}

Fix: Wait and retry with exponential backoff.

{
"error": "Failed to parse LLM response as JSON",
"fallback": true
}

This means the AI returned malformed output. The system already tried fallback providers. Usually a transient issue.

Fix: Retry the request. If persistent, the LLM prompt may need adjustment for your specific resume format.

{
"error": "All LLM providers failed",
"fallback": true
}

All configured LLM providers either failed or hit their daily quotas.

Fix: Wait for quota reset (usually midnight UTC) or self-host with your own API keys.