> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Invalid cursor

The pagination cursor is malformed, expired, or doesn't match the query you sent.

---

## Example

```json
{
  "error": {
    "type": "request_error",
    "code": "invalid_cursor",
    "detail": "The pagination cursor is invalid or has expired. Restart from the first page.",
    "documentation_url": "https://developer.paddle.com/errors/metrics/invalid_cursor"
  },
  "meta": {
    "request_id": "00000000-0000-0000-0000-000000000000"
  }
}
```

## Details

| Attribute | Value |
| --- | --- |
| Status code | 400 |
| Error code | `invalid_cursor` |
| Error message | The pagination cursor is invalid or has expired. Restart from the first page. |

## Common causes

- The `after` cursor was altered or truncated.
- The query body changed between pages, so the cursor's parity hash no longer matches.
- The cursor expired, or the cached result it points to is no longer available.

## Common solutions

- Re-POST the unchanged query body to the `meta.pagination.next` path from the previous response (for example `/metrics/explore?after=...`).
- Keep the rest of the query identical while paging. If the query body changed, restart from the first page.
- If paging is slow, restart from the first page to obtain a fresh cursor.
