> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aigenstudio.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Handle failed results

> Understand partial completion and result-level failures.

Image jobs are asynchronous. A job can complete fully, fail fully, or finish with a mix of completed and failed results.

## Job statuses

```txt theme={"theme":{"light":"github-light","dark":"github-light"}}
queued
processing
completed
failed
cancelled
partially_completed
```

## Result statuses

```txt theme={"theme":{"light":"github-light","dark":"github-light"}}
queued
processing
completed
failed
cancelled
```

Read `results[]` from `GET /jobs/{jobId}`.

```json theme={"theme":{"light":"github-light","dark":"github-light"}}
{
  "job": {
    "id": "f693e677-51e0-4ebe-80a0-ad06acbc4443",
    "api": "image_editing",
    "status": "partially_completed"
  },
  "results": [
    {
      "external_id": "sku-001",
      "status": "completed",
      "result_url": "https://cdn.aigenstudio.app/outputs/sku-001.png"
    },
    {
      "external_id": "sku-002",
      "status": "failed",
      "error_code": "provider_error"
    }
  ],
  "request_id": "req_abc123"
}
```

## Retry strategy

| Error type                 | Retry? | Guidance                                     |
| -------------------------- | ------ | -------------------------------------------- |
| `source_url_blocked`       | No     | Fix the source image URL.                    |
| `source_download_failed`   | Yes    | Retry after confirming the URL is reachable. |
| `provider_error`           | Yes    | Retry later with a new create request.       |
| `content_policy_violation` | No     | Change the input or instructions.            |

When retrying failed results, create a new job with a new `Idempotency-Key`.
