> ## 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 Code Reference

> Complete reference of public error codes returned by the Nova Embed API.

{/* Run: pnpm generate:openapi (from apps/embed/) */}

Every error response includes a `code` field with one of the values below. Use this field for programmatic error matching.

The RFC 7807 `type` URI in each error response links directly to the corresponding section on this page.

<Note>
  For retry strategies and example code, see the [Error Handling guide](/embed-api/guides/error-handling).
</Note>

## Auth

<span id="unauthorized" />

### UNAUTHORIZED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 401      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Invalid or missing API key

<span id="forbidden" />

### FORBIDDEN

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 403      |
| Retryable   | No       |
| Surfaces    | HTTP API |

You do not have permission to access this resource

***

## Validation

<span id="validation-error" />

### VALIDATION\_ERROR

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 400      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Request validation failed

<span id="answer-mismatch" />

### ANSWER\_MISMATCH

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 400      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Provided answers do not match question set

<span id="criteria-invalid" />

### CRITERIA\_INVALID

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 400      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Criteria configuration is invalid

<span id="criteria-revision-conflict" />

### CRITERIA\_REVISION\_CONFLICT

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 409      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Criteria changed before the write was applied

***

## Not Found

<span id="not-found" />

### NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Resource not found

<span id="tenant-not-found" />

### TENANT\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Tenant not found

<span id="job-not-found" />

### JOB\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Job not found

<span id="application-not-found" />

### APPLICATION\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Application not found

<span id="question-set-not-found" />

### QUESTION\_SET\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Question set not found or expired

<span id="criteria-not-found" />

### CRITERIA\_NOT\_FOUND

| Property    | Value                  |
| ----------- | ---------------------- |
| HTTP Status | 404                    |
| Retryable   | No                     |
| Surfaces    | HTTP API, Scoring Jobs |

No criteria found for this job

<span id="criterion-not-found" />

### CRITERION\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Criterion not found

<span id="criteria-version-not-found" />

### CRITERIA\_VERSION\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Criteria version not found

<span id="scoring-job-not-found" />

### SCORING\_JOB\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Scoring job not found

<span id="batch-not-found" />

### BATCH\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Batch not found

<span id="library-criterion-not-found" />

### LIBRARY\_CRITERION\_NOT\_FOUND

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 404      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Library criterion not found

***

## Rate Limiting

<span id="rate-limited" />

### RATE\_LIMITED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 429      |
| Retryable   | Yes      |
| Surfaces    | HTTP API |

Rate limit exceeded. Please retry after the reset time.

<span id="monthly-trial-quota-exceeded" />

### MONTHLY\_TRIAL\_QUOTA\_EXCEEDED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 429      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Monthly trial quota exceeded. Contact your Nova account manager or [nova@dweet.com](mailto:nova@dweet.com) to upgrade your plan.

***

## Idempotency

These errors apply to criteria and library mutations that use the HTTP `Idempotency-Key` replay layer. Scoring submissions use built-in scoring idempotency instead.

<span id="idempotency-key-already-used" />

### IDEMPOTENCY\_KEY\_ALREADY\_USED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 422      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Idempotency-Key has already been used with different request parameters

<span id="idempotency-request-in-progress" />

### IDEMPOTENCY\_REQUEST\_IN\_PROGRESS

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 409      |
| Retryable   | Yes      |
| Surfaces    | HTTP API |

A request with this Idempotency-Key is currently being processed

***

## Resume

<span id="resume-fetch-failed" />

### RESUME\_FETCH\_FAILED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | Yes (may vary per instance)      |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Failed to fetch resume from provided URL

<span id="resume-conversion-failed" />

### RESUME\_CONVERSION\_FAILED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | Yes (may vary per instance)      |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Failed to convert resume document to a supported format

<span id="resume-encrypted" />

### RESUME\_ENCRYPTED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Resume is password-protected or encrypted

<span id="resume-corrupted" />

### RESUME\_CORRUPTED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Resume file appears to be corrupted

<span id="resume-parse-failed" />

### RESUME\_PARSE\_FAILED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Failed to parse resume content

<span id="resume-too-large" />

### RESUME\_TOO\_LARGE

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Resume file exceeds maximum size limit

<span id="resume-empty" />

### RESUME\_EMPTY

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 422                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Resume file is empty or contains no extractable content

<span id="resume-url-blocked" />

### RESUME\_URL\_BLOCKED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 400      |
| Retryable   | No       |
| Surfaces    | HTTP API |

Resume URL is not allowed: internal or private addresses are blocked

***

## Processing

<span id="ai-processing-failed" />

### AI\_PROCESSING\_FAILED

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 500      |
| Retryable   | Yes      |
| Surfaces    | HTTP API |

AI processing failed unexpectedly

<span id="ai-generation-failed" />

### AI\_GENERATION\_FAILED

| Property    | Value                       |
| ----------- | --------------------------- |
| HTTP Status | 502                         |
| Retryable   | Yes (may vary per instance) |
| Surfaces    | HTTP API                    |

Failed to generate content. Please try again.

<span id="ai-scoring-failed" />

### AI\_SCORING\_FAILED

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 502                              |
| Retryable   | Yes (may vary per instance)      |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Failed to score application. Please try again.

<span id="missing-job-description" />

### MISSING\_JOB\_DESCRIPTION

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 400                              |
| Retryable   | No                               |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

Job description is required for AI scoring

<span id="timeout" />

### TIMEOUT

| Property    | Value                  |
| ----------- | ---------------------- |
| HTTP Status | 504                    |
| Retryable   | Yes                    |
| Surfaces    | HTTP API, Scoring Jobs |

Request timed out

<span id="max-retries-exceeded" />

### MAX\_RETRIES\_EXCEEDED

| Property    | Value                  |
| ----------- | ---------------------- |
| HTTP Status | 500                    |
| Retryable   | No                     |
| Surfaces    | Scoring Jobs, Webhooks |

Job exceeded maximum retry attempts

<span id="task-stuck" />

### TASK\_STUCK

| Property    | Value                  |
| ----------- | ---------------------- |
| HTTP Status | 500                    |
| Retryable   | No                     |
| Surfaces    | Scoring Jobs, Webhooks |

Task did not complete within expected time

***

## System

<span id="internal-error" />

### INTERNAL\_ERROR

| Property    | Value                            |
| ----------- | -------------------------------- |
| HTTP Status | 500                              |
| Retryable   | Yes                              |
| Surfaces    | HTTP API, Scoring Jobs, Webhooks |

An unexpected error occurred

<span id="service-unavailable" />

### SERVICE\_UNAVAILABLE

| Property    | Value    |
| ----------- | -------- |
| HTTP Status | 503      |
| Retryable   | Yes      |
| Surfaces    | HTTP API |

Service is temporarily unavailable

<span id="unknown" />

### UNKNOWN

| Property    | Value |
| ----------- | ----- |
| HTTP Status | 500   |
| Retryable   | No    |
| Surfaces    | None  |

Unknown error
