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

# Resolve media changes

> Resolve media that cannot publish to one or more selected Destinations.

Each Destination has different media limits. Upload the file, attach it to the
Post, and publish normally. OpenPMM returns no separate compatibility result
when the file can publish.

## When a file needs your decision

OpenPMM returns status `422` with code `media_change_required` before it sends
any request to a provider. The response contains only the media problems that
need an action from you.

```json theme={null}
{
  "type": "https://www.openpmm.com/docs/reference/errors#media_change_required",
  "title": "Media change required",
  "status": 422,
  "code": "media_change_required",
  "request_id": "req_01JABCDEF",
  "retryable": false,
  "provider_requests_started": false,
  "errors": [
    {
      "code": "video_aspect_ratio_invalid",
      "detail": "The video aspect ratio is outside this Destination's limits.",
      "pointer": "/posts/0/media/0",
      "asset_id": "ast_01JABCDEF",
      "channel": "facebook",
      "destination_id": "dest_01JABCDEF",
      "destination_label": "Brand Page",
      "property": "aspect_ratio",
      "actual": { "kind": "text", "value": "16:9" },
      "required": {
        "kind": "expected",
        "expected": "9:16",
        "owner": "provider"
      },
      "allowed_actions": ["replace_asset", "remove_destination"],
      "retryable": false
    }
  ]
}
```

Use `pointer` to find the request member. Use `asset_id`, `channel`, and
`destination_id` to find the affected file and Destination. Compare `actual`
with `required`, then choose one of `allowed_actions`.

Replace the file or remove the affected Destination, then send the confirmed
publication request again.

## When preparation is temporarily unavailable

OpenPMM can return status `503` with code `media_preparation_unavailable` when
it cannot prepare the media now. This response has `retryable: true`,
`provider_requests_started: false`, and `allowed_actions: ["retry"]`. Do not
change the file. Retry the same request with the same idempotency key after the
temporary condition clears.

If an accepted Post later needs action, its state changes to
`needs-attention`. Read `available_actions` on the Post. Do not create or
publish a second Post to work around the state.
