# Enable channel rules AI Transport streams tokens by appending to a single Ably channel message. That requires one channel rule on the namespace your conversations live on. This is a one-time configuration per Ably app. The *Message annotations, updates, deletes, and appends* rule (`mutableMessages: true`) is mandatory when using AI Transport. Without it, AI Transport fails on the first token append after a stream starts, with error `93002` `Can only update/delete/append messages on channels with mutableMessages enabled`. See [troubleshooting](https://ably.com/docs/ai-transport/troubleshooting.md#namespace-not-configured) for the symptom-side detail. Pick a namespace prefix that scopes AI Transport conversations away from other channels in the same app (for example `conversations:` or `chat:`). Apply the rule to that namespace. ## Enable the rule In your app [settings](https://ably.com/accounts/any/apps/any/settings): 1. Click **Add new rule**. 2. Enter the channel name or namespace on which to enable message updates and deletes. 3. Check **Message annotations, updates, deletes, and appends**. 4. Click **Create rule** to save. Create a namespace with `mutableMessages` enabled via the [Control API](https://ably.com/docs/api/control-api.md): ### Shell ``` curl -X POST https://control.ably.net/v1/apps/{APP_ID}/namespaces \ -H "Authorization: Bearer {ACCESS_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "id": "conversations", "mutableMessages": true }' ``` Use the [Ably CLI](https://ably.com/docs/platform/tools/cli.md): ### Shell ``` ably apps rules create "conversations" --mutable-messages ``` Run `ably apps rules create --help` for the full option list. ## Verify the rule applies to your channel names The namespace matches by prefix. If your conversations live on channel names like `conversations:abc-123`, the namespace `conversations` covers them. A namespace called `conversation` (singular) does **not** match `conversations:*`. Names are matched literally up to the first colon. The fastest verification is to send one user message through AI Transport and check the agent's logs for `93002`. If no `93002` appears and the first token streams through, the rule is applied correctly. ## Read next - [Set up authentication](https://ably.com/docs/ai-transport/getting-started/authentication.md): the auth setup AI Transport needs alongside the channel rule. - [Troubleshooting: namespace not configured](https://ably.com/docs/ai-transport/troubleshooting.md#namespace-not-configured): the symptom-side detail. - [Core SDK getting started](https://ably.com/docs/ai-transport/getting-started/core-sdk.md): build a chat app once the namespace is configured. ## Related Topics - [About AI Transport](https://ably.com/docs/ai-transport.md): AI Transport is durable session infrastructure for AI applications. Streams survive reconnects, sessions span devices, and any participant signals any other through the same session. - [Set up authentication](https://ably.com/docs/ai-transport/getting-started/authentication.md): Wire AI Transport to your auth: a token-issuing endpoint that signs Ably JWTs, and an authenticated Ably client on the browser. ## Documentation Index To discover additional Ably documentation: 1. Fetch [llms.txt](https://ably.com/llms.txt) for the canonical list of available pages. 2. Identify relevant URLs from that index. 3. Fetch target pages as needed. Avoid using assumed or outdated documentation paths.