# LAUNCH_IMAGE_INVALID

> Launch image invalid: The token image of a launch metadata upload is missing, larger than 1 MB, or not a PNG, JPEG, WebP or GIF file.

Source: https://docs.layerhop.com/errors/LAUNCH_IMAGE_INVALID

| HTTP status | Retry |
|---|---|
| `400` | no |

**Where it comes from:** `POST /v1/launch/metadata`.

## Causes

- The multipart body has no `image` file part (a text field named `image` does not count).
- The file is larger than 1 MB (1,048,576 bytes).
- The file's first bytes are not a PNG, JPEG, WebP or GIF signature. The type is detected from the bytes, not the file name or the part's content type, so SVG, HEIC, AVIF and renamed files are rejected.

## How to fix

- Send the image as a file part named `image` in a `multipart/form-data` body.
- Resize or recompress the image below 1 MB (a 512 × 512 PNG or WebP is plenty for a token logo).
- Convert other formats to PNG, JPEG, WebP or GIF before uploading.

## Example response

```json
{
  "error": {
    "code": "LAUNCH_IMAGE_INVALID",
    "message": "{\n  \"error\": {\n    \"code\": \"LAUNCH_IMAGE_INVALID\",\n    \"message\": \"image must be a PNG, JPEG, WebP or GIF file\",\n    \"requestId\": \"0d5e1f6a-…\",\n    \"docsUrl\": \"https://docs.layerhop.com/errors/LAUNCH_IMAGE_INVALID\"\n  }\n}",
    "requestId": "0d5e1f6a-3b2c-4d1e-8f9a-7b6c5d4e3f21",
    "docsUrl": "https://docs.layerhop.com/errors/LAUNCH_IMAGE_INVALID"
  }
}
```

See [Error handling & retries](/guides/error-handling) for a retry strategy, and the [error catalog](/errors) for every code.
