# 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.