What breaks, and what we do about it

Platform behaviour we hit building agentic voice in production, written down so you do not lose the same days we did. Also, honestly, what this technology is still bad at.

Nobody publishes this, which is why it is worth reading

We surveyed 190 AWS partners carrying the Amazon Connect facet. Ten mention limitations anywhere on their site, and none publish specifics. Below are platform behaviours that cost us real days to work out. All of it is AWS product behaviour, verified in production. None of it identifies a client.

Text logging silently writes nothing on speech to speech

Symptom. You enable conversation text logs on a Lex V2 bot fronting a speech to speech agent and the log group stays empty. No error, no warning.

Why. On the speech to speech path with a managed knowledge assistant, the text log setting is not honoured. The conversation never passes through the component that writes those logs.

What to do. Triage from the assistant's own log group instead, and design your evidence capture around your own per turn events rather than platform conversation logs. Do not build a compliance story on a log that may not be written.

An empty text parameter is rejected, so send a space

Symptom. A contact flow block that passes no text to the bot fails with a validation error at runtime.

Why. The parameter is validated as non empty even where an empty value is semantically correct, for example when you want the agent to speak first.

What to do. Pass a single space. It is ugly, it works, and it needs a comment next to it so the next engineer does not tidy it away.

Barge in sensitivity is a locale setting, not a session attribute

Symptom. The agent talks over the caller, or waits too long before responding, and the session attributes you would normally set have no effect.

Why. On the speech to speech path, speech detection sensitivity is configured on the bot locale. The classic per session attributes belong to the older path.

What to do. Tune it on the locale, per language, and retest with real callers rather than clean studio audio. This is the single biggest driver of whether a voice agent feels natural.

Agent runtime deploys fail after the image builds, on permissions

Symptom. The container builds and pushes successfully, then the runtime update fails complaining it cannot validate the image location.

Why. The runtime execution role needs registry read permissions in its own right. The build role having them is not sufficient.

What to do. Attach an authorisation token permission plus image read permissions scoped to the specific repository on the execution role. Do not widen it to all repositories to make the error go away.

Relaunching an agent can quietly mint a new execution role

Symptom. A redeploy succeeds, then the agent fails at runtime on permissions it had yesterday.

Why. The tooling can provision a fresh role on relaunch. Custom inline policies you attached to the old role are not carried over.

What to do. Pin the execution role explicitly in configuration, and verify the role identity after every deploy rather than assuming it survived.

Gateway audience must be pinned or every call is unauthorised

Symptom. Tool calls fail with an insufficient scope error even though the token is valid and the scopes look right.

Why. The audience claim the gateway expects and the audience your token carries must match exactly. A default that changes between environments breaks this silently.

What to do. Set the audience explicitly per environment and assert it in a smoke test that runs after deploy.

Managed knowledge assistants are capped per account

Symptom. You cannot create another assistant, in an account where you were planning one per environment or per brand.

Why. There is a low default limit on assistants per account.

What to do. Plan the account topology around it early, and raise the limit through support before you need it, not on the day of a go live.

Model identifiers differ by region in ways that break deploys

Symptom. The same template works in one region and fails to resolve the model in another.

Why. Regional inference profile identifiers carry a version suffix that the plain model identifier does not, and model availability differs by region and by account subscription.

What to do. Treat model identifiers as environment configuration, never as a constant, and check availability per region and per account rather than trusting documentation.

Observability layers must match the function architecture

Symptom. A function starts crashing on the extension immediately after adding monitoring, and the alias is left stuck.

Why. The instrumentation layer is architecture specific. Attaching the wrong build to an ARM function crashes the extension at init.

What to do. Match the layer to the architecture, and treat a stuck alias as expected fallout that needs an explicit recovery step in your runbook.

Task routing attributes are case sensitive, and duplicates break routing

Symptom. Tasks route correctly in testing and land in the wrong queue in production.

Why. The attribute the flow reads is case sensitive, and setting both a lowercase and a capitalised version leaves the flow reading the wrong one.

What to do. Pick one casing, document it, and assert it in a test that runs against the deployed flow.

Prompt changes do not take effect until published and reattached

Symptom. You update a prompt, the console shows the new text, and the agent keeps behaving the old way.

Why. The agent consumes a published version. Editing the draft changes nothing at runtime until it is published and the new version is attached.

What to do. Make publish and reattach part of the deployment pipeline, and log the prompt version with every contact so you can tell which version produced a given answer.

Bot only test calls are not recorded the way you expect

Symptom. You cannot find recordings or full transcripts for calls that never reached a human.

Why. Recording behaviour differs when no agent participates in the contact.

What to do. Capture your own audio and transcript artefacts from the agent layer if you need them for evidence, and validate this during design rather than during an audit.

Things agentic voice is still bad at

Long, emotional, multi issue conversations. An agent can hold a thread, but a distressed customer with three problems and a complaint is a human's job, and designing for that honestly is what keeps a deployment out of trouble.

Anything where being wrong is expensive and unverifiable. If the action cannot be checked against a system of record, do not automate the action. Automate the gathering and let a human commit it.

Heavy accents and poor lines, at the margins. Speech to speech is dramatically better than the previous generation and it is still not perfect. Measure it on your own call recordings before you promise a containment number to a board.

Knowledge that is wrong in your own documents. A grounded agent will faithfully repeat your out of date policy page. Content quality becomes an operational risk the moment you automate.

Hit something not on this list?

Thirty minutes with the engineers who ran into these. No pitch, and if we have not seen your problem we will say so.

Talk to an engineer