# MISSING_CONTENT

Some files are missing.

- **HTTP class:** 422
- **Retryable:** no

## What happened

The call with `finalize=true` names files by `sha256` that Carnival doesn't have. The deploy stays staged: the result returns its `deploy_id` and lists the hashes in `missing`.

## Fix

Send those files with content and the same `deploy_id`: up to 72 a call with `finalize=false`, then the last 30 or fewer with `finalize=true`.

## What to tell the user

Nothing.

## Agent hint

The exact `error.hint` text; Carnival fills each `<…>` for the call.

```text
Carnival doesn't have the files listed in missing. Send them with content and the same deploy_id: up to 72 a call with finalize=false, then the last 30 or fewer with finalize=true.
```

## Related

- [`MISSING_PARTS`](https://carnival-staging.dev/docs/errors/MISSING_PARTS.md): Some pieces are missing.
- [`HASH_MISMATCH`](https://carnival-staging.dev/docs/errors/HASH_MISMATCH.md): A sha256 does not match its content.
- [`DEPLOY_EXPIRED`](https://carnival-staging.dev/docs/errors/DEPLOY_EXPIRED.md): This staged upload expired.

All error codes: [error codes](https://carnival-staging.dev/docs/errors.md)
