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

# Known limitations

> The constraints worth knowing before you design a flow around Apple Messages.

Every channel has edges. These are the ones most likely to change a design decision, so they are published rather than discovered.

## Quick replies do not return their key

The schema requires a `key` on every quick reply you send. Apple's inbound payload returns **only the label text** — the key does not come back.

```json theme={null}
// What you send
{ "simple": { "quickReplies": [
  { "text": "Track my order", "key": "track_order" },
  { "text": "Start a return",  "key": "start_return" }
]}}

// What comes back identifies the reply by its label, not by "track_order"
```

**Consequences worth designing around:**

* Keep labels **unique within a message**. Two replies reading "Yes" in different sections are indistinguishable on return.
* Avoid labels differing only by case or punctuation.
* **Changing label copy changes your matching key.** A copy tweak in a flow can silently break the branch that depends on it.
* Localisation is the sharp edge — the same reply returns different text per language, so anything matching on the label needs to match per locale too.

<Tip>
  **Use [List Picker](/channels/apple-messages/rich-feature-messages) when the choice matters.** It
  returns dependable identifiers, so your branch survives a copy change. Quick replies are for
  low-stakes, two-or-three-option prompts; List Picker is for anything a flow actually depends on.
</Tip>

## `quickRepliesSummary` is capped at 40 characters

The collapsed summary line has a hard 40-character limit in the schema. Longer strings are a validation error, not a truncation — the message will not send.

## Unknown fields are rejected, not ignored

All eight primitives set `additionalProperties: false` — at the top level and on every nested object; Simple Message sets it four separate times across its schema. A field Apple does not recognise fails validation rather than being dropped.

This is deliberate and mostly helpful: validation runs before dispatch, at send time and again at flow-dispatch time, so a malformed message is marked failed in the thread instead of rendering wrong silently at Apple. But if you are porting content from another platform, expect to map fields explicitly rather than pass a superset and hope for the best.

## Only Rich Link takes video

Of the eight primitives, `richLink` is the only one with a `video` slot. Everything else takes `image` only. If your flow needs motion anywhere other than a Rich Link card, it needs rethinking.

## Verification is external and slow

Apple Business Register approval typically runs **4–6 weeks** and is entirely Apple's process. It is not something Tied can escalate or expedite.

Plan around it: start the application first, launch on another channel, and treat the AMB go-live date as approximate until Apple confirms.

## It is iPhone only, by definition

AMB reaches iOS 11.3 and later — effectively every active iPhone, and nothing else. Android customers need another channel; [Google RCS](/channels/rcs) is the intended answer but is not available yet, so route them to [web chat](/channels/web-chat) or [SMS](/channels/sms-mms) for now.

Budget for both if you want full coverage. Running only AMB means roughly half your customers land on a channel you have not built.

## Plan gating

AMB requires **Advanced or Enterprise**. It is not available on Starter or Business at any volume. See [Plans](/pricing/plans).

## Next

<CardGroup cols={2}>
  <Card title="Rich Feature Messages" icon="sparkles" href="/channels/apple-messages/rich-feature-messages">
    All eight primitives, their real schema constraints, and which to reach for.
  </Card>

  <Card title="Google RCS" icon="message-square-more" href="/channels/rcs">
    The Android half of full coverage.
  </Card>
</CardGroup>


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