> ## Documentation Index
> Fetch the complete documentation index at: https://help.fanaura.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors and limits

> Rate limits, HTTP errors, journey blockers, and field errors returned by the Fanaura MCP server.

Fanaura errors are written for people. The assistant can repeat them as they are, and each one says what to fix.

## Rate limit

<Info>
  **120 requests per minute per Fanaura user.** Every tool call counts as one request.
</Info>

Past the limit, the server answers `429` with `rate_limited` and "Try again in a minute." Normal chat use never comes close. Loops in scripts and agents are the usual cause.

## HTTP errors

| Status | Error | Meaning | What to do |
| - | - | - | - |
| `401` | `unauthorized` | No bearer token was sent. | Sign in. The response includes `WWW-Authenticate: Bearer realm="fanaura-mcp"`. |
| `401` | `invalid_token` | The token expired or was revoked. | The assistant refreshes it, or asks you to sign in again. |
| `403` | `access_denied` | The token is valid, but its account could not be loaded. | Reconnect. If it persists, email [support@fanaura.com](mailto:support@fanaura.com). |
| `429` | `rate_limited` | More than 120 requests in a minute. | Wait a minute. |

## Why a journey stays a draft

`create_journey` saves the journey even when it cannot go live, and returns `live: false` with a `blockers` list.

<AccordionGroup>
  <Accordion title="instagram_not_connected" icon="instagram">
    No ready Instagram connection. Ask "Connect my Instagram" for a 15-minute link.
  </Accordion>

  <Accordion title="keyword_taken" icon="key-round">
    Another journey that is not archived uses the same keyword. The message names it.
  </Accordion>

  <Accordion title="name_not_claimed" icon="at-sign">
    The account has not claimed its public name. Open Fanaura on your iPhone and claim it, then publish from chat.
  </Accordion>

  <Accordion title="membership_inactive" icon="badge-check">
    The account has no active membership. The journey is saved as a draft. The connector never shows prices, upgrades, or store links. Open the Fanaura iPhone app to manage membership.
  </Accordion>

  <Accordion title="publish_failed" icon="circle-x">
    Publishing failed for another reason. The message says why.
  </Accordion>

  <Accordion title="invalid_destination" icon="link-2-off">
    The link is not a full public `https://` address, or the keyword is not allowed. Nothing is saved.
  </Accordion>
</AccordionGroup>

## Field errors

When a tool input is wrong, `success` is `false`, `field` names the input, and `error` starts with `Field`:

```json theme={null}
{
  "success": false,
  "field": "keyword",
  "error": "Field keyword: Finish keyword and replies before publish."
}
```

| Tool | Common fields | Example message |
| - | - | - |
| `publish_journey` | `user_confirmed`, `destination_url`, `keyword`, `replies`, `name`, `slug`, `expected_revision`, `journey_id` | "Field user\_confirmed: Publishing requires user\_confirmed true, which records that the user asked for this journey to go live." |
| `set_instagram_keyword` | `keyword` | "Choose one word, up to 32 letters or numbers." |
| `get_contact` | `contact_id` | "Pass one of contact\_id, handle, phone, or email." or "More than one contact matched. Pass contact\_id." |
| `search_contacts` | `sort`, `cursor`, a filter key | "Field cursor is not a cursor from a previous page." |
| `audience_activity` | `field` | "Field favorite\_color is not a contact field." |

## Limits on results

| Limit | Value |
| - | - |
| Contacts per `search_contacts` page | 20 by default, 50 at most |
| Events per `contact_timeline` page | 50 |
| Timeline events on a search card | 3, newest first |
| Rows read per `audience_activity` breakdown | 5,000, then `truncated: true` |
| Public comment replies per journey | 10 |
| Keyword length | 1 to 32 letters or numbers |
| Instagram connect link | Valid for 15 minutes |
| Access token | 1 hour |
| Refresh token | 30 days |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.