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

# PhotoRejectionReason

> Why a photo did not become a published image.

ONE closed vocabulary for both
ways a photo arrives — the URL push and the presigned upload — so you write one
switch rather than two lists of near-synonyms.

* `url_refused` — we will not fetch that URL. It must be `https`, on a public
  DNS name, on port 443 or 8443, with no redirects. Addresses inside private,
  loopback, link-local or cloud-metadata ranges are refused, and the check is
  made against the address the name resolves to at the moment we connect.
  *URL push only.*
* `fetch_failed` — your server did not answer, timed out, redirected, or
  returned a non-2xx status. Retryable: push again. *URL push only.*
* `unsupported_type` — not `image/jpeg`, `image/png` or `image/webp`.
* `too_large` — over the size ceiling.
* `processing_failed` — we had the bytes and could not publish the image. This
  also covers a photo our automated review declined.
* `upload_missing` — you asked for an upload form and the bytes never arrived.
  Nothing was wrong with the image, because there was no image: presign again
  and complete the upload. *Presigned uploads only.*

## Values

| Value | Meaning |
| - | - |
| `url_refused` | The address you gave could not be used at all. |
| `fetch_failed` | The bytes could not be read from the address you gave. |
| `unsupported_type` | The file is not one of the accepted image types. |
| `too_large` | The file is bigger than the published ceiling. |
| `processing_failed` | The bytes arrived but could not be turned into a published image. |
| `upload_missing` | The presigned slot expired with nothing uploaded into it. |

## In Maat

The published set is exactly Maat's own `PartnerPhotoRejectionReason`. A member added to one and not the other fails our build.

## Where it appears

**Fields**

* `PhotoRejection` · `reason`
* `PropertyPhoto` · `rejection_reason`

**Operations**

* `PUT /properties/{provider_id}` — Create or replace a property
* `GET /properties/{property_id}/photos` — List a property's photos
* `PUT /properties/{property_id}/photos/order` — Arrange a property's photos


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.