# Retry a failed feedback entry

`POST https://api.cream-ai.de/api/v1/films/{id}/feedback/{feedback_id}/retry`

Sends a failed feedback entry again (only `status: failed`, otherwise `409 feedback_not_retryable`). The entry is queued again under the calling API access. With `allow_redraw: true` mint may redraw the scene at a fixed price (see `failure.fixed_price_credits` of `redraw_required`). If the company does not have enough credits, the response is `402 insufficient_credits` and the entry stays `failed`. A film cancelled through the API answers `409 film_cancelled`.

Scopes: `feedback:write`

## Parameters

- `id` (path, required): Id of the film (id from POST /films or GET /films).
- `feedback_id` (path, required): Id of the feedback entry (id from the feedback object).
- `Idempotency-Key` (header, required): Unique key of this write request (1–128 visible ASCII characters, e.g. a UUID). Retries with the same key return the stored response.

## Request body

- `allow_redraw` (boolean): Change the permission to redraw the scene; without it the previous value applies.

## Returns

- 202: The entry is queued again (status: queued).

## Errors

- 400: Invalid request (invalid_request, invalid_json, invalid_cursor, idempotency_key_required, invalid_idempotency_key, parent_not_found, max_depth_exceeded, narration_too_long, user_not_in_company, template_not_found, category_not_found, feedback_kind_unsupported, upload_not_found).
- 401: Missing, malformed, revoked or expired API key (unauthorized).
- 402: The company does not have enough credits (insufficient_credits). The entry stays failed; not stored under the Idempotency-Key.
- 403: Not allowed (forbidden_scope, ip_not_allowed, company_inactive, api_not_enabled).
- 404: Not found (not_found).
- 409: Only failed entries can be retried (feedback_not_retryable), the film was cancelled through the API (film_cancelled), the entry changed at the same time (feedback_busy, with Retry-After), or a request with this Idempotency-Key is still running (idempotency_in_progress).
- 413: Request body too large (payload_too_large).
- 415: Request body is not JSON (unsupported_media_type).
- 422: Idempotency-Key reused with a different request (idempotency_mismatch).
- 429: Too many requests (rate_limited).
- 500: Internal error (internal). Quote the request id when you contact support.
- 503: Temporarily unavailable (service_unavailable). Retry later (after Retry-After seconds, if sent).

## Example request

```sh
curl -X POST "https://api.cream-ai.de/api/v1/films/k7m2xq9v4t8n1b5r3c6d0wza/feedback/fb_2a7d4c9e1b6f3a8d5c0e7b2f4a9d1c6e/retry" \
  -H "Authorization: Bearer $MINT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "allow_redraw": true
  }'
```

## Example response (202)

```json
{
  "object": "feedback",
  "id": "fb_2a7d4c9e1b6f3a8d5c0e7b2f4a9d1c6e",
  "batch_id": "fbb_6e1c8a3f5d2b9e4a7c0f1d6b3e8a5c2f",
  "film_id": "k7m2xq9v4t8n1b5r3c6d0wza",
  "scene": 4,
  "at_s": null,
  "scene_offset_s": null,
  "preview_id": "pv_8c1e4a7d2b5f9e3c6a0d1b4e7f2a5c8d",
  "storyboard_version": 1,
  "kind": "text",
  "message": "Please write \"customer groups\" instead of \"target groups\" in the headline.",
  "region": null,
  "point": null,
  "attachments": [],
  "allow_redraw": false,
  "external_ref": "lms-review-8812",
  "status": "queued",
  "stage": null,
  "queue_reason": null,
  "warnings": [],
  "result": null,
  "failure": null,
  "sender": {
    "kind": "user",
    "name": "Anna Schmidt",
    "email": "anna.schmidt@example.edu"
  },
  "created_at": "2026-11-10T08:31:02Z",
  "updated_at": "2026-11-10T08:31:02Z"
}
```
