Skip to content

Error Index

Akash Das edited this page Sep 24, 2026 · 4 revisions

Error Index

Every error this material produces, by the string you actually see. Search this page for your error text — that is what it is for.

Relationship to the repo. docs/setup/troubleshooting.md is the curated, versioned subset that ships with the material. This page is the growing superset: anyone can add an error the moment they hit one, no pull request. When an entry proves common, it gets promoted into the repo.

Adding one? Four columns, and the third is the one people skip. How to edit.


Which family is it?

Seven families, and each has a different first move. Find your branch by what you can see, not by what you think went wrong — the cause is almost always one layer below the string.

Seven kinds of error string, each pointing to the section that explains it

▸ Open the picture full size

Three of the seven fail silently. An empty list is a permissions state, not an outage. An agent that cannot reach its Lambda reports it inside the trace rather than as a top-level error. A model swap changes quality with nothing thrown at all. If nothing failed and something is still wrong, you are in one of those three.


Access and identity

AccessDeniedException — on any Bedrock call

Cause. Model access is granted per model, per region, on request. Fix. Bedrock → Model access → Modify → select → submit, in the region you are calling. The part that catches people twice: if you use a cross-Region inference profile, you need access in every region it routes to. A profile fanning out to three regions needs access in all three, which makes the failure look intermittent — it depends where the request landed.

AccessDeniedException — only sometimes, same code

Cause. Almost always the above: a geographic inference profile routing to a region where you lack access. Fix. aws bedrock list-inference-profiles and check each destination region.

Empty list from list-foundation-models

Cause. Not an outage. Model access has not been granted in that region. Fix. As above. An empty list is a permissions state.

UnrecognizedClientException / InvalidSignatureException

Cause. Credentials wrong or expired. Fix. aws sts get-caller-identity — if it does not name your account, fix credentials before anything else.


Model IDs and invocation

ValidationException: Invocation of model ID … with on-demand throughput isn't supported

Cause. You passed a bare model ID where an inference profile ID is required. Profile IDs carry a geography prefix — us., eu. and others. Fix.

aws bedrock list-inference-profiles --region us-east-1 \
  --query 'inferenceProfileSummaries[].inferenceProfileId' --output table

Use that value as modelId. Also: if you scope IAM, grant both the profile ARN and the underlying foundation-model ARNs. Granting only the profile is a common cause of a confusing denial. (Full answer)

AttributeError: 'Bedrock' object has no attribute 'converse'

Cause. Wrong client. Four clients, four jobs:

Client For
bedrock Managing models, guardrails, KB config
bedrock-runtime converse, invoke_model — calling a model
bedrock-agent Creating and configuring agents
bedrock-agent-runtime invoke_agent, retrieve — calling an agent or KB

ValidationException mentioning messages or roles

Cause. Roles must alternate. Two consecutive user messages, or a conversation starting with assistant, are rejected. Fix. print([m["role"] for m in messages]) before the call. Usually the tool-result loop appending two user turns.

ThrottlingException / 503 Service Unavailable

Cause. Capacity, not correctness. Fix. Backoff and retry; use a cross-Region inference profile to spread load; or move region. Log which model answered so failover is not silent.


The agent loop

The model asks for the same tool twice, identically

Cause. You appended the tool result but not the assistant message that requested it. From the model's side it never asked, so the reply has nothing to attach to. Fix. Append the assistant message verbatim first, then a user message with the toolResult. Detect it in 30 seconds: print([m["role"] for m in messages]) — ['user','user'] is the tell. Full answer · AGL-02 lab

TypeError: f() got an unexpected keyword argument

Cause. The model hallucinated a parameter name; **args raised. Fix. Catch it in the dispatcher and return an error result naming the valid arguments, so the model can self-correct. Never let it escape the loop.

SystemExit kills the whole run

Cause. except Exception does not catch SystemExit or KeyboardInterrupt — they inherit from BaseException. A dependency calling sys.exit() on a config problem takes your agent with it. Fix. In a dispatcher, except BaseException is correct. It is a boundary, and boundaries catch everything.

The loop never terminates

Cause. No iteration cap, or the model is oscillating — same call, same arguments, repeatedly. Fix. A counter in the code, not an instruction in the prompt. Detect a repeated call signature (name and arguments) and stop early. AGL-03 lab


Agents and action groups

Bedrock Agent silently cannot call its Lambda

Cause. Missing resource-based policy on the Lambda. Shows as AccessDeniedException inside the trace, not as a top-level error. Fix.

aws lambda add-permission --function-name YOUR_FN \
  --statement-id bedrock-agent-invoke --action lambda:InvokeFunction \
  --principal bedrock.amazonaws.com \
  --source-arn arn:aws:bedrock:us-east-1:123456789012:agent/AGENTID

Agent returns an error observation from a working Lambda

Cause. Response shape. Fix. Must be {"response": {"actionGroup", "apiPath", "httpMethod", "httpStatusCode", "responseBody"}}.


Retrieval

Answers with no citations

