# E01xxx — Infrastructure

Error codes in the `E01xxx` range that the public Bird API returns. Each code links to its own page (the page its `doc_url` points at) with the cause and what to do. Retired codes stay listed; they are never renamed or reused.

| Code                                | Name                    | Status | Message                                                                                                                       |
| ----------------------------------- | ----------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- |
| [`E01000`](/docs/api/errors/E01000) | `InternalError`         | `500`  | An internal error occurred.                                                                                                   |
| [`E01001`](/docs/api/errors/E01001) | `ValidationError`       | `422`  | Request validation failed.                                                                                                    |
| [`E01002`](/docs/api/errors/E01002) | `InvalidRequest`        | `400`  | The request was malformed.                                                                                                    |
| [`E01003`](/docs/api/errors/E01003) | `RateLimited`           | `429`  | Too many requests. Please retry after the period indicated in the Retry-After header.                                         |
| [`E01004`](/docs/api/errors/E01004) | `RequestInProgress`     | `409`  | A request with this idempotency key is already in progress.                                                                   |
| [`E01005`](/docs/api/errors/E01005) | `IdempotencyKeyReuse`   | `409`  | This idempotency key was already used with a different request.                                                               |
| [`E01006`](/docs/api/errors/E01006) | `RouteNotFound`         | `404`  | No route matches this path.                                                                                                   |
| [`E01008`](/docs/api/errors/E01008) | `NotFound`              | `404`  | The requested resource was not found.                                                                                         |
| [`E01009`](/docs/api/errors/E01009) | `Conflict`              | `409`  | The request conflicts with the current state of the resource.                                                                 |
| [`E01010`](/docs/api/errors/E01010) | `MisdirectedRequest`    | `421`  | This request was routed to the wrong region.                                                                                  |
| [`E01011`](/docs/api/errors/E01011) | `PayloadTooLarge`       | `413`  | The request body exceeds the maximum allowed size.                                                                            |
| [`E01012`](/docs/api/errors/E01012) | `InvalidCursor`         | `422`  | The pagination cursor is malformed or no longer valid. Restart pagination without a cursor.                                   |
| [`E01013`](/docs/api/errors/E01013) | `InvalidSort`           | `422`  | The requested sort field or order is not supported for this resource.                                                         |
| [`E01014`](/docs/api/errors/E01014) | `InvalidFilter`         | `422`  | The requested filter is not supported for this resource.                                                                      |
| [`E01015`](/docs/api/errors/E01015) | `NotImplemented`        | `501`  | This endpoint is not yet implemented.                                                                                         |
| [`E01017`](/docs/api/errors/E01017) | `RequestTimeout`        | `503`  | The request could not be completed in time. Please retry.                                                                     |
| [`E01018`](/docs/api/errors/E01018) | `ServiceOverloaded`     | `503`  | The server is temporarily at capacity for large requests. Please retry shortly.                                               |
| [`E01019`](/docs/api/errors/E01019) | `DocsSearchUnavailable` | `503`  | Documentation search is temporarily unavailable. Please retry.                                                                |
| [`E01021`](/docs/api/errors/E01021) | `DuplicateTagName`      | `422`  | Tag names must be unique within a single send.                                                                                |
| [`E01022`](/docs/api/errors/E01022) | `ReservedKeyPrefix`     | `422`  | Tag names and metadata keys beginning with '__bird' are reserved and cannot be used.                                          |
| [`E01023`](/docs/api/errors/E01023) | `MetadataTooLarge`      | `422`  | Metadata exceeds the 2 KB serialized cap.                                                                                     |
| [`E01024`](/docs/api/errors/E01024) | `TooManyFailedAuth`     | `429`  | Too many failed authentication attempts from your network. Please retry after the period indicated in the Retry-After header. |
| [`E01025`](/docs/api/errors/E01025) | `DocsPageUnavailable`   | `503`  | Bird documentation is temporarily unavailable. Please retry.                                                                  |
| [`E01026`](/docs/api/errors/E01026) | `DocsPageNotFound`      | `404`  | No Bird documentation page matches that slug.                                                                                 |

## Related

- [Errors](/docs/api/errors): the full wire contract, status mapping, and all code ranges
- [Error handling](/docs/guides/errors): branching on `type` and `code`, validation details, and `vendor_code`