---
title: "job.failed"
method: POST
path: "jobFailed"
---

# job.failed

`POST jobFailed` (webhook)

Sent when a job fails. For `generate` jobs there is NO `operation` field; cover-operation jobs include it. Reserved credits are refunded on failure.

## Payload

- WebhookJobFailed
  - `event` 'job.failed', required
  - `jobId` string, uuid, required
  - `external_ref` string, nullable, required
  - `status` 'failed', required
  - `operation` 'variation' | 'edit_image' | 'upscale' | 'audiobook_cover' | 'remove_text' | 'generate_reference' | 'wrap' | 'wrap_extend_front': Present on every job's webhook except `generate`, whose webhooks omit this field.
  - `timestamp` string, date-time, required
  - `error` string, required: Failure message.

## Acknowledgement `200`

Return any 2xx to acknowledge receipt.

---

[API](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api.md) · [All operations](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/beyourcover/apis/beyourcover-partner-api/revisions/82ad2c7c8ede?raw)