Cause. The model answered from parametric memory. Retrieval may have run and been ignored. Fix. Assert a citation on every factual claim as a contract test; instruct abstention when retrieval is empty.

Citations present but the passage does not support the claim

Cause. Citation theatre. Models are good at naming a plausible passage for an answer they generated independently. Fix. Human-read five cited passages per release. Flag answers citing 3+ sources for one specific claim. Full answer · Grounding Triangle

Confidently wrong answers about policy

Cause. A tool returned [] and the model read "I found nothing" as "nothing applies". Fix. Tools return {"status": "no_matches", "advice": "…"}, never a bare empty list. TOOL-03 lab

Retrieval quality decayed as the corpus grew

Cause. Recall fell at fixed top_k as competition increased. Fix. Re-measure recall@k. Improve ranking rather than just raising k — the accuracy curve peaks and then falls.


Cost and platform

The bill grew with no traffic change

Cause. Usually idle infrastructure. OpenSearch Serverless collections and AgentCore runtimes bill for existing. Fix. Teardown checklist. Also check turns per task — a retry storm or an uncapped loop multiplies four token taxes at once.

Quality dropped with no deploy

Cause. Model failover to a smaller model, or a provider-side model update. Fix. Log which model answered on every response. Pin the model in a version manifest. PROD-02 lab

AgentCore deploy succeeds, invoke fails

Cause. Runtime role missing a downstream permission. Fix. Scope per tool rather than per agent, and check each downstream ARN.


Labs and local environment

SyntaxError: f-string expression part cannot include a backslash

Cause. Python 3.11 running a file that needs 3.12. Only the notebook-generator scripts under labs/rag-labs/build/ require 3.12. Fix. Use 3.12 for those; the labs themselves run on 3.11.

labctl says "no solution yet"

Fix. python labs/runner/labctl.py start <ID> copies the starter into your workspace first.

labctl verify fails on a lab you wrote

Cause. One of the two rules: your reference must pass all three phases, and your starter must fail the public checks. Fix. If the starter passes, the TODOs do not need doing. Authoring guide


Adding an entry

### `the exact error string`
**Cause.** What is actually wrong.
**Fix.** The command or change.
**How you found it.** ← the most valuable line. What led you to the cause?

Errors are indexed by search engines. Paste the exact string, including punctuation, so the next person finds it.

🗺️ Navigate

🏠 Wiki Home

▶ Start

▶ Start here · 55 lessons, on the site ↗

  1. Getting started · 2
  2. Agentic PDLC fundamentals · 9
  3. Methods decoded · 7
  4. Running delivery · 13
  5. By role · 9
  6. Teams and organisation · 4
  7. Practice · 4
  8. Interviews and careers · 7

📗 Method and reference

The method
The Agentic PDLC
The Eight Loops
Gates & Governance
The Evidence Pack

The journey · end to end
Product manager
Solution architect
Engineering lead
QA lead
DevOps & platform

The method · by role
Product manager
Solution architect
Engineering lead
QA lead
DevOps and platform
Sponsor

How to
Run an NFR workshop
Design an agent on paper
Build, buy or borrow
Cut sprints into bolts
Review by risk band
Prove the bar
Control the token bill
Hold the security boundary
Run a missing-control postmortem

Reference
Mental Models
Glossary
Formulas & Calculators
Decision Trees
Scenario Library
Exercises & Answers
Anti-Patterns
Sources & Confidence
Where do I find…?


📚 Course and labs

The course companion · Labs

The 16 modules
  1. Agentic Foundations
  2. LLM Intuition and the AWS Bridge
  3. Amazon Bedrock Essentials
  4. Amazon Bedrock Agents
  5. Agent Builder, Knowledge Bases and Guardrails
  6. The Agent Loop: No Framework to Strands
  7. Strands Foundations: Tools, Memory and MCP
  8. Multi-Agent Patterns with Strands
  9. LangChain and LangGraph
  10. LLM Memory Mechanics
  11. RAG, OpenSearch and LiteLLM
  12. Amazon Bedrock AgentCore
  13. A2A and A2UI: Agent Interoperability
  14. Agentic QA and Evaluation
  15. End-to-End Production Pipeline
  16. Agentic Product Lifecycle

Learning paths · Field guide
Study Plans


🎓 Cohort kit

Cohort Kit · Session template

Eight sessions
  1. Kick-off
  2. Frame and spec
  3. Build, run and the loops
  4. Methods decoded
  5. Plan and review
  6. Prove and ship
  7. Govern and scale
  8. Practice and roles

💬 Community and maintenance

Living notes
Error Index
Community Answers
Field Notes
Model & Region Notes
Cost Log
Scoreboard 🧪

The project
Roadmap
Editing this wiki
Maintainer Runbook


📦 Elsewhere

📘 The manual · live
🛫 Ninety Days, the simulator
🧰 The workbench
👔 For leadership
🧠 Mental models
Templates · Prompts
Frameworks & acronyms
The repository · Setup

Pinned discussions
Discussion map — where to post what
Exercise & lab index
Simulator Arena — get a lab graded
Pitch an idea
All discussions →

Clone this wiki locally