Documentation Index
Fetch the complete documentation index at: https://nova.dweet.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Error response format
Errors follow RFC 7807:| Field | Description |
|---|---|
type | RFC 7807 URI identifying the error category |
code | Machine-readable error code for programmatic matching |
status | HTTP status code |
message | Human-readable error description |
retryable | Whether retrying may succeed |
traceId | Trace ID for debugging (also in X-Trace-Id header) |
details | Field-level validation errors (when present) |
When to retry
retryable: true: retry with exponential backoff429 RATE_LIMITED: wait forRetry-Afterheader value- Other
4xx: fix the request first
Common error codes
| Code | Status | Action |
|---|---|---|
UNAUTHORIZED | 401 | Check API key and Authorization header |
VALIDATION_ERROR | 400 | Fix the fields listed in details |
ANSWER_MISMATCH | 400 | Answers must match the question set |
CRITERIA_NOT_FOUND | 404 | Generate criteria for the job first |
SCORING_JOB_NOT_FOUND | 404 | Verify scoringJobId exists for this tenant |
RESUME_FETCH_FAILED | 422 | Check resume URL is accessible and not expired |
RESUME_TOO_LARGE | 422 | File must be under 50 MB |
RESUME_ENCRYPTED | 422 | Remove password protection |
RESUME_CORRUPTED | 422 | Submit a corrected, complete resume file |
RESUME_PARSE_FAILED | 422 | Confirm the file opens normally and contact support if it does |
RATE_LIMITED | 429 | Wait for Retry-After and retry |
Batch intake rejections
Batch scoring separates a valid batch envelope from invalid individual resume inputs. If at least one application can be accepted,POST /v1/jobs/{jobId}/scoring-batches returns 202 Accepted with acceptedApplications and rejectedApplications. Rejected applications do not create scoring jobs and do not emit score.failed webhooks.
If every application is rejected before queueing, the endpoint returns 422 VALIDATION_ERROR. The details array contains one item per rejected application with the concrete public code, such as RESUME_CORRUPTED or RESUME_FETCH_FAILED.
Idempotency
These errors apply to routes that support the HTTPIdempotency-Key replay layer. Scoring submissions use built-in scoring idempotency instead.
That means you won’t see IDEMPOTENCY_* errors on scoring submission or scoring batch endpoints just because you sent Idempotency-Key. Nova ignores the header there.
| Code | Status | What to do |
|---|---|---|
IDEMPOTENCY_REQUEST_IN_PROGRESS | 409 | Wait briefly and retry using the same Idempotency-Key |
IDEMPOTENCY_KEY_ALREADY_USED | 422 | Do not retry. Generate a new key and retry only after you have fixed the request parameters |
If a mutation reaches endpoint logic and returns a cacheable
4xx, retrying with the same Idempotency-Key replays that same error. If the request fails before endpoint logic runs, for example because a required header is missing, the Content-Type is invalid, the JSON is malformed, schema or param validation fails, or rate limiting blocks the request, the response is not cached.Error handling with the SDK
The TypeScript SDK retries automatically on429 and 5xx errors with exponential backoff and Retry-After support. You only need to handle non-retryable errors:
Manual retry logic (cURL / raw HTTP)
If you aren’t using the SDK, implement retries yourself:Debugging
When contacting support, include thetraceId, your timestamp and endpoint, and the HTTP status code.