# Errors and limits: Automo developers

> What each Automo connector status code means, how permission step-up works, and the rate limits that apply.

Every refusal carries a sentence written so a model can pass it on to the person, plus a status that says what kind of problem it is.

| Status | Meaning | What to do |
| --- | --- | --- |
| 400 | The arguments do not match the tool's schema. `issues` lists each problem. | Fix the arguments. `GET /v1/tools/{name}` shows the schema. |
| 401 | No token, or the token is invalid, expired or revoked. | Refresh, or authorize again. Follow the `WWW-Authenticate` header. |
| 403 | The connection lacks the permission the tool needs, or the workspace admin switched it off. | If there is a `WWW-Authenticate: Bearer error="insufficient_scope"` header, reconnect asking for that scope. Otherwise ask the workspace admin. |
| 404 | No tool by that name for this connection. | `GET /v1/tools` lists them. |
| 405 | GET or DELETE on /mcp. The MCP server is stateless. | Use POST. |
| 422 | The tool ran and refused: a missing record, a plan limit, a step that needs the person's approval first. | Read `error`; it says what is needed. |
| 429 | Rate limited for this workspace. | Wait and retry with backoff. |
| 500, 503 | A problem on Automo's side. | Retry. Writes are recorded before they run, so check the result before repeating one. |

## Actions that ask first

Some tools never act on the model's say-so alone: sending email, sending or voiding an e-signature envelope, arming an automation, and anything that spends AI credits. The first call returns what would happen (and what it would cost); the tool runs only when it is called again with the person's explicit approval.

## Limits

- Requests are rate limited per workspace, the same budget for MCP and REST.
- Design write tools on one project are queued, so concurrent calls never overwrite each other.
- Some tools cap their own batch sizes (for example up to 200 elements per `add_elements` call); their parameter descriptions say so.
