# bad_request

HTTP status: 400

## What the API sends

```
{"error":"bad_request"}
```

## When it happens

The body is not JSON, a field has a wrong value, or the body is larger than the API accepts. Some refusals add a `message`:

- `Astris offers Postgres and Redis databases. Set kind to postgres or redis.`
- `Name, slug, git URL, kind and source cannot be changed.`
- `A schedule is only for a cron application.`
- `A command is only for a worker or a cron application.`

A domain for a worker or a cron app is refused with the reason `not_web`:

```
{"error":"bad_request","reason":"not_web","message":"This app does not serve a website, so it cannot have a domain."}
```

## What to do

Read the `message` when there is one, correct the field, and send the request again.

## What your tools show

- The Astris CLI: `Those arguments were refused. Check the flags and send them again.`
- The Astris MCP: `The field <field> was refused.` when the API names the field, or `Those arguments were refused. Check the tool description and send them again.`
