[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-agents-debug":3,"mdc-5k68ti-key":35,"related-repo-aws-agents-debug":5845,"related-org-aws-agents-debug":5935},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"agents-debug","debug agent and environment issues","Use when your agent or environment is broken — wrong answers, errors, timeouts, tool failures, or CLI issues. Reads traces and logs to diagnose root causes. Also checks prerequisites when the CLI itself isn't working. Triggers on: \"agent not working\", \"wrong answer\", \"agent error\", \"tool call failing\", \"debug agent\", \"check logs\", \"read traces\", \"broken\", \"500 error\", \"424 error\", \"model access denied\", \"command not found\", \"stuck in DELETING\", \"maxVms exceeded\", \"cold start diagnosis\", \"cold start slow\", \"agentcore create error\", \"create failed\", \"exit code 7\", \"connection refused local dev\". Not for deploy failures — use agents-deploy. Not for performance tuning without errors — use agents-optimize. Not for VPC configuration — use agents-build. Not for observability setup or missing logs — use agents-optimize.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"aws","AWS (Amazon)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws.png",[12,16,19,21],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":20,"slug":8,"type":15},"AWS",{"name":22,"slug":23,"type":15},"Debugging","debugging",1822,"https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws","2026-07-16T06:00:44.679093",null,157,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Official, AWS-supported MCP servers, skills, and plugins to help AI agents build on AWS","https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws\u002Ftree\u002FHEAD\u002Fplugins\u002Faws-agents\u002Fskills\u002Fagents-debug","---\nname: agents-debug\ndescription: >\n  Use when your agent or environment is broken — wrong answers, errors,\n  timeouts, tool failures, or CLI issues. Reads traces and logs to\n  diagnose root causes. Also checks prerequisites when the CLI itself\n  isn't working. Triggers on: \"agent not working\", \"wrong answer\",\n  \"agent error\", \"tool call failing\", \"debug agent\", \"check logs\",\n  \"read traces\", \"broken\", \"500 error\", \"424 error\", \"model access\n  denied\", \"command not found\", \"stuck in DELETING\", \"maxVms exceeded\",\n  \"cold start diagnosis\", \"cold start slow\", \"agentcore create error\",\n  \"create failed\", \"exit code 7\", \"connection refused local dev\".\n  Not for deploy failures — use agents-deploy. Not for performance\n  tuning without errors — use agents-optimize. Not for VPC\n  configuration — use agents-build. Not for observability setup or\n  missing logs — use agents-optimize.\nallowed-tools: Read Grep Glob Bash\nmetadata:\n  type: skill\n  version: \"1.0.0\"\n  author: aws-agentcore\n  requires-cli: \">=0.9.0\"\n---\n\n# debug\n\nDiagnose why your AgentCore agent or environment isn't working correctly.\n\n## When to use\n\n- Your agent is returning wrong answers or errors\n- Tool calls are failing or timing out\n- Agent works locally but fails after deploying\n- Logs aren't showing up in CloudWatch\n- The AgentCore CLI isn't working or environment seems broken\n- `agentcore` command not found or prerequisites are missing\n\nDo NOT use for:\n\n- Deploy failures (CDK errors, IAM during deploy) → use `agents-deploy`\n- Scaffolding a new project → use `agents-get-started`\n- Measuring quality or setting up monitoring → use `agents-optimize`\n\n## Input\n\n`$ARGUMENTS` is optional:\n\n```\n\u002Fagents-debug                      # interactive — describe what's wrong\n\u002Fagents-debug traces               # read and explain recent traces\n\u002Fagents-debug logs                 # search recent logs for errors\n\u002Fagents-debug memory               # diagnose memory recall issues specifically\n\u002Fagents-debug doctor               # check environment prerequisites\n```\n\n## Process\n\n### Step 0: Determine problem type\n\nIf the developer's issue is about the CLI itself (command not found, prerequisites, environment setup), load [`references\u002Fdoctor.md`](references\u002Fdoctor.md) and follow its diagnostic checklist.\n\nIf the issue is about agent behavior (wrong answers, errors, timeouts, tool failures), continue with Step 1 below.\n\n### Step 1: Verify CLI version\n\nRun `agentcore --version`. This skill requires v0.9.0 or later. If the version is older, tell the developer to run `agentcore update` before proceeding.\n\n### Step 2: Understand the symptom\n\nAsk (or infer from context):\n\n> \"What's happening?\n>\n> 1. The agent returns an error message\n> 2. The agent returns a wrong or unhelpful answer\n> 3. A specific tool call is failing\n> 4. Memory isn't working (agent doesn't remember things)\n> 5. The agent is slow or timing out\n> 6. I want to understand what the agent did in a specific session\"\n\n### Step 3: Read traces and logs automatically\n\nDon't ask the developer to paste logs — read them directly.\n\n```bash\n# List recent traces\nagentcore traces list --runtime \u003CAgentName> --since 1h\n\n# Get the most recent trace ID\nagentcore traces list --runtime \u003CAgentName> --since 1h --limit 1\n\n# Download and read the trace\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n\n# Search logs for errors\nagentcore logs --runtime \u003CAgentName> --since 1h --level error\n\n# Search logs for a specific pattern\nagentcore logs --runtime \u003CAgentName> --since 2h --query \"timeout\"\nagentcore logs --runtime \u003CAgentName> --since 2h --query \"model access\"\n```\n\n**Important:** CloudWatch put-to-get latency is **~10 seconds end-to-end** — that's the delay from when a span is emitted to when it's readable by `agentcore traces get` or `agentcore run eval`. There is **no separate \"trace ingested but eval not ready yet\" window**; the same ingestion step unlocks both paths. Older skills and docs said 30–60s for traces and 2–5 minutes for evals — both are stale. If you just invoked the agent, wait ~15 seconds and both trace reads and evals will work.\n\nRead `agentcore\u002Fagentcore.json` to get the agent name if not provided.\n\n### Step 4: Diagnose by symptom\n\n---\n\n## Symptom: \"model access denied\" or model error\n\n**Most common cause:** The model isn't enabled in the Bedrock console for your region.\n\nFix:\n\n1. Go to AWS Console → Amazon Bedrock → Model access\n2. Enable the model your agent uses\n3. Wait 1–2 minutes for access to propagate\n\n**Second cause:** The execution role is missing `bedrock:InvokeModel`.\n\nCheck:\n\n```bash\naws iam simulate-principal-policy \\\n  --policy-source-arn $(agentcore status --json | jq -r '.runtimes[0].executionRoleArn') \\\n  --action-names bedrock:InvokeModel \\\n  --resource-arns \"arn:aws:bedrock:*::foundation-model\u002F*\"\n```\n\n**Third cause:** Cross-region inference profile requires model access in all regions.\n\nModel IDs starting with a geographic prefix are cross-region inference profiles that route requests within that geography:\n\n| Prefix | Geography | Example destination regions |\n|---|---|---|\n| `us.` | United States | us-east-1, us-east-2, us-west-2 |\n| `eu.` | Europe | eu-central-1, eu-west-1, eu-west-2, eu-west-3 |\n| `apac.` | Asia Pacific | ap-northeast-1, ap-southeast-1, ap-southeast-2, ap-south-1 |\n| `global.` | All commercial regions worldwide | All supported regions |\n\nThe AgentCore CLI scaffolds `global.` by default (e.g., `global.anthropic.claude-sonnet-4-5-20250929-v1:0`). All prefixes require model access enabled in every destination region the profile covers. For `us.` profiles, enable in all US regions; for `eu.`, all EU regions; for `global.`, all supported regions. Not all models support all prefixes — `global.` is currently available for select models only. Use `global.` for maximum throughput when available, or a geographic prefix when data residency requirements constrain where inference can run. Check the Bedrock inference profiles docs for current model × prefix availability.\n\n---\n\n## Symptom: Tool call failing\n\n**Step 1:** Find the failing tool call in the trace:\n\n```bash\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n```\n\nLook for tool call entries with error status.\n\n**Step 2:** Check the gateway status:\n\n```bash\nagentcore status --type gateway\nagentcore fetch access --name \u003CAgentName> --type agent\n```\n\n**Step 3:** Common tool call failures:\n\n**Gateway URL not set (local dev):**\nThe `AGENTCORE_GATEWAY_*_URL` env var is only set after deploy. In `agentcore dev`, gateway tools aren't available. This is expected — the agent should handle this gracefully.\n\n**Auth failure on tool call:**\n\n```bash\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"auth\"\n```\n\nCheck that the credential is configured correctly: `agentcore status --type credential`\n\n**Lambda function error:**\nThe Lambda itself is failing. Check Lambda logs directly:\n\n```bash\naws logs tail \u002Faws\u002Flambda\u002F\u003Cfunction-name> --since 1h\n```\n\n**Policy denial:**\nIf a policy engine is attached, check policy decision logs:\n\n```bash\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"policy\"\nagentcore status --type policy-engine\n```\n\n---\n\n## Symptom: Wrong or unhelpful answers\n\n**Step 1:** Read the trace to see the agent's reasoning:\n\n```bash\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n```\n\nThe trace shows the model's reasoning steps, tool calls made, and the final response. Look for:\n\n- Did the agent use the right tools?\n- Did the tool calls return the expected data?\n- Is the system prompt providing the right context?\n\n**Step 2:** Check if memory is involved:\nIf the agent should be using memory context but isn't, see the \"Symptom: Memory not persisting\" section later in this skill, or load [`references\u002Fdoctor.md`](references\u002Fdoctor.md) if this is an environment issue.\n\n**Step 3:** Common causes:\n\n- System prompt is too vague or missing key context\n- Agent isn't calling the right tools (tool descriptions need improvement)\n- Tool is returning unexpected data format\n- Model ID is wrong for the task (e.g., using a smaller model for complex reasoning)\n\n---\n\n## Symptom: Memory not working\n\n**Memory not persisting across sessions (LTM):**\n\n1. Verify LTM strategies are configured (SEMANTIC or USER_PREFERENCE):\n\n```bash\nagentcore status --type memory --json | jq '.memories[].strategies'\n```\n\n1. Wait 5–30 seconds after a session ends — LTM extraction is async. The agent must finish its session before facts are extracted.\n\n2. Use UUIDs (v4) for session IDs — the platform requires a minimum of 33 characters. Short IDs like \"session-1\" cause LTM to fail silently. `agentcore invoke` generates compliant IDs by default.\n\n3. Verify the memory resource is ACTIVE:\n\n```bash\nagentcore status --type memory\n```\n\n**Memory not loading at session start:**\n\n1. Check the `MEMORY_*_ID` env var is set:\n\n```bash\nagentcore status --type memory --json | jq '.memories[].id'\n```\n\n1. Verify the `actor_id` is consistent across sessions — memory is scoped per actor.\n\n2. Check the namespace paths in your retrieval config match the namespaces used when writing.\n\n---\n\n## Symptom: Agent timeout\n\n**Step 1:** Check the trace for where time is being spent:\n\n```bash\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n```\n\nLook for long-running steps — model calls, tool calls, memory operations.\n\n**Step 2:** Common timeout causes:\n\n**Slow agent initialization:** If the first invocation after an idle period is slow but subsequent requests are fast, the agent is spending too much time initializing. Check for heavy imports at module level, database connections in global scope, or MCP client initialization during startup. Move expensive setup into the request handler or use lazy initialization. See the `agents-harden` skill for optimization guidance.\n\n**Model call timeout:** The model is taking too long. Consider using a faster model for time-sensitive operations (e.g., Haiku instead of Sonnet for simple tasks).\n\n**Tool call timeout:** The Lambda or external API is slow. Check the tool's own logs.\n\n**Memory retrieval timeout:** Semantic search can be slow for large memory stores. Consider reducing `top_k` in your retrieval config.\n\n**VPC connectivity issue:** If the agent is in a VPC, check security group rules and route tables. See `agents-build` (loads [`references\u002Fvpc.md`](..\u002Fagents-build\u002Freferences\u002Fvpc.md)) for VPC-specific debugging.\n\n---\n\n## Symptom: `ServiceQuotaExceededException: maxVms limit exceeded` (despite low observed concurrency)\n\nYour CloudWatch \"concurrent sessions\" metric shows modest numbers (maybe 30–50) but `InvokeAgentRuntime` calls return `ServiceQuotaExceededException: maxVms limit exceeded`.\n\n**What's actually happening:** CloudWatch's concurrent-sessions metric is not the same as live microVM count. The `maxVms` quota counts all environments your account has active — including ones that finished their invocation but haven't been reclaimed yet. Idle-but-not-yet-reclaimed environments count against the quota until `idleRuntimeSessionTimeout` expires (default 900 seconds \u002F 15 minutes) or you explicitly stop them.\n\nIf your code uses a new session ID per request and doesn't call `StopRuntimeSession`, every request leaves an environment sitting idle for 15 minutes counting against the quota.\n\n**Fix order (try in this order before requesting a quota increase):**\n\n1. **Call `StopRuntimeSession` after each logical request completes.** If you're not going to send more requests on this session, stop it explicitly.\n\n   ```python\n   client.stop_runtime_session(\n       agentRuntimeArn=runtime_arn,\n       runtimeSessionId=session_id,\n   )\n   ```\n\n2. **Reuse session IDs across related requests.** If a user interaction produces multiple backend calls, route them to the same session instead of generating a new session ID per call.\n\n3. **Lower `idleRuntimeSessionTimeout`.** If your sessions are short-lived and you can't add `StopRuntimeSession` everywhere, lower the timeout by editing the runtime's `lifecycleConfiguration` in `agentcore\u002Fagentcore.json` and running `agentcore deploy`.\n\n4. **Only after the above, request a quota increase.** See `agents-harden` (loads [`references\u002Flimits.md`](..\u002Fagents-harden\u002Freferences\u002Flimits.md)) — request it through the Service Quotas console (Amazon Bedrock AgentCore), not by filing a support ticket directly.\n\nSee `agents-harden` Session lifecycle management section for the full pattern.\n\n---\n\n## Symptom: 424 Failed Dependency on invoke\n\nThis usually means the agent container failed to start or crashed during initialization.\n\n**Step 1:** Check the agent logs for startup errors:\n\n```bash\nagentcore logs --runtime \u003CAgentName> --since 30m --level error\n```\n\n**Step 2:** Common causes:\n\n**Missing Python dependency:** The agent code imports a package not in `pyproject.toml`. The container starts but crashes on first request. Fix: add the dependency and redeploy.\n\n**Entrypoint crash:** The `main.py` throws an exception during import or `app.run()`. Check logs for the traceback.\n\n**Container image pull failure:** If using Container build, the ECR image may not exist or the execution role lacks `ecr:BatchGetImage`. Check:\n\n```bash\nagentcore status --runtime \u003CAgentName> --json\n```\n\n**Memory resource not ACTIVE:** If the agent code assumes memory is available but the memory resource is still in CREATING state, the entrypoint may fail. Check:\n\n```bash\nagentcore status --type memory\n```\n\n**Initialization timeout:** The agent takes too long to be ready for its first request — heavy imports at module level, synchronous database connections, or MCP client initialization during startup can exceed the service's health-check window. The symptom looks like a 424 on the first invoke but healthy on subsequent ones. Fix: move expensive setup out of module level, use lazy initialization, or warm the agent before production traffic. See `agents-harden` Initialization time section for patterns.\n\n---\n\n## Symptom: Local invocations fail with connection-refused \u002F exit code 7\n\nUsually not an agent bug — the dev server is on a different port than you expect.\n\n**Default ports `agentcore dev` binds:**\n\n| Protocol | Default |\n|---|---|\n| HTTP | 8080 |\n| MCP | 8000 |\n| A2A | 9000 |\n\n**When the default is occupied** (second dev session, a lingering process from a previous run, another service on 8080), the CLI **auto-increments** silently: 8080 → 8081 → 8082. A test harness or `curl` script hardcoded to 8080 will get `Connection refused` (curl exit code 7) while the agent is running fine on 8082.\n\nDiagnose in this order:\n\n1. Read the CLI banner that `agentcore dev` prints — it shows the actual bound port and URL. This is always the source of truth.\n2. If the banner is gone (terminal cleared, running in background), check the log file:\n\n   ```bash\n   tail -20 agentcore\u002F.cli\u002Flogs\u002Fdev\u002F*.log\n   ```\n\n3. Or find the process directly:\n\n   ```bash\n   # macOS \u002F Linux\n   ps aux | grep -E 'agentcore dev|uvicorn' | grep -v grep\n   lsof -iTCP -sTCP:LISTEN -n -P | grep -E '8080|8081|8082|8000|9000'\n   ```\n\n**Fix options:**\n\n- Pin the port explicitly: `agentcore dev --port 8080`\n- Kill the process squatting on the default: `lsof -tiTCP:8080 -sTCP:LISTEN | xargs kill`\n- Update the hardcoded port in your test harness to read from the CLI output or from an env var\n\nThis is also a common source of \"works locally one day, fails the next\" reports — the port shifted between runs.\n\n---\n\n## Symptom: Gateway tool calls failing with auth errors\n\n**Step 1:** Verify the auth type matches the target type. This is the most common gateway error — using the wrong outbound auth for the target:\n\n| Target type | Valid outbound auth |\n|---|---|\n| `mcp-server` | `none`, `oauth`, or IAM (SigV4 via API) |\n| `lambda-function-arn` | IAM only (automatic) |\n| `open-api-schema` | `oauth` or `api-key` (required) |\n| `api-gateway` | `none`, `api-key`, or IAM |\n| `smithy-model` | IAM or `oauth` |\n\n**Step 2:** Check for expired OAuth tokens. If the gateway target uses OAuth, the access token may have expired. Look for auth-related errors:\n\n```bash\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"auth\"\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"401\"\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"403\"\n```\n\nIf tokens are expiring, verify the OAuth credential provider's token endpoint is reachable and the client credentials are still valid. For MCP server targets with OAuth, the gateway handles token refresh automatically — if it's failing, the credential provider config may be wrong.\n\n**Step 3:** Check the credential is configured:\n\n```bash\nagentcore status --type credential\nagentcore status --type gateway --json\n```\n\n---\n\n## Symptom: No traces appearing\n\n**Wait ~15 seconds** — there's a short delay (typically ~10s) between invocation and trace availability.\n\nIf still no traces after ~30 seconds:\n\n1. Verify observability was enabled when the agent was deployed\n2. Check the agent was actually invoked: `agentcore logs --runtime \u003CAgentName> --since 1h`\n3. Check CloudWatch permissions on the execution role\n\n---\n\n## Symptom: CloudWatch logs not appearing\n\nThis is the most common observability issue, especially for Container\u002FDocker builds.\n\nAgentCore doesn't capture raw stdout. It uses OpenTelemetry to ship logs to CloudWatch. Three things must be true:\n\n**1. Your entrypoint must be wrapped with `opentelemetry-instrument`.**\n\nCodeZip builds do this automatically. Docker\u002FContainer builds need it added manually — this is the #1 thing people miss.\n\nIn your Dockerfile CMD:\n\n```dockerfile\n# ✅ Correct — wrapped with opentelemetry-instrument\nCMD [\"opentelemetry-instrument\", \"python\", \"main.py\"]\n\n# ❌ Wrong — no OTEL wrapper, logs won't appear\nCMD [\"python\", \"main.py\"]\n```\n\n**2. Your runtime IAM role needs CloudWatch and X-Ray permissions:**\n\n```\nlogs:CreateLogGroup\nlogs:CreateLogStream\nlogs:PutLogEvents    → scoped to \u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*\nxray:PutTelemetryRecords\nxray:PutTraceSegments → scoped to *\n```\n\nIf using the AgentCore CLI with CodeZip, the CDK scaffold adds these automatically. If using a custom role or Container build, verify they're present.\n\n**3. Use Python's `logging` module, not `print()`.**\n\nOTEL hooks into `logging` automatically — no custom handlers needed. `print()` statements won't appear in CloudWatch.\n\n```python\nimport logging\nlogger = logging.getLogger(__name__)\nlogger.setLevel(logging.INFO)\n\n# ✅ This appears in CloudWatch\nlogger.info(\"Processing request\")\n\n# ❌ This does NOT appear in CloudWatch\nprint(\"Processing request\")\n```\n\n**Also verify:** CloudWatch Transaction Search is enabled in your account. Without it, traces and spans won't appear in the GenAI Observability dashboard.\n\n### Logs missing for Terraform\u002FCDK\u002FIaC-deployed runtimes\n\nA common pattern: a runtime deployed via Terraform, CDK, or a custom IAM role works correctly (returns responses) but no CloudWatch log streams appear — while the same agent code deployed via the AgentCore Console logs fine.\n\nThis is almost always an IAM scoping issue. The execution role for a runtime deployed via the Console gets broad CloudWatch permissions by default. IaC templates often scope those permissions narrowly to `\u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*`, which breaks log stream creation.\n\n**The fix:** `logs:DescribeLogGroups` must have `Resource: \"*\"`, not a scoped resource. The other logs actions can be scoped to the runtime's log group.\n\n```json\n{\n  \"Effect\": \"Allow\",\n  \"Action\": [\n    \"logs:DescribeLogGroups\"\n  ],\n  \"Resource\": \"*\"\n},\n{\n  \"Effect\": \"Allow\",\n  \"Action\": [\n    \"logs:CreateLogGroup\",\n    \"logs:CreateLogStream\",\n    \"logs:PutLogEvents\"\n  ],\n  \"Resource\": \"arn:aws:logs:\u003CREGION>:\u003CACCOUNT_ID>:log-group:\u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*:*\"\n}\n```\n\nAfter updating the execution role's IAM policy, redeploy the runtime with `agentcore deploy` to pick up the new permissions.\n\n---\n\n## Symptom: Streaming connection drops mid-response\n\nYour agent uses SSE or long-polling responses and the connection drops mid-stream. Symptoms in client code:\n\n- `RemoteProtocolError: peer closed connection without sending complete message body`\n- `IncompleteRead` exception while iterating the stream\n- Silent disconnect — no error, no `[DONE]` event, response just stops\n- Happens during multi-tool-use conversations (5+ sequential tool calls)\n- Fails well before any client-side timeout\n\n**Root cause:** Infrastructure-layer idle timeout on streaming connections. If no data flows on the response stream for several minutes (a silent period while a tool executes, for example), a load balancer in front of the runtime terminates the TCP connection.\n\nThe timeout is on **data flowing through the stream**, not on the request total duration. As long as you emit bytes periodically, the connection stays open.\n\n**Fix: emit keepalive events during long-running tool executions.**\n\nPython pattern for a streaming entrypoint:\n\n```python\nimport asyncio\nimport json\nfrom bedrock_agentcore.runtime import BedrockAgentCoreApp\n\napp = BedrockAgentCoreApp()\n\nasync def emit_keepalive(tool_task):\n    \"\"\"Yield heartbeat events every 30s while tool_task is running.\"\"\"\n    while not tool_task.done():\n        yield f\"data: {json.dumps({'type': 'heartbeat'})}\\n\\n\"\n        try:\n            await asyncio.wait_for(asyncio.shield(tool_task), timeout=30)\n        except asyncio.TimeoutError:\n            continue  # tool still running, emit another heartbeat\n\n@app.entrypoint\nasync def invoke(payload, context):\n    async def stream():\n        tool_task = asyncio.create_task(run_long_tool(payload))\n\n        # Emit heartbeats while the tool runs\n        async for event in emit_keepalive(tool_task):\n            yield event\n\n        # Tool completed — emit the real result\n        result = await tool_task\n        yield f\"data: {json.dumps({'type': 'result', 'content': result})}\\n\\n\"\n        yield \"data: [DONE]\\n\\n\"\n\n    return stream()\n```\n\nPick a heartbeat interval of ~30 seconds. Too long risks hitting the idle timeout; too short wastes bandwidth.\n\n**On the client side, filter heartbeat events** before surfacing bytes to the user:\n\n```python\nfor chunk in response.iter_lines():\n    if not chunk:\n        continue\n    data = json.loads(chunk.removeprefix(b\"data: \"))\n    if data.get(\"type\") == \"heartbeat\":\n        continue  # ignore keepalives\n    # process real events\n```\n\n**Alternative: use the SDK's async task API for fire-and-forget patterns.** If the client doesn't need to wait for the result, register the work via `add_async_task` \u002F `complete_async_task` and return the invocation immediately. See `agents-harden` Long-running background tasks section.\n\n---\n\n## Symptom: Traces appear merged across concurrent agent invocations\n\nYou run multiple agent invocations in parallel with unique `runtimeSessionId` values, but the AI Observability dashboard groups them as one session — making it impossible to isolate a single run. Data plane logs show the session IDs are correctly unique 1:1 with request IDs, but the trace view still merges them.\n\n**Most common cause: the caller isn't enabling Active Tracing**, so upstream spans arrive with `Sampled=0`. AgentCore respects upstream trace-sampling decisions by default. If the parent context says \"don't sample,\" spans drop and concurrent invocations can appear merged in the dashboard.\n\n**Fix by caller type:**\n\n**Lambda caller:** Enable Active Tracing on the Lambda function.\n\n```bash\naws lambda update-function-configuration \\\n  --function-name my-caller-function \\\n  --tracing-config Mode=Active\n```\n\nOr in the Lambda console: Configuration → Monitoring and operations tools → AWS X-Ray → Active tracing.\n\n**ECS \u002F EC2 \u002F container caller:** Initialize the AWS X-Ray SDK and ensure outbound calls to AgentCore are instrumented. For Python, use `aws-xray-sdk` and patch the SDK:\n\n```python\nfrom aws_xray_sdk.core import xray_recorder, patch_all\npatch_all()  # patches boto3, requests, etc.\n```\n\n**Direct SDK caller without X-Ray:** If you can't enable upstream tracing, force the runtime to sample by setting an environment variable on the agent:\n\n```\nOTEL_TRACES_SAMPLER=always_on\n```\n\nThis makes the runtime sample every trace regardless of the parent context's sampling decision. Trade-off: higher tracing costs, but the traces are correct.\n\n### Also check: invoking with the endpoint ARN instead of the agent ARN\n\nIf traces show only a single top-level `AgentCore.Runtime.Invoke` span with no child spans, check the ARN your caller is using. The invoke target should be the agent runtime ARN:\n\n```\narn:aws:bedrock-agentcore:\u003Cregion>:\u003Caccount>:runtime\u002F\u003Cruntime-name>\n```\n\nNot the endpoint ARN:\n\n```\narn:aws:bedrock-agentcore:\u003Cregion>:\u003Caccount>:runtime\u002F\u003Cruntime-name>\u002Fruntime-endpoint\u002FDEFAULT\n```\n\nInvoking with the endpoint ARN can bypass the full trace instrumentation path. This is a subtle trap — both ARNs produce successful responses, but only the agent ARN produces complete traces.\n\n---\n\n## Symptom: Runtime stuck in DELETING for hours\n\nYou called `DeleteAgentRuntime`, got a successful response with `status: DELETING`, and the runtime has been stuck in that state for more than 30 minutes. Attempting to delete the default endpoint separately returns `ConflictException: Default endpoints are removed when you delete the agent.`\n\n**What's happening:** The deletion workflow is stuck on the service side. Retrying `DeleteAgentRuntime` won't help — the call succeeds immediately (returning DELETING) but the back-end workflow is the thing that's stuck. Customer-side tooling can't force-complete it.\n\n**What to do:**\n\n1. **Do not keep retrying.** It won't unstick the workflow.\n2. **Open an AWS Support case** at https:\u002F\u002Fconsole.aws.amazon.com\u002Fsupport. Include:\n   - AWS Account ID\n   - Region\n   - Runtime ARN (or `agentRuntimeId`)\n   - The `requestId` and timestamp of the original `DeleteAgentRuntime` call (from CloudTrail)\n   - How long the runtime has been in DELETING state\n3. **Work around it in the meantime.** Deploy a new runtime with a different name if you need to keep shipping. Don't let the stuck resource block your work.\n\nOrphaned resources from a stuck deletion (ENIs, workload identities) may need manual cleanup from the service team as part of the same case.\n\n---\n\n## Framework-specific issues\n\n**LangGraph — model format:**\nOlder versions of `langchain-aws` required the model ID without the cross-region prefix. Recent versions may support cross-region inference profiles — check your installed version:\n\n```bash\npip show langchain-aws | grep Version\n```\n\nIf you hit model errors with LangGraph, try the non-prefixed ID:\n\n```python\n# If cross-region prefix errors in your langchain-aws version:\nllm = init_chat_model(\"anthropic.claude-sonnet-4-5-20250929-v1:0\", model_provider=\"bedrock_converse\")\n\n# If your version supports cross-region profiles (us. = US, eu. = Europe, apac. = Asia Pacific, global. = worldwide):\nllm = init_chat_model(\"global.anthropic.claude-sonnet-4-5-20250929-v1:0\", ...)\n```\n\nVerify against the current langchain-aws release notes: https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain-aws\u002Freleases — cross-region inference profile support has been evolving.\n\n**Google ADK — Gemini only:**\nADK only works with Gemini models. If you're seeing model errors with ADK, check that `GEMINI_API_KEY` is set and you're using a `gemini-*` model ID.\n\n**A2A agents — wrong port:**\nA2A servers must run on port 9000. If your A2A agent isn't responding, check it's not accidentally running on 8080.\n\n---\n\n## Reading a trace\n\nA trace shows the full execution path of one agent invocation. Key sections:\n\n- **Model invocations** — what the model was asked and what it responded\n- **Tool calls** — which tools were called, with what inputs, and what they returned\n- **Memory operations** — what was read from and written to memory\n- **Policy decisions** — what was allowed or denied (if policy engine is attached)\n- **Latency breakdown** — time spent in each component\n\n```bash\n# Download trace to a file for detailed inspection\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName> --output trace.json\ncat trace.json | jq '.trace.orchestrationTrace.modelInvocationOutput'\n```\n\n## Output\n\n- Diagnosis of the specific failure with root cause\n- Specific fix commands or code changes\n- Explanation of what the trace shows (if reading traces)\n- Handoff to the appropriate skill when the fix is outside debug's scope\n\n## After diagnosis — handoff\n\nOnce you've identified the root cause, hand off to the skill that owns the fix:\n\n| Root cause | Hand off to | Detail |\n|---|---|---|\n| Memory misconfigured (wrong strategy, namespace, wiring) | `agents-build` | Load [`references\u002Fmemory.md`](..\u002Fagents-build\u002Freferences\u002Fmemory.md) |\n| Agent invocation from app not working (auth, URL, streaming) | `agents-build` | Load [`references\u002Fintegrate.md`](..\u002Fagents-build\u002Freferences\u002Fintegrate.md) |\n| VPC connectivity (can't reach RDS, no internet, AZ error) | `agents-build` | Load [`references\u002Fvpc.md`](..\u002Fagents-build\u002Freferences\u002Fvpc.md) |\n| Multi-agent delegation not working | `agents-build` | Load [`references\u002Fmulti-agent.md`](..\u002Fagents-build\u002Freferences\u002Fmulti-agent.md) |\n| Custom request headers not reaching agent code | `agents-build` | Load [`references\u002Frequest-headers.md`](..\u002Fagents-build\u002Freferences\u002Frequest-headers.md) |\n| Cross-account invocation from an app in another account | `agents-build` | Load [`references\u002Fintegrate.md`](..\u002Fagents-build\u002Freferences\u002Fintegrate.md) (cross-account section) |\n| Gateway auth misconfigured (401, wrong auth type) | `agents-connect` | Gateway auth matrix |\n| Gateway target type question (Lambda vs OpenAPI vs MCP vs API Gateway) | `agents-connect` | \"What Gateway is and isn't\" section |\n| Policy denying unexpectedly (Cedar, access denied on tool) | `agents-connect` | Load [`references\u002Fpolicy.md`](..\u002Fagents-connect\u002Freferences\u002Fpolicy.md) |\n| Observability not set up (no logs, no traces appearing) | `agents-optimize` | Load [`references\u002Fobservability.md`](..\u002Fagents-optimize\u002Freferences\u002Fobservability.md) |\n| Cold start \u002F initialization too slow | `agents-harden` | Initialization time section |\n| Session lifecycle \u002F `maxVms` \u002F `StopRuntimeSession` | `agents-harden` | Session lifecycle management section |\n| Long-running background tasks being reclaimed | `agents-harden` | Long-running background tasks section |\n| JWT inbound auth failing (403, `allowedClients`\u002F`allowedAudience`, issuer mismatch) | `agents-harden` | Inbound auth section |\n| Throttling \u002F quota error \u002F limit increase request | `agents-harden` | Load [`references\u002Flimits.md`](..\u002Fagents-harden\u002Freferences\u002Flimits.md) |\n| Deploy artifact stale or wrong version | `agents-deploy` | Redeploy workflow |\n| Environment broken (CLI, credentials, Node, uv) | Load [`references\u002Fdoctor.md`](references\u002Fdoctor.md) | Self-contained in this skill |\n\nState the diagnosis clearly, then tell the developer which skill to use next. If the agent can load the referenced skill in the same session, do so.\n",{"data":36,"body":43},{"name":4,"description":6,"allowed-tools":37,"metadata":38},"Read Grep Glob Bash",{"type":39,"version":40,"author":41,"requires-cli":42},"skill","1.0.0","aws-agentcore",">=0.9.0",{"type":44,"children":45},"root",[46,54,60,67,109,114,150,156,167,179,185,192,209,214,220,241,247,252,295,301,306,735,776,789,795,799,805,815,820,838,856,861,994,1004,1009,1130,1185,1188,1194,1204,1262,1267,1277,1352,1362,1388,1396,1459,1470,1480,1534,1544,1627,1630,1636,1645,1702,1707,1725,1744,1753,1776,1779,1785,1793,1801,1854,1880,1907,1915,1931,1982,2003,2006,2012,2021,2078,2083,2092,2110,2120,2130,2148,2178,2181,2195,2214,2240,2253,2261,2405,2417,2420,2426,2431,2440,2495,2503,2521,2547,2565,2608,2618,2643,2660,2663,2669,2674,2689,2750,2783,2788,2974,2982,3012,3017,3020,3026,3035,3184,3193,3367,3372,3381,3432,3435,3441,3451,3456,3480,3483,3489,3494,3499,3514,3519,3524,3572,3580,3589,3594,3617,3636,3713,3723,3729,3734,3747,3773,4094,4106,4109,4115,4120,4166,4176,4188,4196,4201,4456,4461,4471,4534,4567,4570,4576,4589,4607,4615,4625,4683,4688,4706,4729,4739,4748,4753,4759,4772,4781,4786,4795,4800,4803,4809,4836,4853,4861,4953,4958,4961,4967,4985,5023,5028,5074,5087,5113,5123,5126,5132,5137,5190,5300,5306,5329,5335,5340,5834,5839],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"debug",[52],{"type":53,"value":50},"text",{"type":47,"tag":55,"props":56,"children":57},"p",{},[58],{"type":53,"value":59},"Diagnose why your AgentCore agent or environment isn't working correctly.",{"type":47,"tag":61,"props":62,"children":64},"h2",{"id":63},"when-to-use",[65],{"type":53,"value":66},"When to use",{"type":47,"tag":68,"props":69,"children":70},"ul",{},[71,77,82,87,92,97],{"type":47,"tag":72,"props":73,"children":74},"li",{},[75],{"type":53,"value":76},"Your agent is returning wrong answers or errors",{"type":47,"tag":72,"props":78,"children":79},{},[80],{"type":53,"value":81},"Tool calls are failing or timing out",{"type":47,"tag":72,"props":83,"children":84},{},[85],{"type":53,"value":86},"Agent works locally but fails after deploying",{"type":47,"tag":72,"props":88,"children":89},{},[90],{"type":53,"value":91},"Logs aren't showing up in CloudWatch",{"type":47,"tag":72,"props":93,"children":94},{},[95],{"type":53,"value":96},"The AgentCore CLI isn't working or environment seems broken",{"type":47,"tag":72,"props":98,"children":99},{},[100,107],{"type":47,"tag":101,"props":102,"children":104},"code",{"className":103},[],[105],{"type":53,"value":106},"agentcore",{"type":53,"value":108}," command not found or prerequisites are missing",{"type":47,"tag":55,"props":110,"children":111},{},[112],{"type":53,"value":113},"Do NOT use for:",{"type":47,"tag":68,"props":115,"children":116},{},[117,128,139],{"type":47,"tag":72,"props":118,"children":119},{},[120,122],{"type":53,"value":121},"Deploy failures (CDK errors, IAM during deploy) → use ",{"type":47,"tag":101,"props":123,"children":125},{"className":124},[],[126],{"type":53,"value":127},"agents-deploy",{"type":47,"tag":72,"props":129,"children":130},{},[131,133],{"type":53,"value":132},"Scaffolding a new project → use ",{"type":47,"tag":101,"props":134,"children":136},{"className":135},[],[137],{"type":53,"value":138},"agents-get-started",{"type":47,"tag":72,"props":140,"children":141},{},[142,144],{"type":53,"value":143},"Measuring quality or setting up monitoring → use ",{"type":47,"tag":101,"props":145,"children":147},{"className":146},[],[148],{"type":53,"value":149},"agents-optimize",{"type":47,"tag":61,"props":151,"children":153},{"id":152},"input",[154],{"type":53,"value":155},"Input",{"type":47,"tag":55,"props":157,"children":158},{},[159,165],{"type":47,"tag":101,"props":160,"children":162},{"className":161},[],[163],{"type":53,"value":164},"$ARGUMENTS",{"type":53,"value":166}," is optional:",{"type":47,"tag":168,"props":169,"children":173},"pre",{"className":170,"code":172,"language":53},[171],"language-text","\u002Fagents-debug                      # interactive — describe what's wrong\n\u002Fagents-debug traces               # read and explain recent traces\n\u002Fagents-debug logs                 # search recent logs for errors\n\u002Fagents-debug memory               # diagnose memory recall issues specifically\n\u002Fagents-debug doctor               # check environment prerequisites\n",[174],{"type":47,"tag":101,"props":175,"children":177},{"__ignoreMap":176},"",[178],{"type":53,"value":172},{"type":47,"tag":61,"props":180,"children":182},{"id":181},"process",[183],{"type":53,"value":184},"Process",{"type":47,"tag":186,"props":187,"children":189},"h3",{"id":188},"step-0-determine-problem-type",[190],{"type":53,"value":191},"Step 0: Determine problem type",{"type":47,"tag":55,"props":193,"children":194},{},[195,197,207],{"type":53,"value":196},"If the developer's issue is about the CLI itself (command not found, prerequisites, environment setup), load ",{"type":47,"tag":198,"props":199,"children":201},"a",{"href":200},"references\u002Fdoctor.md",[202],{"type":47,"tag":101,"props":203,"children":205},{"className":204},[],[206],{"type":53,"value":200},{"type":53,"value":208}," and follow its diagnostic checklist.",{"type":47,"tag":55,"props":210,"children":211},{},[212],{"type":53,"value":213},"If the issue is about agent behavior (wrong answers, errors, timeouts, tool failures), continue with Step 1 below.",{"type":47,"tag":186,"props":215,"children":217},{"id":216},"step-1-verify-cli-version",[218],{"type":53,"value":219},"Step 1: Verify CLI version",{"type":47,"tag":55,"props":221,"children":222},{},[223,225,231,233,239],{"type":53,"value":224},"Run ",{"type":47,"tag":101,"props":226,"children":228},{"className":227},[],[229],{"type":53,"value":230},"agentcore --version",{"type":53,"value":232},". This skill requires v0.9.0 or later. If the version is older, tell the developer to run ",{"type":47,"tag":101,"props":234,"children":236},{"className":235},[],[237],{"type":53,"value":238},"agentcore update",{"type":53,"value":240}," before proceeding.",{"type":47,"tag":186,"props":242,"children":244},{"id":243},"step-2-understand-the-symptom",[245],{"type":53,"value":246},"Step 2: Understand the symptom",{"type":47,"tag":55,"props":248,"children":249},{},[250],{"type":53,"value":251},"Ask (or infer from context):",{"type":47,"tag":253,"props":254,"children":255},"blockquote",{},[256,261],{"type":47,"tag":55,"props":257,"children":258},{},[259],{"type":53,"value":260},"\"What's happening?",{"type":47,"tag":262,"props":263,"children":264},"ol",{},[265,270,275,280,285,290],{"type":47,"tag":72,"props":266,"children":267},{},[268],{"type":53,"value":269},"The agent returns an error message",{"type":47,"tag":72,"props":271,"children":272},{},[273],{"type":53,"value":274},"The agent returns a wrong or unhelpful answer",{"type":47,"tag":72,"props":276,"children":277},{},[278],{"type":53,"value":279},"A specific tool call is failing",{"type":47,"tag":72,"props":281,"children":282},{},[283],{"type":53,"value":284},"Memory isn't working (agent doesn't remember things)",{"type":47,"tag":72,"props":286,"children":287},{},[288],{"type":53,"value":289},"The agent is slow or timing out",{"type":47,"tag":72,"props":291,"children":292},{},[293],{"type":53,"value":294},"I want to understand what the agent did in a specific session\"",{"type":47,"tag":186,"props":296,"children":298},{"id":297},"step-3-read-traces-and-logs-automatically",[299],{"type":53,"value":300},"Step 3: Read traces and logs automatically",{"type":47,"tag":55,"props":302,"children":303},{},[304],{"type":53,"value":305},"Don't ask the developer to paste logs — read them directly.",{"type":47,"tag":168,"props":307,"children":311},{"className":308,"code":309,"language":310,"meta":176,"style":176},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# List recent traces\nagentcore traces list --runtime \u003CAgentName> --since 1h\n\n# Get the most recent trace ID\nagentcore traces list --runtime \u003CAgentName> --since 1h --limit 1\n\n# Download and read the trace\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n\n# Search logs for errors\nagentcore logs --runtime \u003CAgentName> --since 1h --level error\n\n# Search logs for a specific pattern\nagentcore logs --runtime \u003CAgentName> --since 2h --query \"timeout\"\nagentcore logs --runtime \u003CAgentName> --since 2h --query \"model access\"\n","bash",[312],{"type":47,"tag":101,"props":313,"children":314},{"__ignoreMap":176},[315,327,384,394,403,459,467,476,532,540,549,600,608,617,678],{"type":47,"tag":316,"props":317,"children":320},"span",{"class":318,"line":319},"line",1,[321],{"type":47,"tag":316,"props":322,"children":324},{"style":323},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[325],{"type":53,"value":326},"# List recent traces\n",{"type":47,"tag":316,"props":328,"children":330},{"class":318,"line":329},2,[331,336,342,347,352,358,363,369,374,379],{"type":47,"tag":316,"props":332,"children":334},{"style":333},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[335],{"type":53,"value":106},{"type":47,"tag":316,"props":337,"children":339},{"style":338},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[340],{"type":53,"value":341}," traces",{"type":47,"tag":316,"props":343,"children":344},{"style":338},[345],{"type":53,"value":346}," list",{"type":47,"tag":316,"props":348,"children":349},{"style":338},[350],{"type":53,"value":351}," --runtime",{"type":47,"tag":316,"props":353,"children":355},{"style":354},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[356],{"type":53,"value":357}," \u003C",{"type":47,"tag":316,"props":359,"children":360},{"style":338},[361],{"type":53,"value":362},"AgentNam",{"type":47,"tag":316,"props":364,"children":366},{"style":365},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[367],{"type":53,"value":368},"e",{"type":47,"tag":316,"props":370,"children":371},{"style":354},[372],{"type":53,"value":373},">",{"type":47,"tag":316,"props":375,"children":376},{"style":338},[377],{"type":53,"value":378}," --since",{"type":47,"tag":316,"props":380,"children":381},{"style":338},[382],{"type":53,"value":383}," 1h\n",{"type":47,"tag":316,"props":385,"children":387},{"class":318,"line":386},3,[388],{"type":47,"tag":316,"props":389,"children":391},{"emptyLinePlaceholder":390},true,[392],{"type":53,"value":393},"\n",{"type":47,"tag":316,"props":395,"children":397},{"class":318,"line":396},4,[398],{"type":47,"tag":316,"props":399,"children":400},{"style":323},[401],{"type":53,"value":402},"# Get the most recent trace ID\n",{"type":47,"tag":316,"props":404,"children":406},{"class":318,"line":405},5,[407,411,415,419,423,427,431,435,439,443,448,453],{"type":47,"tag":316,"props":408,"children":409},{"style":333},[410],{"type":53,"value":106},{"type":47,"tag":316,"props":412,"children":413},{"style":338},[414],{"type":53,"value":341},{"type":47,"tag":316,"props":416,"children":417},{"style":338},[418],{"type":53,"value":346},{"type":47,"tag":316,"props":420,"children":421},{"style":338},[422],{"type":53,"value":351},{"type":47,"tag":316,"props":424,"children":425},{"style":354},[426],{"type":53,"value":357},{"type":47,"tag":316,"props":428,"children":429},{"style":338},[430],{"type":53,"value":362},{"type":47,"tag":316,"props":432,"children":433},{"style":365},[434],{"type":53,"value":368},{"type":47,"tag":316,"props":436,"children":437},{"style":354},[438],{"type":53,"value":373},{"type":47,"tag":316,"props":440,"children":441},{"style":338},[442],{"type":53,"value":378},{"type":47,"tag":316,"props":444,"children":445},{"style":338},[446],{"type":53,"value":447}," 1h",{"type":47,"tag":316,"props":449,"children":450},{"style":338},[451],{"type":53,"value":452}," --limit",{"type":47,"tag":316,"props":454,"children":456},{"style":455},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[457],{"type":53,"value":458}," 1\n",{"type":47,"tag":316,"props":460,"children":462},{"class":318,"line":461},6,[463],{"type":47,"tag":316,"props":464,"children":465},{"emptyLinePlaceholder":390},[466],{"type":53,"value":393},{"type":47,"tag":316,"props":468,"children":470},{"class":318,"line":469},7,[471],{"type":47,"tag":316,"props":472,"children":473},{"style":323},[474],{"type":53,"value":475},"# Download and read the trace\n",{"type":47,"tag":316,"props":477,"children":479},{"class":318,"line":478},8,[480,484,488,493,497,502,507,511,515,519,523,527],{"type":47,"tag":316,"props":481,"children":482},{"style":333},[483],{"type":53,"value":106},{"type":47,"tag":316,"props":485,"children":486},{"style":338},[487],{"type":53,"value":341},{"type":47,"tag":316,"props":489,"children":490},{"style":338},[491],{"type":53,"value":492}," get",{"type":47,"tag":316,"props":494,"children":495},{"style":354},[496],{"type":53,"value":357},{"type":47,"tag":316,"props":498,"children":499},{"style":338},[500],{"type":53,"value":501},"traceI",{"type":47,"tag":316,"props":503,"children":504},{"style":365},[505],{"type":53,"value":506},"d",{"type":47,"tag":316,"props":508,"children":509},{"style":354},[510],{"type":53,"value":373},{"type":47,"tag":316,"props":512,"children":513},{"style":338},[514],{"type":53,"value":351},{"type":47,"tag":316,"props":516,"children":517},{"style":354},[518],{"type":53,"value":357},{"type":47,"tag":316,"props":520,"children":521},{"style":338},[522],{"type":53,"value":362},{"type":47,"tag":316,"props":524,"children":525},{"style":365},[526],{"type":53,"value":368},{"type":47,"tag":316,"props":528,"children":529},{"style":354},[530],{"type":53,"value":531},">\n",{"type":47,"tag":316,"props":533,"children":535},{"class":318,"line":534},9,[536],{"type":47,"tag":316,"props":537,"children":538},{"emptyLinePlaceholder":390},[539],{"type":53,"value":393},{"type":47,"tag":316,"props":541,"children":543},{"class":318,"line":542},10,[544],{"type":47,"tag":316,"props":545,"children":546},{"style":323},[547],{"type":53,"value":548},"# Search logs for errors\n",{"type":47,"tag":316,"props":550,"children":552},{"class":318,"line":551},11,[553,557,562,566,570,574,578,582,586,590,595],{"type":47,"tag":316,"props":554,"children":555},{"style":333},[556],{"type":53,"value":106},{"type":47,"tag":316,"props":558,"children":559},{"style":338},[560],{"type":53,"value":561}," logs",{"type":47,"tag":316,"props":563,"children":564},{"style":338},[565],{"type":53,"value":351},{"type":47,"tag":316,"props":567,"children":568},{"style":354},[569],{"type":53,"value":357},{"type":47,"tag":316,"props":571,"children":572},{"style":338},[573],{"type":53,"value":362},{"type":47,"tag":316,"props":575,"children":576},{"style":365},[577],{"type":53,"value":368},{"type":47,"tag":316,"props":579,"children":580},{"style":354},[581],{"type":53,"value":373},{"type":47,"tag":316,"props":583,"children":584},{"style":338},[585],{"type":53,"value":378},{"type":47,"tag":316,"props":587,"children":588},{"style":338},[589],{"type":53,"value":447},{"type":47,"tag":316,"props":591,"children":592},{"style":338},[593],{"type":53,"value":594}," --level",{"type":47,"tag":316,"props":596,"children":597},{"style":338},[598],{"type":53,"value":599}," error\n",{"type":47,"tag":316,"props":601,"children":603},{"class":318,"line":602},12,[604],{"type":47,"tag":316,"props":605,"children":606},{"emptyLinePlaceholder":390},[607],{"type":53,"value":393},{"type":47,"tag":316,"props":609,"children":611},{"class":318,"line":610},13,[612],{"type":47,"tag":316,"props":613,"children":614},{"style":323},[615],{"type":53,"value":616},"# Search logs for a specific pattern\n",{"type":47,"tag":316,"props":618,"children":620},{"class":318,"line":619},14,[621,625,629,633,637,641,645,649,653,658,663,668,673],{"type":47,"tag":316,"props":622,"children":623},{"style":333},[624],{"type":53,"value":106},{"type":47,"tag":316,"props":626,"children":627},{"style":338},[628],{"type":53,"value":561},{"type":47,"tag":316,"props":630,"children":631},{"style":338},[632],{"type":53,"value":351},{"type":47,"tag":316,"props":634,"children":635},{"style":354},[636],{"type":53,"value":357},{"type":47,"tag":316,"props":638,"children":639},{"style":338},[640],{"type":53,"value":362},{"type":47,"tag":316,"props":642,"children":643},{"style":365},[644],{"type":53,"value":368},{"type":47,"tag":316,"props":646,"children":647},{"style":354},[648],{"type":53,"value":373},{"type":47,"tag":316,"props":650,"children":651},{"style":338},[652],{"type":53,"value":378},{"type":47,"tag":316,"props":654,"children":655},{"style":338},[656],{"type":53,"value":657}," 2h",{"type":47,"tag":316,"props":659,"children":660},{"style":338},[661],{"type":53,"value":662}," --query",{"type":47,"tag":316,"props":664,"children":665},{"style":354},[666],{"type":53,"value":667}," \"",{"type":47,"tag":316,"props":669,"children":670},{"style":338},[671],{"type":53,"value":672},"timeout",{"type":47,"tag":316,"props":674,"children":675},{"style":354},[676],{"type":53,"value":677},"\"\n",{"type":47,"tag":316,"props":679,"children":681},{"class":318,"line":680},15,[682,686,690,694,698,702,706,710,714,718,722,726,731],{"type":47,"tag":316,"props":683,"children":684},{"style":333},[685],{"type":53,"value":106},{"type":47,"tag":316,"props":687,"children":688},{"style":338},[689],{"type":53,"value":561},{"type":47,"tag":316,"props":691,"children":692},{"style":338},[693],{"type":53,"value":351},{"type":47,"tag":316,"props":695,"children":696},{"style":354},[697],{"type":53,"value":357},{"type":47,"tag":316,"props":699,"children":700},{"style":338},[701],{"type":53,"value":362},{"type":47,"tag":316,"props":703,"children":704},{"style":365},[705],{"type":53,"value":368},{"type":47,"tag":316,"props":707,"children":708},{"style":354},[709],{"type":53,"value":373},{"type":47,"tag":316,"props":711,"children":712},{"style":338},[713],{"type":53,"value":378},{"type":47,"tag":316,"props":715,"children":716},{"style":338},[717],{"type":53,"value":657},{"type":47,"tag":316,"props":719,"children":720},{"style":338},[721],{"type":53,"value":662},{"type":47,"tag":316,"props":723,"children":724},{"style":354},[725],{"type":53,"value":667},{"type":47,"tag":316,"props":727,"children":728},{"style":338},[729],{"type":53,"value":730},"model access",{"type":47,"tag":316,"props":732,"children":733},{"style":354},[734],{"type":53,"value":677},{"type":47,"tag":55,"props":736,"children":737},{},[738,744,746,751,753,759,761,767,769,774],{"type":47,"tag":739,"props":740,"children":741},"strong",{},[742],{"type":53,"value":743},"Important:",{"type":53,"value":745}," CloudWatch put-to-get latency is ",{"type":47,"tag":739,"props":747,"children":748},{},[749],{"type":53,"value":750},"~10 seconds end-to-end",{"type":53,"value":752}," — that's the delay from when a span is emitted to when it's readable by ",{"type":47,"tag":101,"props":754,"children":756},{"className":755},[],[757],{"type":53,"value":758},"agentcore traces get",{"type":53,"value":760}," or ",{"type":47,"tag":101,"props":762,"children":764},{"className":763},[],[765],{"type":53,"value":766},"agentcore run eval",{"type":53,"value":768},". There is ",{"type":47,"tag":739,"props":770,"children":771},{},[772],{"type":53,"value":773},"no separate \"trace ingested but eval not ready yet\" window",{"type":53,"value":775},"; the same ingestion step unlocks both paths. Older skills and docs said 30–60s for traces and 2–5 minutes for evals — both are stale. If you just invoked the agent, wait ~15 seconds and both trace reads and evals will work.",{"type":47,"tag":55,"props":777,"children":778},{},[779,781,787],{"type":53,"value":780},"Read ",{"type":47,"tag":101,"props":782,"children":784},{"className":783},[],[785],{"type":53,"value":786},"agentcore\u002Fagentcore.json",{"type":53,"value":788}," to get the agent name if not provided.",{"type":47,"tag":186,"props":790,"children":792},{"id":791},"step-4-diagnose-by-symptom",[793],{"type":53,"value":794},"Step 4: Diagnose by symptom",{"type":47,"tag":796,"props":797,"children":798},"hr",{},[],{"type":47,"tag":61,"props":800,"children":802},{"id":801},"symptom-model-access-denied-or-model-error",[803],{"type":53,"value":804},"Symptom: \"model access denied\" or model error",{"type":47,"tag":55,"props":806,"children":807},{},[808,813],{"type":47,"tag":739,"props":809,"children":810},{},[811],{"type":53,"value":812},"Most common cause:",{"type":53,"value":814}," The model isn't enabled in the Bedrock console for your region.",{"type":47,"tag":55,"props":816,"children":817},{},[818],{"type":53,"value":819},"Fix:",{"type":47,"tag":262,"props":821,"children":822},{},[823,828,833],{"type":47,"tag":72,"props":824,"children":825},{},[826],{"type":53,"value":827},"Go to AWS Console → Amazon Bedrock → Model access",{"type":47,"tag":72,"props":829,"children":830},{},[831],{"type":53,"value":832},"Enable the model your agent uses",{"type":47,"tag":72,"props":834,"children":835},{},[836],{"type":53,"value":837},"Wait 1–2 minutes for access to propagate",{"type":47,"tag":55,"props":839,"children":840},{},[841,846,848,854],{"type":47,"tag":739,"props":842,"children":843},{},[844],{"type":53,"value":845},"Second cause:",{"type":53,"value":847}," The execution role is missing ",{"type":47,"tag":101,"props":849,"children":851},{"className":850},[],[852],{"type":53,"value":853},"bedrock:InvokeModel",{"type":53,"value":855},".",{"type":47,"tag":55,"props":857,"children":858},{},[859],{"type":53,"value":860},"Check:",{"type":47,"tag":168,"props":862,"children":864},{"className":308,"code":863,"language":310,"meta":176,"style":176},"aws iam simulate-principal-policy \\\n  --policy-source-arn $(agentcore status --json | jq -r '.runtimes[0].executionRoleArn') \\\n  --action-names bedrock:InvokeModel \\\n  --resource-arns \"arn:aws:bedrock:*::foundation-model\u002F*\"\n",[865],{"type":47,"tag":101,"props":866,"children":867},{"__ignoreMap":176},[868,890,956,973],{"type":47,"tag":316,"props":869,"children":870},{"class":318,"line":319},[871,875,880,885],{"type":47,"tag":316,"props":872,"children":873},{"style":333},[874],{"type":53,"value":8},{"type":47,"tag":316,"props":876,"children":877},{"style":338},[878],{"type":53,"value":879}," iam",{"type":47,"tag":316,"props":881,"children":882},{"style":338},[883],{"type":53,"value":884}," simulate-principal-policy",{"type":47,"tag":316,"props":886,"children":887},{"style":365},[888],{"type":53,"value":889}," \\\n",{"type":47,"tag":316,"props":891,"children":892},{"class":318,"line":329},[893,898,903,907,912,917,922,927,932,937,942,947,952],{"type":47,"tag":316,"props":894,"children":895},{"style":338},[896],{"type":53,"value":897},"  --policy-source-arn",{"type":47,"tag":316,"props":899,"children":900},{"style":354},[901],{"type":53,"value":902}," $(",{"type":47,"tag":316,"props":904,"children":905},{"style":333},[906],{"type":53,"value":106},{"type":47,"tag":316,"props":908,"children":909},{"style":338},[910],{"type":53,"value":911}," status",{"type":47,"tag":316,"props":913,"children":914},{"style":338},[915],{"type":53,"value":916}," --json",{"type":47,"tag":316,"props":918,"children":919},{"style":354},[920],{"type":53,"value":921}," |",{"type":47,"tag":316,"props":923,"children":924},{"style":333},[925],{"type":53,"value":926}," jq",{"type":47,"tag":316,"props":928,"children":929},{"style":338},[930],{"type":53,"value":931}," -r",{"type":47,"tag":316,"props":933,"children":934},{"style":354},[935],{"type":53,"value":936}," '",{"type":47,"tag":316,"props":938,"children":939},{"style":338},[940],{"type":53,"value":941},".runtimes[0].executionRoleArn",{"type":47,"tag":316,"props":943,"children":944},{"style":354},[945],{"type":53,"value":946},"'",{"type":47,"tag":316,"props":948,"children":949},{"style":354},[950],{"type":53,"value":951},")",{"type":47,"tag":316,"props":953,"children":954},{"style":365},[955],{"type":53,"value":889},{"type":47,"tag":316,"props":957,"children":958},{"class":318,"line":386},[959,964,969],{"type":47,"tag":316,"props":960,"children":961},{"style":338},[962],{"type":53,"value":963},"  --action-names",{"type":47,"tag":316,"props":965,"children":966},{"style":338},[967],{"type":53,"value":968}," bedrock:InvokeModel",{"type":47,"tag":316,"props":970,"children":971},{"style":365},[972],{"type":53,"value":889},{"type":47,"tag":316,"props":974,"children":975},{"class":318,"line":396},[976,981,985,990],{"type":47,"tag":316,"props":977,"children":978},{"style":338},[979],{"type":53,"value":980},"  --resource-arns",{"type":47,"tag":316,"props":982,"children":983},{"style":354},[984],{"type":53,"value":667},{"type":47,"tag":316,"props":986,"children":987},{"style":338},[988],{"type":53,"value":989},"arn:aws:bedrock:*::foundation-model\u002F*",{"type":47,"tag":316,"props":991,"children":992},{"style":354},[993],{"type":53,"value":677},{"type":47,"tag":55,"props":995,"children":996},{},[997,1002],{"type":47,"tag":739,"props":998,"children":999},{},[1000],{"type":53,"value":1001},"Third cause:",{"type":53,"value":1003}," Cross-region inference profile requires model access in all regions.",{"type":47,"tag":55,"props":1005,"children":1006},{},[1007],{"type":53,"value":1008},"Model IDs starting with a geographic prefix are cross-region inference profiles that route requests within that geography:",{"type":47,"tag":1010,"props":1011,"children":1012},"table",{},[1013,1037],{"type":47,"tag":1014,"props":1015,"children":1016},"thead",{},[1017],{"type":47,"tag":1018,"props":1019,"children":1020},"tr",{},[1021,1027,1032],{"type":47,"tag":1022,"props":1023,"children":1024},"th",{},[1025],{"type":53,"value":1026},"Prefix",{"type":47,"tag":1022,"props":1028,"children":1029},{},[1030],{"type":53,"value":1031},"Geography",{"type":47,"tag":1022,"props":1033,"children":1034},{},[1035],{"type":53,"value":1036},"Example destination regions",{"type":47,"tag":1038,"props":1039,"children":1040},"tbody",{},[1041,1064,1086,1108],{"type":47,"tag":1018,"props":1042,"children":1043},{},[1044,1054,1059],{"type":47,"tag":1045,"props":1046,"children":1047},"td",{},[1048],{"type":47,"tag":101,"props":1049,"children":1051},{"className":1050},[],[1052],{"type":53,"value":1053},"us.",{"type":47,"tag":1045,"props":1055,"children":1056},{},[1057],{"type":53,"value":1058},"United States",{"type":47,"tag":1045,"props":1060,"children":1061},{},[1062],{"type":53,"value":1063},"us-east-1, us-east-2, us-west-2",{"type":47,"tag":1018,"props":1065,"children":1066},{},[1067,1076,1081],{"type":47,"tag":1045,"props":1068,"children":1069},{},[1070],{"type":47,"tag":101,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":53,"value":1075},"eu.",{"type":47,"tag":1045,"props":1077,"children":1078},{},[1079],{"type":53,"value":1080},"Europe",{"type":47,"tag":1045,"props":1082,"children":1083},{},[1084],{"type":53,"value":1085},"eu-central-1, eu-west-1, eu-west-2, eu-west-3",{"type":47,"tag":1018,"props":1087,"children":1088},{},[1089,1098,1103],{"type":47,"tag":1045,"props":1090,"children":1091},{},[1092],{"type":47,"tag":101,"props":1093,"children":1095},{"className":1094},[],[1096],{"type":53,"value":1097},"apac.",{"type":47,"tag":1045,"props":1099,"children":1100},{},[1101],{"type":53,"value":1102},"Asia Pacific",{"type":47,"tag":1045,"props":1104,"children":1105},{},[1106],{"type":53,"value":1107},"ap-northeast-1, ap-southeast-1, ap-southeast-2, ap-south-1",{"type":47,"tag":1018,"props":1109,"children":1110},{},[1111,1120,1125],{"type":47,"tag":1045,"props":1112,"children":1113},{},[1114],{"type":47,"tag":101,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":53,"value":1119},"global.",{"type":47,"tag":1045,"props":1121,"children":1122},{},[1123],{"type":53,"value":1124},"All commercial regions worldwide",{"type":47,"tag":1045,"props":1126,"children":1127},{},[1128],{"type":53,"value":1129},"All supported regions",{"type":47,"tag":55,"props":1131,"children":1132},{},[1133,1135,1140,1142,1148,1150,1155,1157,1162,1164,1169,1171,1176,1178,1183],{"type":53,"value":1134},"The AgentCore CLI scaffolds ",{"type":47,"tag":101,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":53,"value":1119},{"type":53,"value":1141}," by default (e.g., ",{"type":47,"tag":101,"props":1143,"children":1145},{"className":1144},[],[1146],{"type":53,"value":1147},"global.anthropic.claude-sonnet-4-5-20250929-v1:0",{"type":53,"value":1149},"). All prefixes require model access enabled in every destination region the profile covers. For ",{"type":47,"tag":101,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":53,"value":1053},{"type":53,"value":1156}," profiles, enable in all US regions; for ",{"type":47,"tag":101,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":53,"value":1075},{"type":53,"value":1163},", all EU regions; for ",{"type":47,"tag":101,"props":1165,"children":1167},{"className":1166},[],[1168],{"type":53,"value":1119},{"type":53,"value":1170},", all supported regions. Not all models support all prefixes — ",{"type":47,"tag":101,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":53,"value":1119},{"type":53,"value":1177}," is currently available for select models only. Use ",{"type":47,"tag":101,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":53,"value":1119},{"type":53,"value":1184}," for maximum throughput when available, or a geographic prefix when data residency requirements constrain where inference can run. Check the Bedrock inference profiles docs for current model × prefix availability.",{"type":47,"tag":796,"props":1186,"children":1187},{},[],{"type":47,"tag":61,"props":1189,"children":1191},{"id":1190},"symptom-tool-call-failing",[1192],{"type":53,"value":1193},"Symptom: Tool call failing",{"type":47,"tag":55,"props":1195,"children":1196},{},[1197,1202],{"type":47,"tag":739,"props":1198,"children":1199},{},[1200],{"type":53,"value":1201},"Step 1:",{"type":53,"value":1203}," Find the failing tool call in the trace:",{"type":47,"tag":168,"props":1205,"children":1207},{"className":308,"code":1206,"language":310,"meta":176,"style":176},"agentcore traces get \u003CtraceId> --runtime \u003CAgentName>\n",[1208],{"type":47,"tag":101,"props":1209,"children":1210},{"__ignoreMap":176},[1211],{"type":47,"tag":316,"props":1212,"children":1213},{"class":318,"line":319},[1214,1218,1222,1226,1230,1234,1238,1242,1246,1250,1254,1258],{"type":47,"tag":316,"props":1215,"children":1216},{"style":333},[1217],{"type":53,"value":106},{"type":47,"tag":316,"props":1219,"children":1220},{"style":338},[1221],{"type":53,"value":341},{"type":47,"tag":316,"props":1223,"children":1224},{"style":338},[1225],{"type":53,"value":492},{"type":47,"tag":316,"props":1227,"children":1228},{"style":354},[1229],{"type":53,"value":357},{"type":47,"tag":316,"props":1231,"children":1232},{"style":338},[1233],{"type":53,"value":501},{"type":47,"tag":316,"props":1235,"children":1236},{"style":365},[1237],{"type":53,"value":506},{"type":47,"tag":316,"props":1239,"children":1240},{"style":354},[1241],{"type":53,"value":373},{"type":47,"tag":316,"props":1243,"children":1244},{"style":338},[1245],{"type":53,"value":351},{"type":47,"tag":316,"props":1247,"children":1248},{"style":354},[1249],{"type":53,"value":357},{"type":47,"tag":316,"props":1251,"children":1252},{"style":338},[1253],{"type":53,"value":362},{"type":47,"tag":316,"props":1255,"children":1256},{"style":365},[1257],{"type":53,"value":368},{"type":47,"tag":316,"props":1259,"children":1260},{"style":354},[1261],{"type":53,"value":531},{"type":47,"tag":55,"props":1263,"children":1264},{},[1265],{"type":53,"value":1266},"Look for tool call entries with error status.",{"type":47,"tag":55,"props":1268,"children":1269},{},[1270,1275],{"type":47,"tag":739,"props":1271,"children":1272},{},[1273],{"type":53,"value":1274},"Step 2:",{"type":53,"value":1276}," Check the gateway status:",{"type":47,"tag":168,"props":1278,"children":1280},{"className":308,"code":1279,"language":310,"meta":176,"style":176},"agentcore status --type gateway\nagentcore fetch access --name \u003CAgentName> --type agent\n",[1281],{"type":47,"tag":101,"props":1282,"children":1283},{"__ignoreMap":176},[1284,1305],{"type":47,"tag":316,"props":1285,"children":1286},{"class":318,"line":319},[1287,1291,1295,1300],{"type":47,"tag":316,"props":1288,"children":1289},{"style":333},[1290],{"type":53,"value":106},{"type":47,"tag":316,"props":1292,"children":1293},{"style":338},[1294],{"type":53,"value":911},{"type":47,"tag":316,"props":1296,"children":1297},{"style":338},[1298],{"type":53,"value":1299}," --type",{"type":47,"tag":316,"props":1301,"children":1302},{"style":338},[1303],{"type":53,"value":1304}," gateway\n",{"type":47,"tag":316,"props":1306,"children":1307},{"class":318,"line":329},[1308,1312,1317,1322,1327,1331,1335,1339,1343,1347],{"type":47,"tag":316,"props":1309,"children":1310},{"style":333},[1311],{"type":53,"value":106},{"type":47,"tag":316,"props":1313,"children":1314},{"style":338},[1315],{"type":53,"value":1316}," fetch",{"type":47,"tag":316,"props":1318,"children":1319},{"style":338},[1320],{"type":53,"value":1321}," access",{"type":47,"tag":316,"props":1323,"children":1324},{"style":338},[1325],{"type":53,"value":1326}," --name",{"type":47,"tag":316,"props":1328,"children":1329},{"style":354},[1330],{"type":53,"value":357},{"type":47,"tag":316,"props":1332,"children":1333},{"style":338},[1334],{"type":53,"value":362},{"type":47,"tag":316,"props":1336,"children":1337},{"style":365},[1338],{"type":53,"value":368},{"type":47,"tag":316,"props":1340,"children":1341},{"style":354},[1342],{"type":53,"value":373},{"type":47,"tag":316,"props":1344,"children":1345},{"style":338},[1346],{"type":53,"value":1299},{"type":47,"tag":316,"props":1348,"children":1349},{"style":338},[1350],{"type":53,"value":1351}," agent\n",{"type":47,"tag":55,"props":1353,"children":1354},{},[1355,1360],{"type":47,"tag":739,"props":1356,"children":1357},{},[1358],{"type":53,"value":1359},"Step 3:",{"type":53,"value":1361}," Common tool call failures:",{"type":47,"tag":55,"props":1363,"children":1364},{},[1365,1370,1372,1378,1380,1386],{"type":47,"tag":739,"props":1366,"children":1367},{},[1368],{"type":53,"value":1369},"Gateway URL not set (local dev):",{"type":53,"value":1371},"\nThe ",{"type":47,"tag":101,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":53,"value":1377},"AGENTCORE_GATEWAY_*_URL",{"type":53,"value":1379}," env var is only set after deploy. In ",{"type":47,"tag":101,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":53,"value":1385},"agentcore dev",{"type":53,"value":1387},", gateway tools aren't available. This is expected — the agent should handle this gracefully.",{"type":47,"tag":55,"props":1389,"children":1390},{},[1391],{"type":47,"tag":739,"props":1392,"children":1393},{},[1394],{"type":53,"value":1395},"Auth failure on tool call:",{"type":47,"tag":168,"props":1397,"children":1399},{"className":308,"code":1398,"language":310,"meta":176,"style":176},"agentcore logs --runtime \u003CAgentName> --since 1h --query \"auth\"\n",[1400],{"type":47,"tag":101,"props":1401,"children":1402},{"__ignoreMap":176},[1403],{"type":47,"tag":316,"props":1404,"children":1405},{"class":318,"line":319},[1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1455],{"type":47,"tag":316,"props":1407,"children":1408},{"style":333},[1409],{"type":53,"value":106},{"type":47,"tag":316,"props":1411,"children":1412},{"style":338},[1413],{"type":53,"value":561},{"type":47,"tag":316,"props":1415,"children":1416},{"style":338},[1417],{"type":53,"value":351},{"type":47,"tag":316,"props":1419,"children":1420},{"style":354},[1421],{"type":53,"value":357},{"type":47,"tag":316,"props":1423,"children":1424},{"style":338},[1425],{"type":53,"value":362},{"type":47,"tag":316,"props":1427,"children":1428},{"style":365},[1429],{"type":53,"value":368},{"type":47,"tag":316,"props":1431,"children":1432},{"style":354},[1433],{"type":53,"value":373},{"type":47,"tag":316,"props":1435,"children":1436},{"style":338},[1437],{"type":53,"value":378},{"type":47,"tag":316,"props":1439,"children":1440},{"style":338},[1441],{"type":53,"value":447},{"type":47,"tag":316,"props":1443,"children":1444},{"style":338},[1445],{"type":53,"value":662},{"type":47,"tag":316,"props":1447,"children":1448},{"style":354},[1449],{"type":53,"value":667},{"type":47,"tag":316,"props":1451,"children":1452},{"style":338},[1453],{"type":53,"value":1454},"auth",{"type":47,"tag":316,"props":1456,"children":1457},{"style":354},[1458],{"type":53,"value":677},{"type":47,"tag":55,"props":1460,"children":1461},{},[1462,1464],{"type":53,"value":1463},"Check that the credential is configured correctly: ",{"type":47,"tag":101,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":53,"value":1469},"agentcore status --type credential",{"type":47,"tag":55,"props":1471,"children":1472},{},[1473,1478],{"type":47,"tag":739,"props":1474,"children":1475},{},[1476],{"type":53,"value":1477},"Lambda function error:",{"type":53,"value":1479},"\nThe Lambda itself is failing. Check Lambda logs directly:",{"type":47,"tag":168,"props":1481,"children":1483},{"className":308,"code":1482,"language":310,"meta":176,"style":176},"aws logs tail \u002Faws\u002Flambda\u002F\u003Cfunction-name> --since 1h\n",[1484],{"type":47,"tag":101,"props":1485,"children":1486},{"__ignoreMap":176},[1487],{"type":47,"tag":316,"props":1488,"children":1489},{"class":318,"line":319},[1490,1494,1498,1503,1508,1513,1518,1522,1526,1530],{"type":47,"tag":316,"props":1491,"children":1492},{"style":333},[1493],{"type":53,"value":8},{"type":47,"tag":316,"props":1495,"children":1496},{"style":338},[1497],{"type":53,"value":561},{"type":47,"tag":316,"props":1499,"children":1500},{"style":338},[1501],{"type":53,"value":1502}," tail",{"type":47,"tag":316,"props":1504,"children":1505},{"style":338},[1506],{"type":53,"value":1507}," \u002Faws\u002Flambda\u002F",{"type":47,"tag":316,"props":1509,"children":1510},{"style":354},[1511],{"type":53,"value":1512},"\u003C",{"type":47,"tag":316,"props":1514,"children":1515},{"style":338},[1516],{"type":53,"value":1517},"function-nam",{"type":47,"tag":316,"props":1519,"children":1520},{"style":365},[1521],{"type":53,"value":368},{"type":47,"tag":316,"props":1523,"children":1524},{"style":354},[1525],{"type":53,"value":373},{"type":47,"tag":316,"props":1527,"children":1528},{"style":338},[1529],{"type":53,"value":378},{"type":47,"tag":316,"props":1531,"children":1532},{"style":338},[1533],{"type":53,"value":383},{"type":47,"tag":55,"props":1535,"children":1536},{},[1537,1542],{"type":47,"tag":739,"props":1538,"children":1539},{},[1540],{"type":53,"value":1541},"Policy denial:",{"type":53,"value":1543},"\nIf a policy engine is attached, check policy decision logs:",{"type":47,"tag":168,"props":1545,"children":1547},{"className":308,"code":1546,"language":310,"meta":176,"style":176},"agentcore logs --runtime \u003CAgentName> --since 1h --query \"policy\"\nagentcore status --type policy-engine\n",[1548],{"type":47,"tag":101,"props":1549,"children":1550},{"__ignoreMap":176},[1551,1607],{"type":47,"tag":316,"props":1552,"children":1553},{"class":318,"line":319},[1554,1558,1562,1566,1570,1574,1578,1582,1586,1590,1594,1598,1603],{"type":47,"tag":316,"props":1555,"children":1556},{"style":333},[1557],{"type":53,"value":106},{"type":47,"tag":316,"props":1559,"children":1560},{"style":338},[1561],{"type":53,"value":561},{"type":47,"tag":316,"props":1563,"children":1564},{"style":338},[1565],{"type":53,"value":351},{"type":47,"tag":316,"props":1567,"children":1568},{"style":354},[1569],{"type":53,"value":357},{"type":47,"tag":316,"props":1571,"children":1572},{"style":338},[1573],{"type":53,"value":362},{"type":47,"tag":316,"props":1575,"children":1576},{"style":365},[1577],{"type":53,"value":368},{"type":47,"tag":316,"props":1579,"children":1580},{"style":354},[1581],{"type":53,"value":373},{"type":47,"tag":316,"props":1583,"children":1584},{"style":338},[1585],{"type":53,"value":378},{"type":47,"tag":316,"props":1587,"children":1588},{"style":338},[1589],{"type":53,"value":447},{"type":47,"tag":316,"props":1591,"children":1592},{"style":338},[1593],{"type":53,"value":662},{"type":47,"tag":316,"props":1595,"children":1596},{"style":354},[1597],{"type":53,"value":667},{"type":47,"tag":316,"props":1599,"children":1600},{"style":338},[1601],{"type":53,"value":1602},"policy",{"type":47,"tag":316,"props":1604,"children":1605},{"style":354},[1606],{"type":53,"value":677},{"type":47,"tag":316,"props":1608,"children":1609},{"class":318,"line":329},[1610,1614,1618,1622],{"type":47,"tag":316,"props":1611,"children":1612},{"style":333},[1613],{"type":53,"value":106},{"type":47,"tag":316,"props":1615,"children":1616},{"style":338},[1617],{"type":53,"value":911},{"type":47,"tag":316,"props":1619,"children":1620},{"style":338},[1621],{"type":53,"value":1299},{"type":47,"tag":316,"props":1623,"children":1624},{"style":338},[1625],{"type":53,"value":1626}," policy-engine\n",{"type":47,"tag":796,"props":1628,"children":1629},{},[],{"type":47,"tag":61,"props":1631,"children":1633},{"id":1632},"symptom-wrong-or-unhelpful-answers",[1634],{"type":53,"value":1635},"Symptom: Wrong or unhelpful answers",{"type":47,"tag":55,"props":1637,"children":1638},{},[1639,1643],{"type":47,"tag":739,"props":1640,"children":1641},{},[1642],{"type":53,"value":1201},{"type":53,"value":1644}," Read the trace to see the agent's reasoning:",{"type":47,"tag":168,"props":1646,"children":1647},{"className":308,"code":1206,"language":310,"meta":176,"style":176},[1648],{"type":47,"tag":101,"props":1649,"children":1650},{"__ignoreMap":176},[1651],{"type":47,"tag":316,"props":1652,"children":1653},{"class":318,"line":319},[1654,1658,1662,1666,1670,1674,1678,1682,1686,1690,1694,1698],{"type":47,"tag":316,"props":1655,"children":1656},{"style":333},[1657],{"type":53,"value":106},{"type":47,"tag":316,"props":1659,"children":1660},{"style":338},[1661],{"type":53,"value":341},{"type":47,"tag":316,"props":1663,"children":1664},{"style":338},[1665],{"type":53,"value":492},{"type":47,"tag":316,"props":1667,"children":1668},{"style":354},[1669],{"type":53,"value":357},{"type":47,"tag":316,"props":1671,"children":1672},{"style":338},[1673],{"type":53,"value":501},{"type":47,"tag":316,"props":1675,"children":1676},{"style":365},[1677],{"type":53,"value":506},{"type":47,"tag":316,"props":1679,"children":1680},{"style":354},[1681],{"type":53,"value":373},{"type":47,"tag":316,"props":1683,"children":1684},{"style":338},[1685],{"type":53,"value":351},{"type":47,"tag":316,"props":1687,"children":1688},{"style":354},[1689],{"type":53,"value":357},{"type":47,"tag":316,"props":1691,"children":1692},{"style":338},[1693],{"type":53,"value":362},{"type":47,"tag":316,"props":1695,"children":1696},{"style":365},[1697],{"type":53,"value":368},{"type":47,"tag":316,"props":1699,"children":1700},{"style":354},[1701],{"type":53,"value":531},{"type":47,"tag":55,"props":1703,"children":1704},{},[1705],{"type":53,"value":1706},"The trace shows the model's reasoning steps, tool calls made, and the final response. Look for:",{"type":47,"tag":68,"props":1708,"children":1709},{},[1710,1715,1720],{"type":47,"tag":72,"props":1711,"children":1712},{},[1713],{"type":53,"value":1714},"Did the agent use the right tools?",{"type":47,"tag":72,"props":1716,"children":1717},{},[1718],{"type":53,"value":1719},"Did the tool calls return the expected data?",{"type":47,"tag":72,"props":1721,"children":1722},{},[1723],{"type":53,"value":1724},"Is the system prompt providing the right context?",{"type":47,"tag":55,"props":1726,"children":1727},{},[1728,1732,1734,1742],{"type":47,"tag":739,"props":1729,"children":1730},{},[1731],{"type":53,"value":1274},{"type":53,"value":1733}," Check if memory is involved:\nIf the agent should be using memory context but isn't, see the \"Symptom: Memory not persisting\" section later in this skill, or load ",{"type":47,"tag":198,"props":1735,"children":1736},{"href":200},[1737],{"type":47,"tag":101,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":53,"value":200},{"type":53,"value":1743}," if this is an environment issue.",{"type":47,"tag":55,"props":1745,"children":1746},{},[1747,1751],{"type":47,"tag":739,"props":1748,"children":1749},{},[1750],{"type":53,"value":1359},{"type":53,"value":1752}," Common causes:",{"type":47,"tag":68,"props":1754,"children":1755},{},[1756,1761,1766,1771],{"type":47,"tag":72,"props":1757,"children":1758},{},[1759],{"type":53,"value":1760},"System prompt is too vague or missing key context",{"type":47,"tag":72,"props":1762,"children":1763},{},[1764],{"type":53,"value":1765},"Agent isn't calling the right tools (tool descriptions need improvement)",{"type":47,"tag":72,"props":1767,"children":1768},{},[1769],{"type":53,"value":1770},"Tool is returning unexpected data format",{"type":47,"tag":72,"props":1772,"children":1773},{},[1774],{"type":53,"value":1775},"Model ID is wrong for the task (e.g., using a smaller model for complex reasoning)",{"type":47,"tag":796,"props":1777,"children":1778},{},[],{"type":47,"tag":61,"props":1780,"children":1782},{"id":1781},"symptom-memory-not-working",[1783],{"type":53,"value":1784},"Symptom: Memory not working",{"type":47,"tag":55,"props":1786,"children":1787},{},[1788],{"type":47,"tag":739,"props":1789,"children":1790},{},[1791],{"type":53,"value":1792},"Memory not persisting across sessions (LTM):",{"type":47,"tag":262,"props":1794,"children":1795},{},[1796],{"type":47,"tag":72,"props":1797,"children":1798},{},[1799],{"type":53,"value":1800},"Verify LTM strategies are configured (SEMANTIC or USER_PREFERENCE):",{"type":47,"tag":168,"props":1802,"children":1804},{"className":308,"code":1803,"language":310,"meta":176,"style":176},"agentcore status --type memory --json | jq '.memories[].strategies'\n",[1805],{"type":47,"tag":101,"props":1806,"children":1807},{"__ignoreMap":176},[1808],{"type":47,"tag":316,"props":1809,"children":1810},{"class":318,"line":319},[1811,1815,1819,1823,1828,1832,1836,1840,1844,1849],{"type":47,"tag":316,"props":1812,"children":1813},{"style":333},[1814],{"type":53,"value":106},{"type":47,"tag":316,"props":1816,"children":1817},{"style":338},[1818],{"type":53,"value":911},{"type":47,"tag":316,"props":1820,"children":1821},{"style":338},[1822],{"type":53,"value":1299},{"type":47,"tag":316,"props":1824,"children":1825},{"style":338},[1826],{"type":53,"value":1827}," memory",{"type":47,"tag":316,"props":1829,"children":1830},{"style":338},[1831],{"type":53,"value":916},{"type":47,"tag":316,"props":1833,"children":1834},{"style":354},[1835],{"type":53,"value":921},{"type":47,"tag":316,"props":1837,"children":1838},{"style":333},[1839],{"type":53,"value":926},{"type":47,"tag":316,"props":1841,"children":1842},{"style":354},[1843],{"type":53,"value":936},{"type":47,"tag":316,"props":1845,"children":1846},{"style":338},[1847],{"type":53,"value":1848},".memories[].strategies",{"type":47,"tag":316,"props":1850,"children":1851},{"style":354},[1852],{"type":53,"value":1853},"'\n",{"type":47,"tag":262,"props":1855,"children":1856},{},[1857,1862,1875],{"type":47,"tag":72,"props":1858,"children":1859},{},[1860],{"type":53,"value":1861},"Wait 5–30 seconds after a session ends — LTM extraction is async. The agent must finish its session before facts are extracted.",{"type":47,"tag":72,"props":1863,"children":1864},{},[1865,1867,1873],{"type":53,"value":1866},"Use UUIDs (v4) for session IDs — the platform requires a minimum of 33 characters. Short IDs like \"session-1\" cause LTM to fail silently. ",{"type":47,"tag":101,"props":1868,"children":1870},{"className":1869},[],[1871],{"type":53,"value":1872},"agentcore invoke",{"type":53,"value":1874}," generates compliant IDs by default.",{"type":47,"tag":72,"props":1876,"children":1877},{},[1878],{"type":53,"value":1879},"Verify the memory resource is ACTIVE:",{"type":47,"tag":168,"props":1881,"children":1883},{"className":308,"code":1882,"language":310,"meta":176,"style":176},"agentcore status --type memory\n",[1884],{"type":47,"tag":101,"props":1885,"children":1886},{"__ignoreMap":176},[1887],{"type":47,"tag":316,"props":1888,"children":1889},{"class":318,"line":319},[1890,1894,1898,1902],{"type":47,"tag":316,"props":1891,"children":1892},{"style":333},[1893],{"type":53,"value":106},{"type":47,"tag":316,"props":1895,"children":1896},{"style":338},[1897],{"type":53,"value":911},{"type":47,"tag":316,"props":1899,"children":1900},{"style":338},[1901],{"type":53,"value":1299},{"type":47,"tag":316,"props":1903,"children":1904},{"style":338},[1905],{"type":53,"value":1906}," memory\n",{"type":47,"tag":55,"props":1908,"children":1909},{},[1910],{"type":47,"tag":739,"props":1911,"children":1912},{},[1913],{"type":53,"value":1914},"Memory not loading at session start:",{"type":47,"tag":262,"props":1916,"children":1917},{},[1918],{"type":47,"tag":72,"props":1919,"children":1920},{},[1921,1923,1929],{"type":53,"value":1922},"Check the ",{"type":47,"tag":101,"props":1924,"children":1926},{"className":1925},[],[1927],{"type":53,"value":1928},"MEMORY_*_ID",{"type":53,"value":1930}," env var is set:",{"type":47,"tag":168,"props":1932,"children":1934},{"className":308,"code":1933,"language":310,"meta":176,"style":176},"agentcore status --type memory --json | jq '.memories[].id'\n",[1935],{"type":47,"tag":101,"props":1936,"children":1937},{"__ignoreMap":176},[1938],{"type":47,"tag":316,"props":1939,"children":1940},{"class":318,"line":319},[1941,1945,1949,1953,1957,1961,1965,1969,1973,1978],{"type":47,"tag":316,"props":1942,"children":1943},{"style":333},[1944],{"type":53,"value":106},{"type":47,"tag":316,"props":1946,"children":1947},{"style":338},[1948],{"type":53,"value":911},{"type":47,"tag":316,"props":1950,"children":1951},{"style":338},[1952],{"type":53,"value":1299},{"type":47,"tag":316,"props":1954,"children":1955},{"style":338},[1956],{"type":53,"value":1827},{"type":47,"tag":316,"props":1958,"children":1959},{"style":338},[1960],{"type":53,"value":916},{"type":47,"tag":316,"props":1962,"children":1963},{"style":354},[1964],{"type":53,"value":921},{"type":47,"tag":316,"props":1966,"children":1967},{"style":333},[1968],{"type":53,"value":926},{"type":47,"tag":316,"props":1970,"children":1971},{"style":354},[1972],{"type":53,"value":936},{"type":47,"tag":316,"props":1974,"children":1975},{"style":338},[1976],{"type":53,"value":1977},".memories[].id",{"type":47,"tag":316,"props":1979,"children":1980},{"style":354},[1981],{"type":53,"value":1853},{"type":47,"tag":262,"props":1983,"children":1984},{},[1985,1998],{"type":47,"tag":72,"props":1986,"children":1987},{},[1988,1990,1996],{"type":53,"value":1989},"Verify the ",{"type":47,"tag":101,"props":1991,"children":1993},{"className":1992},[],[1994],{"type":53,"value":1995},"actor_id",{"type":53,"value":1997}," is consistent across sessions — memory is scoped per actor.",{"type":47,"tag":72,"props":1999,"children":2000},{},[2001],{"type":53,"value":2002},"Check the namespace paths in your retrieval config match the namespaces used when writing.",{"type":47,"tag":796,"props":2004,"children":2005},{},[],{"type":47,"tag":61,"props":2007,"children":2009},{"id":2008},"symptom-agent-timeout",[2010],{"type":53,"value":2011},"Symptom: Agent timeout",{"type":47,"tag":55,"props":2013,"children":2014},{},[2015,2019],{"type":47,"tag":739,"props":2016,"children":2017},{},[2018],{"type":53,"value":1201},{"type":53,"value":2020}," Check the trace for where time is being spent:",{"type":47,"tag":168,"props":2022,"children":2023},{"className":308,"code":1206,"language":310,"meta":176,"style":176},[2024],{"type":47,"tag":101,"props":2025,"children":2026},{"__ignoreMap":176},[2027],{"type":47,"tag":316,"props":2028,"children":2029},{"class":318,"line":319},[2030,2034,2038,2042,2046,2050,2054,2058,2062,2066,2070,2074],{"type":47,"tag":316,"props":2031,"children":2032},{"style":333},[2033],{"type":53,"value":106},{"type":47,"tag":316,"props":2035,"children":2036},{"style":338},[2037],{"type":53,"value":341},{"type":47,"tag":316,"props":2039,"children":2040},{"style":338},[2041],{"type":53,"value":492},{"type":47,"tag":316,"props":2043,"children":2044},{"style":354},[2045],{"type":53,"value":357},{"type":47,"tag":316,"props":2047,"children":2048},{"style":338},[2049],{"type":53,"value":501},{"type":47,"tag":316,"props":2051,"children":2052},{"style":365},[2053],{"type":53,"value":506},{"type":47,"tag":316,"props":2055,"children":2056},{"style":354},[2057],{"type":53,"value":373},{"type":47,"tag":316,"props":2059,"children":2060},{"style":338},[2061],{"type":53,"value":351},{"type":47,"tag":316,"props":2063,"children":2064},{"style":354},[2065],{"type":53,"value":357},{"type":47,"tag":316,"props":2067,"children":2068},{"style":338},[2069],{"type":53,"value":362},{"type":47,"tag":316,"props":2071,"children":2072},{"style":365},[2073],{"type":53,"value":368},{"type":47,"tag":316,"props":2075,"children":2076},{"style":354},[2077],{"type":53,"value":531},{"type":47,"tag":55,"props":2079,"children":2080},{},[2081],{"type":53,"value":2082},"Look for long-running steps — model calls, tool calls, memory operations.",{"type":47,"tag":55,"props":2084,"children":2085},{},[2086,2090],{"type":47,"tag":739,"props":2087,"children":2088},{},[2089],{"type":53,"value":1274},{"type":53,"value":2091}," Common timeout causes:",{"type":47,"tag":55,"props":2093,"children":2094},{},[2095,2100,2102,2108],{"type":47,"tag":739,"props":2096,"children":2097},{},[2098],{"type":53,"value":2099},"Slow agent initialization:",{"type":53,"value":2101}," If the first invocation after an idle period is slow but subsequent requests are fast, the agent is spending too much time initializing. Check for heavy imports at module level, database connections in global scope, or MCP client initialization during startup. Move expensive setup into the request handler or use lazy initialization. See the ",{"type":47,"tag":101,"props":2103,"children":2105},{"className":2104},[],[2106],{"type":53,"value":2107},"agents-harden",{"type":53,"value":2109}," skill for optimization guidance.",{"type":47,"tag":55,"props":2111,"children":2112},{},[2113,2118],{"type":47,"tag":739,"props":2114,"children":2115},{},[2116],{"type":53,"value":2117},"Model call timeout:",{"type":53,"value":2119}," The model is taking too long. Consider using a faster model for time-sensitive operations (e.g., Haiku instead of Sonnet for simple tasks).",{"type":47,"tag":55,"props":2121,"children":2122},{},[2123,2128],{"type":47,"tag":739,"props":2124,"children":2125},{},[2126],{"type":53,"value":2127},"Tool call timeout:",{"type":53,"value":2129}," The Lambda or external API is slow. Check the tool's own logs.",{"type":47,"tag":55,"props":2131,"children":2132},{},[2133,2138,2140,2146],{"type":47,"tag":739,"props":2134,"children":2135},{},[2136],{"type":53,"value":2137},"Memory retrieval timeout:",{"type":53,"value":2139}," Semantic search can be slow for large memory stores. Consider reducing ",{"type":47,"tag":101,"props":2141,"children":2143},{"className":2142},[],[2144],{"type":53,"value":2145},"top_k",{"type":53,"value":2147}," in your retrieval config.",{"type":47,"tag":55,"props":2149,"children":2150},{},[2151,2156,2158,2164,2166,2176],{"type":47,"tag":739,"props":2152,"children":2153},{},[2154],{"type":53,"value":2155},"VPC connectivity issue:",{"type":53,"value":2157}," If the agent is in a VPC, check security group rules and route tables. See ",{"type":47,"tag":101,"props":2159,"children":2161},{"className":2160},[],[2162],{"type":53,"value":2163},"agents-build",{"type":53,"value":2165}," (loads ",{"type":47,"tag":198,"props":2167,"children":2169},{"href":2168},"..\u002Fagents-build\u002Freferences\u002Fvpc.md",[2170],{"type":47,"tag":101,"props":2171,"children":2173},{"className":2172},[],[2174],{"type":53,"value":2175},"references\u002Fvpc.md",{"type":53,"value":2177},") for VPC-specific debugging.",{"type":47,"tag":796,"props":2179,"children":2180},{},[],{"type":47,"tag":61,"props":2182,"children":2184},{"id":2183},"symptom-servicequotaexceededexception-maxvms-limit-exceeded-despite-low-observed-concurrency",[2185,2187,2193],{"type":53,"value":2186},"Symptom: ",{"type":47,"tag":101,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":53,"value":2192},"ServiceQuotaExceededException: maxVms limit exceeded",{"type":53,"value":2194}," (despite low observed concurrency)",{"type":47,"tag":55,"props":2196,"children":2197},{},[2198,2200,2206,2208,2213],{"type":53,"value":2199},"Your CloudWatch \"concurrent sessions\" metric shows modest numbers (maybe 30–50) but ",{"type":47,"tag":101,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":53,"value":2205},"InvokeAgentRuntime",{"type":53,"value":2207}," calls return ",{"type":47,"tag":101,"props":2209,"children":2211},{"className":2210},[],[2212],{"type":53,"value":2192},{"type":53,"value":855},{"type":47,"tag":55,"props":2215,"children":2216},{},[2217,2222,2224,2230,2232,2238],{"type":47,"tag":739,"props":2218,"children":2219},{},[2220],{"type":53,"value":2221},"What's actually happening:",{"type":53,"value":2223}," CloudWatch's concurrent-sessions metric is not the same as live microVM count. The ",{"type":47,"tag":101,"props":2225,"children":2227},{"className":2226},[],[2228],{"type":53,"value":2229},"maxVms",{"type":53,"value":2231}," quota counts all environments your account has active — including ones that finished their invocation but haven't been reclaimed yet. Idle-but-not-yet-reclaimed environments count against the quota until ",{"type":47,"tag":101,"props":2233,"children":2235},{"className":2234},[],[2236],{"type":53,"value":2237},"idleRuntimeSessionTimeout",{"type":53,"value":2239}," expires (default 900 seconds \u002F 15 minutes) or you explicitly stop them.",{"type":47,"tag":55,"props":2241,"children":2242},{},[2243,2245,2251],{"type":53,"value":2244},"If your code uses a new session ID per request and doesn't call ",{"type":47,"tag":101,"props":2246,"children":2248},{"className":2247},[],[2249],{"type":53,"value":2250},"StopRuntimeSession",{"type":53,"value":2252},", every request leaves an environment sitting idle for 15 minutes counting against the quota.",{"type":47,"tag":55,"props":2254,"children":2255},{},[2256],{"type":47,"tag":739,"props":2257,"children":2258},{},[2259],{"type":53,"value":2260},"Fix order (try in this order before requesting a quota increase):",{"type":47,"tag":262,"props":2262,"children":2263},{},[2264,2322,2332,2377],{"type":47,"tag":72,"props":2265,"children":2266},{},[2267,2279,2281],{"type":47,"tag":739,"props":2268,"children":2269},{},[2270,2272,2277],{"type":53,"value":2271},"Call ",{"type":47,"tag":101,"props":2273,"children":2275},{"className":2274},[],[2276],{"type":53,"value":2250},{"type":53,"value":2278}," after each logical request completes.",{"type":53,"value":2280}," If you're not going to send more requests on this session, stop it explicitly.",{"type":47,"tag":168,"props":2282,"children":2286},{"className":2283,"code":2284,"language":2285,"meta":176,"style":176},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","client.stop_runtime_session(\n    agentRuntimeArn=runtime_arn,\n    runtimeSessionId=session_id,\n)\n","python",[2287],{"type":47,"tag":101,"props":2288,"children":2289},{"__ignoreMap":176},[2290,2298,2306,2314],{"type":47,"tag":316,"props":2291,"children":2292},{"class":318,"line":319},[2293],{"type":47,"tag":316,"props":2294,"children":2295},{},[2296],{"type":53,"value":2297},"client.stop_runtime_session(\n",{"type":47,"tag":316,"props":2299,"children":2300},{"class":318,"line":329},[2301],{"type":47,"tag":316,"props":2302,"children":2303},{},[2304],{"type":53,"value":2305},"    agentRuntimeArn=runtime_arn,\n",{"type":47,"tag":316,"props":2307,"children":2308},{"class":318,"line":386},[2309],{"type":47,"tag":316,"props":2310,"children":2311},{},[2312],{"type":53,"value":2313},"    runtimeSessionId=session_id,\n",{"type":47,"tag":316,"props":2315,"children":2316},{"class":318,"line":396},[2317],{"type":47,"tag":316,"props":2318,"children":2319},{},[2320],{"type":53,"value":2321},")\n",{"type":47,"tag":72,"props":2323,"children":2324},{},[2325,2330],{"type":47,"tag":739,"props":2326,"children":2327},{},[2328],{"type":53,"value":2329},"Reuse session IDs across related requests.",{"type":53,"value":2331}," If a user interaction produces multiple backend calls, route them to the same session instead of generating a new session ID per call.",{"type":47,"tag":72,"props":2333,"children":2334},{},[2335,2346,2348,2353,2355,2361,2363,2368,2370,2376],{"type":47,"tag":739,"props":2336,"children":2337},{},[2338,2340,2345],{"type":53,"value":2339},"Lower ",{"type":47,"tag":101,"props":2341,"children":2343},{"className":2342},[],[2344],{"type":53,"value":2237},{"type":53,"value":855},{"type":53,"value":2347}," If your sessions are short-lived and you can't add ",{"type":47,"tag":101,"props":2349,"children":2351},{"className":2350},[],[2352],{"type":53,"value":2250},{"type":53,"value":2354}," everywhere, lower the timeout by editing the runtime's ",{"type":47,"tag":101,"props":2356,"children":2358},{"className":2357},[],[2359],{"type":53,"value":2360},"lifecycleConfiguration",{"type":53,"value":2362}," in ",{"type":47,"tag":101,"props":2364,"children":2366},{"className":2365},[],[2367],{"type":53,"value":786},{"type":53,"value":2369}," and running ",{"type":47,"tag":101,"props":2371,"children":2373},{"className":2372},[],[2374],{"type":53,"value":2375},"agentcore deploy",{"type":53,"value":855},{"type":47,"tag":72,"props":2378,"children":2379},{},[2380,2385,2387,2392,2393,2403],{"type":47,"tag":739,"props":2381,"children":2382},{},[2383],{"type":53,"value":2384},"Only after the above, request a quota increase.",{"type":53,"value":2386}," See ",{"type":47,"tag":101,"props":2388,"children":2390},{"className":2389},[],[2391],{"type":53,"value":2107},{"type":53,"value":2165},{"type":47,"tag":198,"props":2394,"children":2396},{"href":2395},"..\u002Fagents-harden\u002Freferences\u002Flimits.md",[2397],{"type":47,"tag":101,"props":2398,"children":2400},{"className":2399},[],[2401],{"type":53,"value":2402},"references\u002Flimits.md",{"type":53,"value":2404},") — request it through the Service Quotas console (Amazon Bedrock AgentCore), not by filing a support ticket directly.",{"type":47,"tag":55,"props":2406,"children":2407},{},[2408,2410,2415],{"type":53,"value":2409},"See ",{"type":47,"tag":101,"props":2411,"children":2413},{"className":2412},[],[2414],{"type":53,"value":2107},{"type":53,"value":2416}," Session lifecycle management section for the full pattern.",{"type":47,"tag":796,"props":2418,"children":2419},{},[],{"type":47,"tag":61,"props":2421,"children":2423},{"id":2422},"symptom-424-failed-dependency-on-invoke",[2424],{"type":53,"value":2425},"Symptom: 424 Failed Dependency on invoke",{"type":47,"tag":55,"props":2427,"children":2428},{},[2429],{"type":53,"value":2430},"This usually means the agent container failed to start or crashed during initialization.",{"type":47,"tag":55,"props":2432,"children":2433},{},[2434,2438],{"type":47,"tag":739,"props":2435,"children":2436},{},[2437],{"type":53,"value":1201},{"type":53,"value":2439}," Check the agent logs for startup errors:",{"type":47,"tag":168,"props":2441,"children":2443},{"className":308,"code":2442,"language":310,"meta":176,"style":176},"agentcore logs --runtime \u003CAgentName> --since 30m --level error\n",[2444],{"type":47,"tag":101,"props":2445,"children":2446},{"__ignoreMap":176},[2447],{"type":47,"tag":316,"props":2448,"children":2449},{"class":318,"line":319},[2450,2454,2458,2462,2466,2470,2474,2478,2482,2487,2491],{"type":47,"tag":316,"props":2451,"children":2452},{"style":333},[2453],{"type":53,"value":106},{"type":47,"tag":316,"props":2455,"children":2456},{"style":338},[2457],{"type":53,"value":561},{"type":47,"tag":316,"props":2459,"children":2460},{"style":338},[2461],{"type":53,"value":351},{"type":47,"tag":316,"props":2463,"children":2464},{"style":354},[2465],{"type":53,"value":357},{"type":47,"tag":316,"props":2467,"children":2468},{"style":338},[2469],{"type":53,"value":362},{"type":47,"tag":316,"props":2471,"children":2472},{"style":365},[2473],{"type":53,"value":368},{"type":47,"tag":316,"props":2475,"children":2476},{"style":354},[2477],{"type":53,"value":373},{"type":47,"tag":316,"props":2479,"children":2480},{"style":338},[2481],{"type":53,"value":378},{"type":47,"tag":316,"props":2483,"children":2484},{"style":338},[2485],{"type":53,"value":2486}," 30m",{"type":47,"tag":316,"props":2488,"children":2489},{"style":338},[2490],{"type":53,"value":594},{"type":47,"tag":316,"props":2492,"children":2493},{"style":338},[2494],{"type":53,"value":599},{"type":47,"tag":55,"props":2496,"children":2497},{},[2498,2502],{"type":47,"tag":739,"props":2499,"children":2500},{},[2501],{"type":53,"value":1274},{"type":53,"value":1752},{"type":47,"tag":55,"props":2504,"children":2505},{},[2506,2511,2513,2519],{"type":47,"tag":739,"props":2507,"children":2508},{},[2509],{"type":53,"value":2510},"Missing Python dependency:",{"type":53,"value":2512}," The agent code imports a package not in ",{"type":47,"tag":101,"props":2514,"children":2516},{"className":2515},[],[2517],{"type":53,"value":2518},"pyproject.toml",{"type":53,"value":2520},". The container starts but crashes on first request. Fix: add the dependency and redeploy.",{"type":47,"tag":55,"props":2522,"children":2523},{},[2524,2529,2531,2537,2539,2545],{"type":47,"tag":739,"props":2525,"children":2526},{},[2527],{"type":53,"value":2528},"Entrypoint crash:",{"type":53,"value":2530}," The ",{"type":47,"tag":101,"props":2532,"children":2534},{"className":2533},[],[2535],{"type":53,"value":2536},"main.py",{"type":53,"value":2538}," throws an exception during import or ",{"type":47,"tag":101,"props":2540,"children":2542},{"className":2541},[],[2543],{"type":53,"value":2544},"app.run()",{"type":53,"value":2546},". Check logs for the traceback.",{"type":47,"tag":55,"props":2548,"children":2549},{},[2550,2555,2557,2563],{"type":47,"tag":739,"props":2551,"children":2552},{},[2553],{"type":53,"value":2554},"Container image pull failure:",{"type":53,"value":2556}," If using Container build, the ECR image may not exist or the execution role lacks ",{"type":47,"tag":101,"props":2558,"children":2560},{"className":2559},[],[2561],{"type":53,"value":2562},"ecr:BatchGetImage",{"type":53,"value":2564},". Check:",{"type":47,"tag":168,"props":2566,"children":2568},{"className":308,"code":2567,"language":310,"meta":176,"style":176},"agentcore status --runtime \u003CAgentName> --json\n",[2569],{"type":47,"tag":101,"props":2570,"children":2571},{"__ignoreMap":176},[2572],{"type":47,"tag":316,"props":2573,"children":2574},{"class":318,"line":319},[2575,2579,2583,2587,2591,2595,2599,2603],{"type":47,"tag":316,"props":2576,"children":2577},{"style":333},[2578],{"type":53,"value":106},{"type":47,"tag":316,"props":2580,"children":2581},{"style":338},[2582],{"type":53,"value":911},{"type":47,"tag":316,"props":2584,"children":2585},{"style":338},[2586],{"type":53,"value":351},{"type":47,"tag":316,"props":2588,"children":2589},{"style":354},[2590],{"type":53,"value":357},{"type":47,"tag":316,"props":2592,"children":2593},{"style":338},[2594],{"type":53,"value":362},{"type":47,"tag":316,"props":2596,"children":2597},{"style":365},[2598],{"type":53,"value":368},{"type":47,"tag":316,"props":2600,"children":2601},{"style":354},[2602],{"type":53,"value":373},{"type":47,"tag":316,"props":2604,"children":2605},{"style":338},[2606],{"type":53,"value":2607}," --json\n",{"type":47,"tag":55,"props":2609,"children":2610},{},[2611,2616],{"type":47,"tag":739,"props":2612,"children":2613},{},[2614],{"type":53,"value":2615},"Memory resource not ACTIVE:",{"type":53,"value":2617}," If the agent code assumes memory is available but the memory resource is still in CREATING state, the entrypoint may fail. Check:",{"type":47,"tag":168,"props":2619,"children":2620},{"className":308,"code":1882,"language":310,"meta":176,"style":176},[2621],{"type":47,"tag":101,"props":2622,"children":2623},{"__ignoreMap":176},[2624],{"type":47,"tag":316,"props":2625,"children":2626},{"class":318,"line":319},[2627,2631,2635,2639],{"type":47,"tag":316,"props":2628,"children":2629},{"style":333},[2630],{"type":53,"value":106},{"type":47,"tag":316,"props":2632,"children":2633},{"style":338},[2634],{"type":53,"value":911},{"type":47,"tag":316,"props":2636,"children":2637},{"style":338},[2638],{"type":53,"value":1299},{"type":47,"tag":316,"props":2640,"children":2641},{"style":338},[2642],{"type":53,"value":1906},{"type":47,"tag":55,"props":2644,"children":2645},{},[2646,2651,2653,2658],{"type":47,"tag":739,"props":2647,"children":2648},{},[2649],{"type":53,"value":2650},"Initialization timeout:",{"type":53,"value":2652}," The agent takes too long to be ready for its first request — heavy imports at module level, synchronous database connections, or MCP client initialization during startup can exceed the service's health-check window. The symptom looks like a 424 on the first invoke but healthy on subsequent ones. Fix: move expensive setup out of module level, use lazy initialization, or warm the agent before production traffic. See ",{"type":47,"tag":101,"props":2654,"children":2656},{"className":2655},[],[2657],{"type":53,"value":2107},{"type":53,"value":2659}," Initialization time section for patterns.",{"type":47,"tag":796,"props":2661,"children":2662},{},[],{"type":47,"tag":61,"props":2664,"children":2666},{"id":2665},"symptom-local-invocations-fail-with-connection-refused-exit-code-7",[2667],{"type":53,"value":2668},"Symptom: Local invocations fail with connection-refused \u002F exit code 7",{"type":47,"tag":55,"props":2670,"children":2671},{},[2672],{"type":53,"value":2673},"Usually not an agent bug — the dev server is on a different port than you expect.",{"type":47,"tag":55,"props":2675,"children":2676},{},[2677],{"type":47,"tag":739,"props":2678,"children":2679},{},[2680,2682,2687],{"type":53,"value":2681},"Default ports ",{"type":47,"tag":101,"props":2683,"children":2685},{"className":2684},[],[2686],{"type":53,"value":1385},{"type":53,"value":2688}," binds:",{"type":47,"tag":1010,"props":2690,"children":2691},{},[2692,2708],{"type":47,"tag":1014,"props":2693,"children":2694},{},[2695],{"type":47,"tag":1018,"props":2696,"children":2697},{},[2698,2703],{"type":47,"tag":1022,"props":2699,"children":2700},{},[2701],{"type":53,"value":2702},"Protocol",{"type":47,"tag":1022,"props":2704,"children":2705},{},[2706],{"type":53,"value":2707},"Default",{"type":47,"tag":1038,"props":2709,"children":2710},{},[2711,2724,2737],{"type":47,"tag":1018,"props":2712,"children":2713},{},[2714,2719],{"type":47,"tag":1045,"props":2715,"children":2716},{},[2717],{"type":53,"value":2718},"HTTP",{"type":47,"tag":1045,"props":2720,"children":2721},{},[2722],{"type":53,"value":2723},"8080",{"type":47,"tag":1018,"props":2725,"children":2726},{},[2727,2732],{"type":47,"tag":1045,"props":2728,"children":2729},{},[2730],{"type":53,"value":2731},"MCP",{"type":47,"tag":1045,"props":2733,"children":2734},{},[2735],{"type":53,"value":2736},"8000",{"type":47,"tag":1018,"props":2738,"children":2739},{},[2740,2745],{"type":47,"tag":1045,"props":2741,"children":2742},{},[2743],{"type":53,"value":2744},"A2A",{"type":47,"tag":1045,"props":2746,"children":2747},{},[2748],{"type":53,"value":2749},"9000",{"type":47,"tag":55,"props":2751,"children":2752},{},[2753,2758,2760,2765,2767,2773,2775,2781],{"type":47,"tag":739,"props":2754,"children":2755},{},[2756],{"type":53,"value":2757},"When the default is occupied",{"type":53,"value":2759}," (second dev session, a lingering process from a previous run, another service on 8080), the CLI ",{"type":47,"tag":739,"props":2761,"children":2762},{},[2763],{"type":53,"value":2764},"auto-increments",{"type":53,"value":2766}," silently: 8080 → 8081 → 8082. A test harness or ",{"type":47,"tag":101,"props":2768,"children":2770},{"className":2769},[],[2771],{"type":53,"value":2772},"curl",{"type":53,"value":2774}," script hardcoded to 8080 will get ",{"type":47,"tag":101,"props":2776,"children":2778},{"className":2777},[],[2779],{"type":53,"value":2780},"Connection refused",{"type":53,"value":2782}," (curl exit code 7) while the agent is running fine on 8082.",{"type":47,"tag":55,"props":2784,"children":2785},{},[2786],{"type":53,"value":2787},"Diagnose in this order:",{"type":47,"tag":262,"props":2789,"children":2790},{},[2791,2803,2843],{"type":47,"tag":72,"props":2792,"children":2793},{},[2794,2796,2801],{"type":53,"value":2795},"Read the CLI banner that ",{"type":47,"tag":101,"props":2797,"children":2799},{"className":2798},[],[2800],{"type":53,"value":1385},{"type":53,"value":2802}," prints — it shows the actual bound port and URL. This is always the source of truth.",{"type":47,"tag":72,"props":2804,"children":2805},{},[2806,2808],{"type":53,"value":2807},"If the banner is gone (terminal cleared, running in background), check the log file:",{"type":47,"tag":168,"props":2809,"children":2811},{"className":308,"code":2810,"language":310,"meta":176,"style":176},"tail -20 agentcore\u002F.cli\u002Flogs\u002Fdev\u002F*.log\n",[2812],{"type":47,"tag":101,"props":2813,"children":2814},{"__ignoreMap":176},[2815],{"type":47,"tag":316,"props":2816,"children":2817},{"class":318,"line":319},[2818,2823,2828,2833,2838],{"type":47,"tag":316,"props":2819,"children":2820},{"style":333},[2821],{"type":53,"value":2822},"tail",{"type":47,"tag":316,"props":2824,"children":2825},{"style":338},[2826],{"type":53,"value":2827}," -20",{"type":47,"tag":316,"props":2829,"children":2830},{"style":338},[2831],{"type":53,"value":2832}," agentcore\u002F.cli\u002Flogs\u002Fdev\u002F",{"type":47,"tag":316,"props":2834,"children":2835},{"style":365},[2836],{"type":53,"value":2837},"*",{"type":47,"tag":316,"props":2839,"children":2840},{"style":338},[2841],{"type":53,"value":2842},".log\n",{"type":47,"tag":72,"props":2844,"children":2845},{},[2846,2848],{"type":53,"value":2847},"Or find the process directly:",{"type":47,"tag":168,"props":2849,"children":2851},{"className":308,"code":2850,"language":310,"meta":176,"style":176},"# macOS \u002F Linux\nps aux | grep -E 'agentcore dev|uvicorn' | grep -v grep\nlsof -iTCP -sTCP:LISTEN -n -P | grep -E '8080|8081|8082|8000|9000'\n",[2852],{"type":47,"tag":101,"props":2853,"children":2854},{"__ignoreMap":176},[2855,2863,2921],{"type":47,"tag":316,"props":2856,"children":2857},{"class":318,"line":319},[2858],{"type":47,"tag":316,"props":2859,"children":2860},{"style":323},[2861],{"type":53,"value":2862},"# macOS \u002F Linux\n",{"type":47,"tag":316,"props":2864,"children":2865},{"class":318,"line":329},[2866,2871,2876,2880,2885,2890,2894,2899,2903,2907,2911,2916],{"type":47,"tag":316,"props":2867,"children":2868},{"style":333},[2869],{"type":53,"value":2870},"ps",{"type":47,"tag":316,"props":2872,"children":2873},{"style":338},[2874],{"type":53,"value":2875}," aux",{"type":47,"tag":316,"props":2877,"children":2878},{"style":354},[2879],{"type":53,"value":921},{"type":47,"tag":316,"props":2881,"children":2882},{"style":333},[2883],{"type":53,"value":2884}," grep",{"type":47,"tag":316,"props":2886,"children":2887},{"style":338},[2888],{"type":53,"value":2889}," -E",{"type":47,"tag":316,"props":2891,"children":2892},{"style":354},[2893],{"type":53,"value":936},{"type":47,"tag":316,"props":2895,"children":2896},{"style":338},[2897],{"type":53,"value":2898},"agentcore dev|uvicorn",{"type":47,"tag":316,"props":2900,"children":2901},{"style":354},[2902],{"type":53,"value":946},{"type":47,"tag":316,"props":2904,"children":2905},{"style":354},[2906],{"type":53,"value":921},{"type":47,"tag":316,"props":2908,"children":2909},{"style":333},[2910],{"type":53,"value":2884},{"type":47,"tag":316,"props":2912,"children":2913},{"style":338},[2914],{"type":53,"value":2915}," -v",{"type":47,"tag":316,"props":2917,"children":2918},{"style":338},[2919],{"type":53,"value":2920}," grep\n",{"type":47,"tag":316,"props":2922,"children":2923},{"class":318,"line":386},[2924,2929,2934,2939,2944,2949,2953,2957,2961,2965,2970],{"type":47,"tag":316,"props":2925,"children":2926},{"style":333},[2927],{"type":53,"value":2928},"lsof",{"type":47,"tag":316,"props":2930,"children":2931},{"style":338},[2932],{"type":53,"value":2933}," -iTCP",{"type":47,"tag":316,"props":2935,"children":2936},{"style":338},[2937],{"type":53,"value":2938}," -sTCP:LISTEN",{"type":47,"tag":316,"props":2940,"children":2941},{"style":338},[2942],{"type":53,"value":2943}," -n",{"type":47,"tag":316,"props":2945,"children":2946},{"style":338},[2947],{"type":53,"value":2948}," -P",{"type":47,"tag":316,"props":2950,"children":2951},{"style":354},[2952],{"type":53,"value":921},{"type":47,"tag":316,"props":2954,"children":2955},{"style":333},[2956],{"type":53,"value":2884},{"type":47,"tag":316,"props":2958,"children":2959},{"style":338},[2960],{"type":53,"value":2889},{"type":47,"tag":316,"props":2962,"children":2963},{"style":354},[2964],{"type":53,"value":936},{"type":47,"tag":316,"props":2966,"children":2967},{"style":338},[2968],{"type":53,"value":2969},"8080|8081|8082|8000|9000",{"type":47,"tag":316,"props":2971,"children":2972},{"style":354},[2973],{"type":53,"value":1853},{"type":47,"tag":55,"props":2975,"children":2976},{},[2977],{"type":47,"tag":739,"props":2978,"children":2979},{},[2980],{"type":53,"value":2981},"Fix options:",{"type":47,"tag":68,"props":2983,"children":2984},{},[2985,2996,3007],{"type":47,"tag":72,"props":2986,"children":2987},{},[2988,2990],{"type":53,"value":2989},"Pin the port explicitly: ",{"type":47,"tag":101,"props":2991,"children":2993},{"className":2992},[],[2994],{"type":53,"value":2995},"agentcore dev --port 8080",{"type":47,"tag":72,"props":2997,"children":2998},{},[2999,3001],{"type":53,"value":3000},"Kill the process squatting on the default: ",{"type":47,"tag":101,"props":3002,"children":3004},{"className":3003},[],[3005],{"type":53,"value":3006},"lsof -tiTCP:8080 -sTCP:LISTEN | xargs kill",{"type":47,"tag":72,"props":3008,"children":3009},{},[3010],{"type":53,"value":3011},"Update the hardcoded port in your test harness to read from the CLI output or from an env var",{"type":47,"tag":55,"props":3013,"children":3014},{},[3015],{"type":53,"value":3016},"This is also a common source of \"works locally one day, fails the next\" reports — the port shifted between runs.",{"type":47,"tag":796,"props":3018,"children":3019},{},[],{"type":47,"tag":61,"props":3021,"children":3023},{"id":3022},"symptom-gateway-tool-calls-failing-with-auth-errors",[3024],{"type":53,"value":3025},"Symptom: Gateway tool calls failing with auth errors",{"type":47,"tag":55,"props":3027,"children":3028},{},[3029,3033],{"type":47,"tag":739,"props":3030,"children":3031},{},[3032],{"type":53,"value":1201},{"type":53,"value":3034}," Verify the auth type matches the target type. This is the most common gateway error — using the wrong outbound auth for the target:",{"type":47,"tag":1010,"props":3036,"children":3037},{},[3038,3054],{"type":47,"tag":1014,"props":3039,"children":3040},{},[3041],{"type":47,"tag":1018,"props":3042,"children":3043},{},[3044,3049],{"type":47,"tag":1022,"props":3045,"children":3046},{},[3047],{"type":53,"value":3048},"Target type",{"type":47,"tag":1022,"props":3050,"children":3051},{},[3052],{"type":53,"value":3053},"Valid outbound auth",{"type":47,"tag":1038,"props":3055,"children":3056},{},[3057,3088,3105,3134,3162],{"type":47,"tag":1018,"props":3058,"children":3059},{},[3060,3069],{"type":47,"tag":1045,"props":3061,"children":3062},{},[3063],{"type":47,"tag":101,"props":3064,"children":3066},{"className":3065},[],[3067],{"type":53,"value":3068},"mcp-server",{"type":47,"tag":1045,"props":3070,"children":3071},{},[3072,3078,3080,3086],{"type":47,"tag":101,"props":3073,"children":3075},{"className":3074},[],[3076],{"type":53,"value":3077},"none",{"type":53,"value":3079},", ",{"type":47,"tag":101,"props":3081,"children":3083},{"className":3082},[],[3084],{"type":53,"value":3085},"oauth",{"type":53,"value":3087},", or IAM (SigV4 via API)",{"type":47,"tag":1018,"props":3089,"children":3090},{},[3091,3100],{"type":47,"tag":1045,"props":3092,"children":3093},{},[3094],{"type":47,"tag":101,"props":3095,"children":3097},{"className":3096},[],[3098],{"type":53,"value":3099},"lambda-function-arn",{"type":47,"tag":1045,"props":3101,"children":3102},{},[3103],{"type":53,"value":3104},"IAM only (automatic)",{"type":47,"tag":1018,"props":3106,"children":3107},{},[3108,3117],{"type":47,"tag":1045,"props":3109,"children":3110},{},[3111],{"type":47,"tag":101,"props":3112,"children":3114},{"className":3113},[],[3115],{"type":53,"value":3116},"open-api-schema",{"type":47,"tag":1045,"props":3118,"children":3119},{},[3120,3125,3126,3132],{"type":47,"tag":101,"props":3121,"children":3123},{"className":3122},[],[3124],{"type":53,"value":3085},{"type":53,"value":760},{"type":47,"tag":101,"props":3127,"children":3129},{"className":3128},[],[3130],{"type":53,"value":3131},"api-key",{"type":53,"value":3133}," (required)",{"type":47,"tag":1018,"props":3135,"children":3136},{},[3137,3146],{"type":47,"tag":1045,"props":3138,"children":3139},{},[3140],{"type":47,"tag":101,"props":3141,"children":3143},{"className":3142},[],[3144],{"type":53,"value":3145},"api-gateway",{"type":47,"tag":1045,"props":3147,"children":3148},{},[3149,3154,3155,3160],{"type":47,"tag":101,"props":3150,"children":3152},{"className":3151},[],[3153],{"type":53,"value":3077},{"type":53,"value":3079},{"type":47,"tag":101,"props":3156,"children":3158},{"className":3157},[],[3159],{"type":53,"value":3131},{"type":53,"value":3161},", or IAM",{"type":47,"tag":1018,"props":3163,"children":3164},{},[3165,3174],{"type":47,"tag":1045,"props":3166,"children":3167},{},[3168],{"type":47,"tag":101,"props":3169,"children":3171},{"className":3170},[],[3172],{"type":53,"value":3173},"smithy-model",{"type":47,"tag":1045,"props":3175,"children":3176},{},[3177,3179],{"type":53,"value":3178},"IAM or ",{"type":47,"tag":101,"props":3180,"children":3182},{"className":3181},[],[3183],{"type":53,"value":3085},{"type":47,"tag":55,"props":3185,"children":3186},{},[3187,3191],{"type":47,"tag":739,"props":3188,"children":3189},{},[3190],{"type":53,"value":1274},{"type":53,"value":3192}," Check for expired OAuth tokens. If the gateway target uses OAuth, the access token may have expired. Look for auth-related errors:",{"type":47,"tag":168,"props":3194,"children":3196},{"className":308,"code":3195,"language":310,"meta":176,"style":176},"agentcore logs --runtime \u003CAgentName> --since 1h --query \"auth\"\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"401\"\nagentcore logs --runtime \u003CAgentName> --since 1h --query \"403\"\n",[3197],{"type":47,"tag":101,"props":3198,"children":3199},{"__ignoreMap":176},[3200,3255,3311],{"type":47,"tag":316,"props":3201,"children":3202},{"class":318,"line":319},[3203,3207,3211,3215,3219,3223,3227,3231,3235,3239,3243,3247,3251],{"type":47,"tag":316,"props":3204,"children":3205},{"style":333},[3206],{"type":53,"value":106},{"type":47,"tag":316,"props":3208,"children":3209},{"style":338},[3210],{"type":53,"value":561},{"type":47,"tag":316,"props":3212,"children":3213},{"style":338},[3214],{"type":53,"value":351},{"type":47,"tag":316,"props":3216,"children":3217},{"style":354},[3218],{"type":53,"value":357},{"type":47,"tag":316,"props":3220,"children":3221},{"style":338},[3222],{"type":53,"value":362},{"type":47,"tag":316,"props":3224,"children":3225},{"style":365},[3226],{"type":53,"value":368},{"type":47,"tag":316,"props":3228,"children":3229},{"style":354},[3230],{"type":53,"value":373},{"type":47,"tag":316,"props":3232,"children":3233},{"style":338},[3234],{"type":53,"value":378},{"type":47,"tag":316,"props":3236,"children":3237},{"style":338},[3238],{"type":53,"value":447},{"type":47,"tag":316,"props":3240,"children":3241},{"style":338},[3242],{"type":53,"value":662},{"type":47,"tag":316,"props":3244,"children":3245},{"style":354},[3246],{"type":53,"value":667},{"type":47,"tag":316,"props":3248,"children":3249},{"style":338},[3250],{"type":53,"value":1454},{"type":47,"tag":316,"props":3252,"children":3253},{"style":354},[3254],{"type":53,"value":677},{"type":47,"tag":316,"props":3256,"children":3257},{"class":318,"line":329},[3258,3262,3266,3270,3274,3278,3282,3286,3290,3294,3298,3302,3307],{"type":47,"tag":316,"props":3259,"children":3260},{"style":333},[3261],{"type":53,"value":106},{"type":47,"tag":316,"props":3263,"children":3264},{"style":338},[3265],{"type":53,"value":561},{"type":47,"tag":316,"props":3267,"children":3268},{"style":338},[3269],{"type":53,"value":351},{"type":47,"tag":316,"props":3271,"children":3272},{"style":354},[3273],{"type":53,"value":357},{"type":47,"tag":316,"props":3275,"children":3276},{"style":338},[3277],{"type":53,"value":362},{"type":47,"tag":316,"props":3279,"children":3280},{"style":365},[3281],{"type":53,"value":368},{"type":47,"tag":316,"props":3283,"children":3284},{"style":354},[3285],{"type":53,"value":373},{"type":47,"tag":316,"props":3287,"children":3288},{"style":338},[3289],{"type":53,"value":378},{"type":47,"tag":316,"props":3291,"children":3292},{"style":338},[3293],{"type":53,"value":447},{"type":47,"tag":316,"props":3295,"children":3296},{"style":338},[3297],{"type":53,"value":662},{"type":47,"tag":316,"props":3299,"children":3300},{"style":354},[3301],{"type":53,"value":667},{"type":47,"tag":316,"props":3303,"children":3304},{"style":338},[3305],{"type":53,"value":3306},"401",{"type":47,"tag":316,"props":3308,"children":3309},{"style":354},[3310],{"type":53,"value":677},{"type":47,"tag":316,"props":3312,"children":3313},{"class":318,"line":386},[3314,3318,3322,3326,3330,3334,3338,3342,3346,3350,3354,3358,3363],{"type":47,"tag":316,"props":3315,"children":3316},{"style":333},[3317],{"type":53,"value":106},{"type":47,"tag":316,"props":3319,"children":3320},{"style":338},[3321],{"type":53,"value":561},{"type":47,"tag":316,"props":3323,"children":3324},{"style":338},[3325],{"type":53,"value":351},{"type":47,"tag":316,"props":3327,"children":3328},{"style":354},[3329],{"type":53,"value":357},{"type":47,"tag":316,"props":3331,"children":3332},{"style":338},[3333],{"type":53,"value":362},{"type":47,"tag":316,"props":3335,"children":3336},{"style":365},[3337],{"type":53,"value":368},{"type":47,"tag":316,"props":3339,"children":3340},{"style":354},[3341],{"type":53,"value":373},{"type":47,"tag":316,"props":3343,"children":3344},{"style":338},[3345],{"type":53,"value":378},{"type":47,"tag":316,"props":3347,"children":3348},{"style":338},[3349],{"type":53,"value":447},{"type":47,"tag":316,"props":3351,"children":3352},{"style":338},[3353],{"type":53,"value":662},{"type":47,"tag":316,"props":3355,"children":3356},{"style":354},[3357],{"type":53,"value":667},{"type":47,"tag":316,"props":3359,"children":3360},{"style":338},[3361],{"type":53,"value":3362},"403",{"type":47,"tag":316,"props":3364,"children":3365},{"style":354},[3366],{"type":53,"value":677},{"type":47,"tag":55,"props":3368,"children":3369},{},[3370],{"type":53,"value":3371},"If tokens are expiring, verify the OAuth credential provider's token endpoint is reachable and the client credentials are still valid. For MCP server targets with OAuth, the gateway handles token refresh automatically — if it's failing, the credential provider config may be wrong.",{"type":47,"tag":55,"props":3373,"children":3374},{},[3375,3379],{"type":47,"tag":739,"props":3376,"children":3377},{},[3378],{"type":53,"value":1359},{"type":53,"value":3380}," Check the credential is configured:",{"type":47,"tag":168,"props":3382,"children":3384},{"className":308,"code":3383,"language":310,"meta":176,"style":176},"agentcore status --type credential\nagentcore status --type gateway --json\n",[3385],{"type":47,"tag":101,"props":3386,"children":3387},{"__ignoreMap":176},[3388,3408],{"type":47,"tag":316,"props":3389,"children":3390},{"class":318,"line":319},[3391,3395,3399,3403],{"type":47,"tag":316,"props":3392,"children":3393},{"style":333},[3394],{"type":53,"value":106},{"type":47,"tag":316,"props":3396,"children":3397},{"style":338},[3398],{"type":53,"value":911},{"type":47,"tag":316,"props":3400,"children":3401},{"style":338},[3402],{"type":53,"value":1299},{"type":47,"tag":316,"props":3404,"children":3405},{"style":338},[3406],{"type":53,"value":3407}," credential\n",{"type":47,"tag":316,"props":3409,"children":3410},{"class":318,"line":329},[3411,3415,3419,3423,3428],{"type":47,"tag":316,"props":3412,"children":3413},{"style":333},[3414],{"type":53,"value":106},{"type":47,"tag":316,"props":3416,"children":3417},{"style":338},[3418],{"type":53,"value":911},{"type":47,"tag":316,"props":3420,"children":3421},{"style":338},[3422],{"type":53,"value":1299},{"type":47,"tag":316,"props":3424,"children":3425},{"style":338},[3426],{"type":53,"value":3427}," gateway",{"type":47,"tag":316,"props":3429,"children":3430},{"style":338},[3431],{"type":53,"value":2607},{"type":47,"tag":796,"props":3433,"children":3434},{},[],{"type":47,"tag":61,"props":3436,"children":3438},{"id":3437},"symptom-no-traces-appearing",[3439],{"type":53,"value":3440},"Symptom: No traces appearing",{"type":47,"tag":55,"props":3442,"children":3443},{},[3444,3449],{"type":47,"tag":739,"props":3445,"children":3446},{},[3447],{"type":53,"value":3448},"Wait ~15 seconds",{"type":53,"value":3450}," — there's a short delay (typically ~10s) between invocation and trace availability.",{"type":47,"tag":55,"props":3452,"children":3453},{},[3454],{"type":53,"value":3455},"If still no traces after ~30 seconds:",{"type":47,"tag":262,"props":3457,"children":3458},{},[3459,3464,3475],{"type":47,"tag":72,"props":3460,"children":3461},{},[3462],{"type":53,"value":3463},"Verify observability was enabled when the agent was deployed",{"type":47,"tag":72,"props":3465,"children":3466},{},[3467,3469],{"type":53,"value":3468},"Check the agent was actually invoked: ",{"type":47,"tag":101,"props":3470,"children":3472},{"className":3471},[],[3473],{"type":53,"value":3474},"agentcore logs --runtime \u003CAgentName> --since 1h",{"type":47,"tag":72,"props":3476,"children":3477},{},[3478],{"type":53,"value":3479},"Check CloudWatch permissions on the execution role",{"type":47,"tag":796,"props":3481,"children":3482},{},[],{"type":47,"tag":61,"props":3484,"children":3486},{"id":3485},"symptom-cloudwatch-logs-not-appearing",[3487],{"type":53,"value":3488},"Symptom: CloudWatch logs not appearing",{"type":47,"tag":55,"props":3490,"children":3491},{},[3492],{"type":53,"value":3493},"This is the most common observability issue, especially for Container\u002FDocker builds.",{"type":47,"tag":55,"props":3495,"children":3496},{},[3497],{"type":53,"value":3498},"AgentCore doesn't capture raw stdout. It uses OpenTelemetry to ship logs to CloudWatch. Three things must be true:",{"type":47,"tag":55,"props":3500,"children":3501},{},[3502],{"type":47,"tag":739,"props":3503,"children":3504},{},[3505,3507,3513],{"type":53,"value":3506},"1. Your entrypoint must be wrapped with ",{"type":47,"tag":101,"props":3508,"children":3510},{"className":3509},[],[3511],{"type":53,"value":3512},"opentelemetry-instrument",{"type":53,"value":855},{"type":47,"tag":55,"props":3515,"children":3516},{},[3517],{"type":53,"value":3518},"CodeZip builds do this automatically. Docker\u002FContainer builds need it added manually — this is the #1 thing people miss.",{"type":47,"tag":55,"props":3520,"children":3521},{},[3522],{"type":53,"value":3523},"In your Dockerfile CMD:",{"type":47,"tag":168,"props":3525,"children":3529},{"className":3526,"code":3527,"language":3528,"meta":176,"style":176},"language-dockerfile shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# ✅ Correct — wrapped with opentelemetry-instrument\nCMD [\"opentelemetry-instrument\", \"python\", \"main.py\"]\n\n# ❌ Wrong — no OTEL wrapper, logs won't appear\nCMD [\"python\", \"main.py\"]\n","dockerfile",[3530],{"type":47,"tag":101,"props":3531,"children":3532},{"__ignoreMap":176},[3533,3541,3549,3556,3564],{"type":47,"tag":316,"props":3534,"children":3535},{"class":318,"line":319},[3536],{"type":47,"tag":316,"props":3537,"children":3538},{},[3539],{"type":53,"value":3540},"# ✅ Correct — wrapped with opentelemetry-instrument\n",{"type":47,"tag":316,"props":3542,"children":3543},{"class":318,"line":329},[3544],{"type":47,"tag":316,"props":3545,"children":3546},{},[3547],{"type":53,"value":3548},"CMD [\"opentelemetry-instrument\", \"python\", \"main.py\"]\n",{"type":47,"tag":316,"props":3550,"children":3551},{"class":318,"line":386},[3552],{"type":47,"tag":316,"props":3553,"children":3554},{"emptyLinePlaceholder":390},[3555],{"type":53,"value":393},{"type":47,"tag":316,"props":3557,"children":3558},{"class":318,"line":396},[3559],{"type":47,"tag":316,"props":3560,"children":3561},{},[3562],{"type":53,"value":3563},"# ❌ Wrong — no OTEL wrapper, logs won't appear\n",{"type":47,"tag":316,"props":3565,"children":3566},{"class":318,"line":405},[3567],{"type":47,"tag":316,"props":3568,"children":3569},{},[3570],{"type":53,"value":3571},"CMD [\"python\", \"main.py\"]\n",{"type":47,"tag":55,"props":3573,"children":3574},{},[3575],{"type":47,"tag":739,"props":3576,"children":3577},{},[3578],{"type":53,"value":3579},"2. Your runtime IAM role needs CloudWatch and X-Ray permissions:",{"type":47,"tag":168,"props":3581,"children":3584},{"className":3582,"code":3583,"language":53},[171],"logs:CreateLogGroup\nlogs:CreateLogStream\nlogs:PutLogEvents    → scoped to \u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*\nxray:PutTelemetryRecords\nxray:PutTraceSegments → scoped to *\n",[3585],{"type":47,"tag":101,"props":3586,"children":3587},{"__ignoreMap":176},[3588],{"type":53,"value":3583},{"type":47,"tag":55,"props":3590,"children":3591},{},[3592],{"type":53,"value":3593},"If using the AgentCore CLI with CodeZip, the CDK scaffold adds these automatically. If using a custom role or Container build, verify they're present.",{"type":47,"tag":55,"props":3595,"children":3596},{},[3597],{"type":47,"tag":739,"props":3598,"children":3599},{},[3600,3602,3608,3610,3616],{"type":53,"value":3601},"3. Use Python's ",{"type":47,"tag":101,"props":3603,"children":3605},{"className":3604},[],[3606],{"type":53,"value":3607},"logging",{"type":53,"value":3609}," module, not ",{"type":47,"tag":101,"props":3611,"children":3613},{"className":3612},[],[3614],{"type":53,"value":3615},"print()",{"type":53,"value":855},{"type":47,"tag":55,"props":3618,"children":3619},{},[3620,3622,3627,3629,3634],{"type":53,"value":3621},"OTEL hooks into ",{"type":47,"tag":101,"props":3623,"children":3625},{"className":3624},[],[3626],{"type":53,"value":3607},{"type":53,"value":3628}," automatically — no custom handlers needed. ",{"type":47,"tag":101,"props":3630,"children":3632},{"className":3631},[],[3633],{"type":53,"value":3615},{"type":53,"value":3635}," statements won't appear in CloudWatch.",{"type":47,"tag":168,"props":3637,"children":3639},{"className":2283,"code":3638,"language":2285,"meta":176,"style":176},"import logging\nlogger = logging.getLogger(__name__)\nlogger.setLevel(logging.INFO)\n\n# ✅ This appears in CloudWatch\nlogger.info(\"Processing request\")\n\n# ❌ This does NOT appear in CloudWatch\nprint(\"Processing request\")\n",[3640],{"type":47,"tag":101,"props":3641,"children":3642},{"__ignoreMap":176},[3643,3651,3659,3667,3674,3682,3690,3697,3705],{"type":47,"tag":316,"props":3644,"children":3645},{"class":318,"line":319},[3646],{"type":47,"tag":316,"props":3647,"children":3648},{},[3649],{"type":53,"value":3650},"import logging\n",{"type":47,"tag":316,"props":3652,"children":3653},{"class":318,"line":329},[3654],{"type":47,"tag":316,"props":3655,"children":3656},{},[3657],{"type":53,"value":3658},"logger = logging.getLogger(__name__)\n",{"type":47,"tag":316,"props":3660,"children":3661},{"class":318,"line":386},[3662],{"type":47,"tag":316,"props":3663,"children":3664},{},[3665],{"type":53,"value":3666},"logger.setLevel(logging.INFO)\n",{"type":47,"tag":316,"props":3668,"children":3669},{"class":318,"line":396},[3670],{"type":47,"tag":316,"props":3671,"children":3672},{"emptyLinePlaceholder":390},[3673],{"type":53,"value":393},{"type":47,"tag":316,"props":3675,"children":3676},{"class":318,"line":405},[3677],{"type":47,"tag":316,"props":3678,"children":3679},{},[3680],{"type":53,"value":3681},"# ✅ This appears in CloudWatch\n",{"type":47,"tag":316,"props":3683,"children":3684},{"class":318,"line":461},[3685],{"type":47,"tag":316,"props":3686,"children":3687},{},[3688],{"type":53,"value":3689},"logger.info(\"Processing request\")\n",{"type":47,"tag":316,"props":3691,"children":3692},{"class":318,"line":469},[3693],{"type":47,"tag":316,"props":3694,"children":3695},{"emptyLinePlaceholder":390},[3696],{"type":53,"value":393},{"type":47,"tag":316,"props":3698,"children":3699},{"class":318,"line":478},[3700],{"type":47,"tag":316,"props":3701,"children":3702},{},[3703],{"type":53,"value":3704},"# ❌ This does NOT appear in CloudWatch\n",{"type":47,"tag":316,"props":3706,"children":3707},{"class":318,"line":534},[3708],{"type":47,"tag":316,"props":3709,"children":3710},{},[3711],{"type":53,"value":3712},"print(\"Processing request\")\n",{"type":47,"tag":55,"props":3714,"children":3715},{},[3716,3721],{"type":47,"tag":739,"props":3717,"children":3718},{},[3719],{"type":53,"value":3720},"Also verify:",{"type":53,"value":3722}," CloudWatch Transaction Search is enabled in your account. Without it, traces and spans won't appear in the GenAI Observability dashboard.",{"type":47,"tag":186,"props":3724,"children":3726},{"id":3725},"logs-missing-for-terraformcdkiac-deployed-runtimes",[3727],{"type":53,"value":3728},"Logs missing for Terraform\u002FCDK\u002FIaC-deployed runtimes",{"type":47,"tag":55,"props":3730,"children":3731},{},[3732],{"type":53,"value":3733},"A common pattern: a runtime deployed via Terraform, CDK, or a custom IAM role works correctly (returns responses) but no CloudWatch log streams appear — while the same agent code deployed via the AgentCore Console logs fine.",{"type":47,"tag":55,"props":3735,"children":3736},{},[3737,3739,3745],{"type":53,"value":3738},"This is almost always an IAM scoping issue. The execution role for a runtime deployed via the Console gets broad CloudWatch permissions by default. IaC templates often scope those permissions narrowly to ",{"type":47,"tag":101,"props":3740,"children":3742},{"className":3741},[],[3743],{"type":53,"value":3744},"\u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*",{"type":53,"value":3746},", which breaks log stream creation.",{"type":47,"tag":55,"props":3748,"children":3749},{},[3750,3755,3757,3763,3765,3771],{"type":47,"tag":739,"props":3751,"children":3752},{},[3753],{"type":53,"value":3754},"The fix:",{"type":53,"value":3756}," ",{"type":47,"tag":101,"props":3758,"children":3760},{"className":3759},[],[3761],{"type":53,"value":3762},"logs:DescribeLogGroups",{"type":53,"value":3764}," must have ",{"type":47,"tag":101,"props":3766,"children":3768},{"className":3767},[],[3769],{"type":53,"value":3770},"Resource: \"*\"",{"type":53,"value":3772},", not a scoped resource. The other logs actions can be scoped to the runtime's log group.",{"type":47,"tag":168,"props":3774,"children":3778},{"className":3775,"code":3776,"language":3777,"meta":176,"style":176},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"Effect\": \"Allow\",\n  \"Action\": [\n    \"logs:DescribeLogGroups\"\n  ],\n  \"Resource\": \"*\"\n},\n{\n  \"Effect\": \"Allow\",\n  \"Action\": [\n    \"logs:CreateLogGroup\",\n    \"logs:CreateLogStream\",\n    \"logs:PutLogEvents\"\n  ],\n  \"Resource\": \"arn:aws:logs:\u003CREGION>:\u003CACCOUNT_ID>:log-group:\u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*:*\"\n}\n","json",[3779],{"type":47,"tag":101,"props":3780,"children":3781},{"__ignoreMap":176},[3782,3790,3832,3857,3873,3881,3913,3925,3932,3967,3990,4010,4030,4046,4053,4085],{"type":47,"tag":316,"props":3783,"children":3784},{"class":318,"line":319},[3785],{"type":47,"tag":316,"props":3786,"children":3787},{"style":354},[3788],{"type":53,"value":3789},"{\n",{"type":47,"tag":316,"props":3791,"children":3792},{"class":318,"line":329},[3793,3798,3804,3809,3814,3818,3823,3827],{"type":47,"tag":316,"props":3794,"children":3795},{"style":354},[3796],{"type":53,"value":3797},"  \"",{"type":47,"tag":316,"props":3799,"children":3801},{"style":3800},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[3802],{"type":53,"value":3803},"Effect",{"type":47,"tag":316,"props":3805,"children":3806},{"style":354},[3807],{"type":53,"value":3808},"\"",{"type":47,"tag":316,"props":3810,"children":3811},{"style":354},[3812],{"type":53,"value":3813},":",{"type":47,"tag":316,"props":3815,"children":3816},{"style":354},[3817],{"type":53,"value":667},{"type":47,"tag":316,"props":3819,"children":3820},{"style":338},[3821],{"type":53,"value":3822},"Allow",{"type":47,"tag":316,"props":3824,"children":3825},{"style":354},[3826],{"type":53,"value":3808},{"type":47,"tag":316,"props":3828,"children":3829},{"style":354},[3830],{"type":53,"value":3831},",\n",{"type":47,"tag":316,"props":3833,"children":3834},{"class":318,"line":386},[3835,3839,3844,3848,3852],{"type":47,"tag":316,"props":3836,"children":3837},{"style":354},[3838],{"type":53,"value":3797},{"type":47,"tag":316,"props":3840,"children":3841},{"style":3800},[3842],{"type":53,"value":3843},"Action",{"type":47,"tag":316,"props":3845,"children":3846},{"style":354},[3847],{"type":53,"value":3808},{"type":47,"tag":316,"props":3849,"children":3850},{"style":354},[3851],{"type":53,"value":3813},{"type":47,"tag":316,"props":3853,"children":3854},{"style":354},[3855],{"type":53,"value":3856}," [\n",{"type":47,"tag":316,"props":3858,"children":3859},{"class":318,"line":396},[3860,3865,3869],{"type":47,"tag":316,"props":3861,"children":3862},{"style":354},[3863],{"type":53,"value":3864},"    \"",{"type":47,"tag":316,"props":3866,"children":3867},{"style":338},[3868],{"type":53,"value":3762},{"type":47,"tag":316,"props":3870,"children":3871},{"style":354},[3872],{"type":53,"value":677},{"type":47,"tag":316,"props":3874,"children":3875},{"class":318,"line":405},[3876],{"type":47,"tag":316,"props":3877,"children":3878},{"style":354},[3879],{"type":53,"value":3880},"  ],\n",{"type":47,"tag":316,"props":3882,"children":3883},{"class":318,"line":461},[3884,3888,3893,3897,3901,3905,3909],{"type":47,"tag":316,"props":3885,"children":3886},{"style":354},[3887],{"type":53,"value":3797},{"type":47,"tag":316,"props":3889,"children":3890},{"style":3800},[3891],{"type":53,"value":3892},"Resource",{"type":47,"tag":316,"props":3894,"children":3895},{"style":354},[3896],{"type":53,"value":3808},{"type":47,"tag":316,"props":3898,"children":3899},{"style":354},[3900],{"type":53,"value":3813},{"type":47,"tag":316,"props":3902,"children":3903},{"style":354},[3904],{"type":53,"value":667},{"type":47,"tag":316,"props":3906,"children":3907},{"style":338},[3908],{"type":53,"value":2837},{"type":47,"tag":316,"props":3910,"children":3911},{"style":354},[3912],{"type":53,"value":677},{"type":47,"tag":316,"props":3914,"children":3915},{"class":318,"line":469},[3916,3921],{"type":47,"tag":316,"props":3917,"children":3918},{"style":354},[3919],{"type":53,"value":3920},"}",{"type":47,"tag":316,"props":3922,"children":3923},{"style":365},[3924],{"type":53,"value":3831},{"type":47,"tag":316,"props":3926,"children":3927},{"class":318,"line":478},[3928],{"type":47,"tag":316,"props":3929,"children":3930},{"style":354},[3931],{"type":53,"value":3789},{"type":47,"tag":316,"props":3933,"children":3934},{"class":318,"line":534},[3935,3939,3943,3947,3951,3955,3959,3963],{"type":47,"tag":316,"props":3936,"children":3937},{"style":354},[3938],{"type":53,"value":3797},{"type":47,"tag":316,"props":3940,"children":3941},{"style":3800},[3942],{"type":53,"value":3803},{"type":47,"tag":316,"props":3944,"children":3945},{"style":354},[3946],{"type":53,"value":3808},{"type":47,"tag":316,"props":3948,"children":3949},{"style":354},[3950],{"type":53,"value":3813},{"type":47,"tag":316,"props":3952,"children":3953},{"style":354},[3954],{"type":53,"value":667},{"type":47,"tag":316,"props":3956,"children":3957},{"style":338},[3958],{"type":53,"value":3822},{"type":47,"tag":316,"props":3960,"children":3961},{"style":354},[3962],{"type":53,"value":3808},{"type":47,"tag":316,"props":3964,"children":3965},{"style":354},[3966],{"type":53,"value":3831},{"type":47,"tag":316,"props":3968,"children":3969},{"class":318,"line":542},[3970,3974,3978,3982,3986],{"type":47,"tag":316,"props":3971,"children":3972},{"style":354},[3973],{"type":53,"value":3797},{"type":47,"tag":316,"props":3975,"children":3976},{"style":3800},[3977],{"type":53,"value":3843},{"type":47,"tag":316,"props":3979,"children":3980},{"style":354},[3981],{"type":53,"value":3808},{"type":47,"tag":316,"props":3983,"children":3984},{"style":354},[3985],{"type":53,"value":3813},{"type":47,"tag":316,"props":3987,"children":3988},{"style":354},[3989],{"type":53,"value":3856},{"type":47,"tag":316,"props":3991,"children":3992},{"class":318,"line":551},[3993,3997,4002,4006],{"type":47,"tag":316,"props":3994,"children":3995},{"style":354},[3996],{"type":53,"value":3864},{"type":47,"tag":316,"props":3998,"children":3999},{"style":338},[4000],{"type":53,"value":4001},"logs:CreateLogGroup",{"type":47,"tag":316,"props":4003,"children":4004},{"style":354},[4005],{"type":53,"value":3808},{"type":47,"tag":316,"props":4007,"children":4008},{"style":354},[4009],{"type":53,"value":3831},{"type":47,"tag":316,"props":4011,"children":4012},{"class":318,"line":602},[4013,4017,4022,4026],{"type":47,"tag":316,"props":4014,"children":4015},{"style":354},[4016],{"type":53,"value":3864},{"type":47,"tag":316,"props":4018,"children":4019},{"style":338},[4020],{"type":53,"value":4021},"logs:CreateLogStream",{"type":47,"tag":316,"props":4023,"children":4024},{"style":354},[4025],{"type":53,"value":3808},{"type":47,"tag":316,"props":4027,"children":4028},{"style":354},[4029],{"type":53,"value":3831},{"type":47,"tag":316,"props":4031,"children":4032},{"class":318,"line":610},[4033,4037,4042],{"type":47,"tag":316,"props":4034,"children":4035},{"style":354},[4036],{"type":53,"value":3864},{"type":47,"tag":316,"props":4038,"children":4039},{"style":338},[4040],{"type":53,"value":4041},"logs:PutLogEvents",{"type":47,"tag":316,"props":4043,"children":4044},{"style":354},[4045],{"type":53,"value":677},{"type":47,"tag":316,"props":4047,"children":4048},{"class":318,"line":619},[4049],{"type":47,"tag":316,"props":4050,"children":4051},{"style":354},[4052],{"type":53,"value":3880},{"type":47,"tag":316,"props":4054,"children":4055},{"class":318,"line":680},[4056,4060,4064,4068,4072,4076,4081],{"type":47,"tag":316,"props":4057,"children":4058},{"style":354},[4059],{"type":53,"value":3797},{"type":47,"tag":316,"props":4061,"children":4062},{"style":3800},[4063],{"type":53,"value":3892},{"type":47,"tag":316,"props":4065,"children":4066},{"style":354},[4067],{"type":53,"value":3808},{"type":47,"tag":316,"props":4069,"children":4070},{"style":354},[4071],{"type":53,"value":3813},{"type":47,"tag":316,"props":4073,"children":4074},{"style":354},[4075],{"type":53,"value":667},{"type":47,"tag":316,"props":4077,"children":4078},{"style":338},[4079],{"type":53,"value":4080},"arn:aws:logs:\u003CREGION>:\u003CACCOUNT_ID>:log-group:\u002Faws\u002Fbedrock-agentcore\u002Fruntimes\u002F*:*",{"type":47,"tag":316,"props":4082,"children":4083},{"style":354},[4084],{"type":53,"value":677},{"type":47,"tag":316,"props":4086,"children":4088},{"class":318,"line":4087},16,[4089],{"type":47,"tag":316,"props":4090,"children":4091},{"style":354},[4092],{"type":53,"value":4093},"}\n",{"type":47,"tag":55,"props":4095,"children":4096},{},[4097,4099,4104],{"type":53,"value":4098},"After updating the execution role's IAM policy, redeploy the runtime with ",{"type":47,"tag":101,"props":4100,"children":4102},{"className":4101},[],[4103],{"type":53,"value":2375},{"type":53,"value":4105}," to pick up the new permissions.",{"type":47,"tag":796,"props":4107,"children":4108},{},[],{"type":47,"tag":61,"props":4110,"children":4112},{"id":4111},"symptom-streaming-connection-drops-mid-response",[4113],{"type":53,"value":4114},"Symptom: Streaming connection drops mid-response",{"type":47,"tag":55,"props":4116,"children":4117},{},[4118],{"type":53,"value":4119},"Your agent uses SSE or long-polling responses and the connection drops mid-stream. Symptoms in client code:",{"type":47,"tag":68,"props":4121,"children":4122},{},[4123,4132,4143,4156,4161],{"type":47,"tag":72,"props":4124,"children":4125},{},[4126],{"type":47,"tag":101,"props":4127,"children":4129},{"className":4128},[],[4130],{"type":53,"value":4131},"RemoteProtocolError: peer closed connection without sending complete message body",{"type":47,"tag":72,"props":4133,"children":4134},{},[4135,4141],{"type":47,"tag":101,"props":4136,"children":4138},{"className":4137},[],[4139],{"type":53,"value":4140},"IncompleteRead",{"type":53,"value":4142}," exception while iterating the stream",{"type":47,"tag":72,"props":4144,"children":4145},{},[4146,4148,4154],{"type":53,"value":4147},"Silent disconnect — no error, no ",{"type":47,"tag":101,"props":4149,"children":4151},{"className":4150},[],[4152],{"type":53,"value":4153},"[DONE]",{"type":53,"value":4155}," event, response just stops",{"type":47,"tag":72,"props":4157,"children":4158},{},[4159],{"type":53,"value":4160},"Happens during multi-tool-use conversations (5+ sequential tool calls)",{"type":47,"tag":72,"props":4162,"children":4163},{},[4164],{"type":53,"value":4165},"Fails well before any client-side timeout",{"type":47,"tag":55,"props":4167,"children":4168},{},[4169,4174],{"type":47,"tag":739,"props":4170,"children":4171},{},[4172],{"type":53,"value":4173},"Root cause:",{"type":53,"value":4175}," Infrastructure-layer idle timeout on streaming connections. If no data flows on the response stream for several minutes (a silent period while a tool executes, for example), a load balancer in front of the runtime terminates the TCP connection.",{"type":47,"tag":55,"props":4177,"children":4178},{},[4179,4181,4186],{"type":53,"value":4180},"The timeout is on ",{"type":47,"tag":739,"props":4182,"children":4183},{},[4184],{"type":53,"value":4185},"data flowing through the stream",{"type":53,"value":4187},", not on the request total duration. As long as you emit bytes periodically, the connection stays open.",{"type":47,"tag":55,"props":4189,"children":4190},{},[4191],{"type":47,"tag":739,"props":4192,"children":4193},{},[4194],{"type":53,"value":4195},"Fix: emit keepalive events during long-running tool executions.",{"type":47,"tag":55,"props":4197,"children":4198},{},[4199],{"type":53,"value":4200},"Python pattern for a streaming entrypoint:",{"type":47,"tag":168,"props":4202,"children":4204},{"className":2283,"code":4203,"language":2285,"meta":176,"style":176},"import asyncio\nimport json\nfrom bedrock_agentcore.runtime import BedrockAgentCoreApp\n\napp = BedrockAgentCoreApp()\n\nasync def emit_keepalive(tool_task):\n    \"\"\"Yield heartbeat events every 30s while tool_task is running.\"\"\"\n    while not tool_task.done():\n        yield f\"data: {json.dumps({'type': 'heartbeat'})}\\n\\n\"\n        try:\n            await asyncio.wait_for(asyncio.shield(tool_task), timeout=30)\n        except asyncio.TimeoutError:\n            continue  # tool still running, emit another heartbeat\n\n@app.entrypoint\nasync def invoke(payload, context):\n    async def stream():\n        tool_task = asyncio.create_task(run_long_tool(payload))\n\n        # Emit heartbeats while the tool runs\n        async for event in emit_keepalive(tool_task):\n            yield event\n\n        # Tool completed — emit the real result\n        result = await tool_task\n        yield f\"data: {json.dumps({'type': 'result', 'content': result})}\\n\\n\"\n        yield \"data: [DONE]\\n\\n\"\n\n    return stream()\n",[4205],{"type":47,"tag":101,"props":4206,"children":4207},{"__ignoreMap":176},[4208,4216,4224,4232,4239,4247,4254,4262,4270,4278,4286,4294,4302,4310,4318,4325,4333,4342,4351,4360,4368,4377,4386,4395,4403,4412,4421,4430,4439,4447],{"type":47,"tag":316,"props":4209,"children":4210},{"class":318,"line":319},[4211],{"type":47,"tag":316,"props":4212,"children":4213},{},[4214],{"type":53,"value":4215},"import asyncio\n",{"type":47,"tag":316,"props":4217,"children":4218},{"class":318,"line":329},[4219],{"type":47,"tag":316,"props":4220,"children":4221},{},[4222],{"type":53,"value":4223},"import json\n",{"type":47,"tag":316,"props":4225,"children":4226},{"class":318,"line":386},[4227],{"type":47,"tag":316,"props":4228,"children":4229},{},[4230],{"type":53,"value":4231},"from bedrock_agentcore.runtime import BedrockAgentCoreApp\n",{"type":47,"tag":316,"props":4233,"children":4234},{"class":318,"line":396},[4235],{"type":47,"tag":316,"props":4236,"children":4237},{"emptyLinePlaceholder":390},[4238],{"type":53,"value":393},{"type":47,"tag":316,"props":4240,"children":4241},{"class":318,"line":405},[4242],{"type":47,"tag":316,"props":4243,"children":4244},{},[4245],{"type":53,"value":4246},"app = BedrockAgentCoreApp()\n",{"type":47,"tag":316,"props":4248,"children":4249},{"class":318,"line":461},[4250],{"type":47,"tag":316,"props":4251,"children":4252},{"emptyLinePlaceholder":390},[4253],{"type":53,"value":393},{"type":47,"tag":316,"props":4255,"children":4256},{"class":318,"line":469},[4257],{"type":47,"tag":316,"props":4258,"children":4259},{},[4260],{"type":53,"value":4261},"async def emit_keepalive(tool_task):\n",{"type":47,"tag":316,"props":4263,"children":4264},{"class":318,"line":478},[4265],{"type":47,"tag":316,"props":4266,"children":4267},{},[4268],{"type":53,"value":4269},"    \"\"\"Yield heartbeat events every 30s while tool_task is running.\"\"\"\n",{"type":47,"tag":316,"props":4271,"children":4272},{"class":318,"line":534},[4273],{"type":47,"tag":316,"props":4274,"children":4275},{},[4276],{"type":53,"value":4277},"    while not tool_task.done():\n",{"type":47,"tag":316,"props":4279,"children":4280},{"class":318,"line":542},[4281],{"type":47,"tag":316,"props":4282,"children":4283},{},[4284],{"type":53,"value":4285},"        yield f\"data: {json.dumps({'type': 'heartbeat'})}\\n\\n\"\n",{"type":47,"tag":316,"props":4287,"children":4288},{"class":318,"line":551},[4289],{"type":47,"tag":316,"props":4290,"children":4291},{},[4292],{"type":53,"value":4293},"        try:\n",{"type":47,"tag":316,"props":4295,"children":4296},{"class":318,"line":602},[4297],{"type":47,"tag":316,"props":4298,"children":4299},{},[4300],{"type":53,"value":4301},"            await asyncio.wait_for(asyncio.shield(tool_task), timeout=30)\n",{"type":47,"tag":316,"props":4303,"children":4304},{"class":318,"line":610},[4305],{"type":47,"tag":316,"props":4306,"children":4307},{},[4308],{"type":53,"value":4309},"        except asyncio.TimeoutError:\n",{"type":47,"tag":316,"props":4311,"children":4312},{"class":318,"line":619},[4313],{"type":47,"tag":316,"props":4314,"children":4315},{},[4316],{"type":53,"value":4317},"            continue  # tool still running, emit another heartbeat\n",{"type":47,"tag":316,"props":4319,"children":4320},{"class":318,"line":680},[4321],{"type":47,"tag":316,"props":4322,"children":4323},{"emptyLinePlaceholder":390},[4324],{"type":53,"value":393},{"type":47,"tag":316,"props":4326,"children":4327},{"class":318,"line":4087},[4328],{"type":47,"tag":316,"props":4329,"children":4330},{},[4331],{"type":53,"value":4332},"@app.entrypoint\n",{"type":47,"tag":316,"props":4334,"children":4336},{"class":318,"line":4335},17,[4337],{"type":47,"tag":316,"props":4338,"children":4339},{},[4340],{"type":53,"value":4341},"async def invoke(payload, context):\n",{"type":47,"tag":316,"props":4343,"children":4345},{"class":318,"line":4344},18,[4346],{"type":47,"tag":316,"props":4347,"children":4348},{},[4349],{"type":53,"value":4350},"    async def stream():\n",{"type":47,"tag":316,"props":4352,"children":4354},{"class":318,"line":4353},19,[4355],{"type":47,"tag":316,"props":4356,"children":4357},{},[4358],{"type":53,"value":4359},"        tool_task = asyncio.create_task(run_long_tool(payload))\n",{"type":47,"tag":316,"props":4361,"children":4363},{"class":318,"line":4362},20,[4364],{"type":47,"tag":316,"props":4365,"children":4366},{"emptyLinePlaceholder":390},[4367],{"type":53,"value":393},{"type":47,"tag":316,"props":4369,"children":4371},{"class":318,"line":4370},21,[4372],{"type":47,"tag":316,"props":4373,"children":4374},{},[4375],{"type":53,"value":4376},"        # Emit heartbeats while the tool runs\n",{"type":47,"tag":316,"props":4378,"children":4380},{"class":318,"line":4379},22,[4381],{"type":47,"tag":316,"props":4382,"children":4383},{},[4384],{"type":53,"value":4385},"        async for event in emit_keepalive(tool_task):\n",{"type":47,"tag":316,"props":4387,"children":4389},{"class":318,"line":4388},23,[4390],{"type":47,"tag":316,"props":4391,"children":4392},{},[4393],{"type":53,"value":4394},"            yield event\n",{"type":47,"tag":316,"props":4396,"children":4398},{"class":318,"line":4397},24,[4399],{"type":47,"tag":316,"props":4400,"children":4401},{"emptyLinePlaceholder":390},[4402],{"type":53,"value":393},{"type":47,"tag":316,"props":4404,"children":4406},{"class":318,"line":4405},25,[4407],{"type":47,"tag":316,"props":4408,"children":4409},{},[4410],{"type":53,"value":4411},"        # Tool completed — emit the real result\n",{"type":47,"tag":316,"props":4413,"children":4415},{"class":318,"line":4414},26,[4416],{"type":47,"tag":316,"props":4417,"children":4418},{},[4419],{"type":53,"value":4420},"        result = await tool_task\n",{"type":47,"tag":316,"props":4422,"children":4424},{"class":318,"line":4423},27,[4425],{"type":47,"tag":316,"props":4426,"children":4427},{},[4428],{"type":53,"value":4429},"        yield f\"data: {json.dumps({'type': 'result', 'content': result})}\\n\\n\"\n",{"type":47,"tag":316,"props":4431,"children":4433},{"class":318,"line":4432},28,[4434],{"type":47,"tag":316,"props":4435,"children":4436},{},[4437],{"type":53,"value":4438},"        yield \"data: [DONE]\\n\\n\"\n",{"type":47,"tag":316,"props":4440,"children":4442},{"class":318,"line":4441},29,[4443],{"type":47,"tag":316,"props":4444,"children":4445},{"emptyLinePlaceholder":390},[4446],{"type":53,"value":393},{"type":47,"tag":316,"props":4448,"children":4450},{"class":318,"line":4449},30,[4451],{"type":47,"tag":316,"props":4452,"children":4453},{},[4454],{"type":53,"value":4455},"    return stream()\n",{"type":47,"tag":55,"props":4457,"children":4458},{},[4459],{"type":53,"value":4460},"Pick a heartbeat interval of ~30 seconds. Too long risks hitting the idle timeout; too short wastes bandwidth.",{"type":47,"tag":55,"props":4462,"children":4463},{},[4464,4469],{"type":47,"tag":739,"props":4465,"children":4466},{},[4467],{"type":53,"value":4468},"On the client side, filter heartbeat events",{"type":53,"value":4470}," before surfacing bytes to the user:",{"type":47,"tag":168,"props":4472,"children":4474},{"className":2283,"code":4473,"language":2285,"meta":176,"style":176},"for chunk in response.iter_lines():\n    if not chunk:\n        continue\n    data = json.loads(chunk.removeprefix(b\"data: \"))\n    if data.get(\"type\") == \"heartbeat\":\n        continue  # ignore keepalives\n    # process real events\n",[4475],{"type":47,"tag":101,"props":4476,"children":4477},{"__ignoreMap":176},[4478,4486,4494,4502,4510,4518,4526],{"type":47,"tag":316,"props":4479,"children":4480},{"class":318,"line":319},[4481],{"type":47,"tag":316,"props":4482,"children":4483},{},[4484],{"type":53,"value":4485},"for chunk in response.iter_lines():\n",{"type":47,"tag":316,"props":4487,"children":4488},{"class":318,"line":329},[4489],{"type":47,"tag":316,"props":4490,"children":4491},{},[4492],{"type":53,"value":4493},"    if not chunk:\n",{"type":47,"tag":316,"props":4495,"children":4496},{"class":318,"line":386},[4497],{"type":47,"tag":316,"props":4498,"children":4499},{},[4500],{"type":53,"value":4501},"        continue\n",{"type":47,"tag":316,"props":4503,"children":4504},{"class":318,"line":396},[4505],{"type":47,"tag":316,"props":4506,"children":4507},{},[4508],{"type":53,"value":4509},"    data = json.loads(chunk.removeprefix(b\"data: \"))\n",{"type":47,"tag":316,"props":4511,"children":4512},{"class":318,"line":405},[4513],{"type":47,"tag":316,"props":4514,"children":4515},{},[4516],{"type":53,"value":4517},"    if data.get(\"type\") == \"heartbeat\":\n",{"type":47,"tag":316,"props":4519,"children":4520},{"class":318,"line":461},[4521],{"type":47,"tag":316,"props":4522,"children":4523},{},[4524],{"type":53,"value":4525},"        continue  # ignore keepalives\n",{"type":47,"tag":316,"props":4527,"children":4528},{"class":318,"line":469},[4529],{"type":47,"tag":316,"props":4530,"children":4531},{},[4532],{"type":53,"value":4533},"    # process real events\n",{"type":47,"tag":55,"props":4535,"children":4536},{},[4537,4542,4544,4550,4552,4558,4560,4565],{"type":47,"tag":739,"props":4538,"children":4539},{},[4540],{"type":53,"value":4541},"Alternative: use the SDK's async task API for fire-and-forget patterns.",{"type":53,"value":4543}," If the client doesn't need to wait for the result, register the work via ",{"type":47,"tag":101,"props":4545,"children":4547},{"className":4546},[],[4548],{"type":53,"value":4549},"add_async_task",{"type":53,"value":4551}," \u002F ",{"type":47,"tag":101,"props":4553,"children":4555},{"className":4554},[],[4556],{"type":53,"value":4557},"complete_async_task",{"type":53,"value":4559}," and return the invocation immediately. See ",{"type":47,"tag":101,"props":4561,"children":4563},{"className":4562},[],[4564],{"type":53,"value":2107},{"type":53,"value":4566}," Long-running background tasks section.",{"type":47,"tag":796,"props":4568,"children":4569},{},[],{"type":47,"tag":61,"props":4571,"children":4573},{"id":4572},"symptom-traces-appear-merged-across-concurrent-agent-invocations",[4574],{"type":53,"value":4575},"Symptom: Traces appear merged across concurrent agent invocations",{"type":47,"tag":55,"props":4577,"children":4578},{},[4579,4581,4587],{"type":53,"value":4580},"You run multiple agent invocations in parallel with unique ",{"type":47,"tag":101,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":53,"value":4586},"runtimeSessionId",{"type":53,"value":4588}," values, but the AI Observability dashboard groups them as one session — making it impossible to isolate a single run. Data plane logs show the session IDs are correctly unique 1:1 with request IDs, but the trace view still merges them.",{"type":47,"tag":55,"props":4590,"children":4591},{},[4592,4597,4599,4605],{"type":47,"tag":739,"props":4593,"children":4594},{},[4595],{"type":53,"value":4596},"Most common cause: the caller isn't enabling Active Tracing",{"type":53,"value":4598},", so upstream spans arrive with ",{"type":47,"tag":101,"props":4600,"children":4602},{"className":4601},[],[4603],{"type":53,"value":4604},"Sampled=0",{"type":53,"value":4606},". AgentCore respects upstream trace-sampling decisions by default. If the parent context says \"don't sample,\" spans drop and concurrent invocations can appear merged in the dashboard.",{"type":47,"tag":55,"props":4608,"children":4609},{},[4610],{"type":47,"tag":739,"props":4611,"children":4612},{},[4613],{"type":53,"value":4614},"Fix by caller type:",{"type":47,"tag":55,"props":4616,"children":4617},{},[4618,4623],{"type":47,"tag":739,"props":4619,"children":4620},{},[4621],{"type":53,"value":4622},"Lambda caller:",{"type":53,"value":4624}," Enable Active Tracing on the Lambda function.",{"type":47,"tag":168,"props":4626,"children":4628},{"className":308,"code":4627,"language":310,"meta":176,"style":176},"aws lambda update-function-configuration \\\n  --function-name my-caller-function \\\n  --tracing-config Mode=Active\n",[4629],{"type":47,"tag":101,"props":4630,"children":4631},{"__ignoreMap":176},[4632,4653,4670],{"type":47,"tag":316,"props":4633,"children":4634},{"class":318,"line":319},[4635,4639,4644,4649],{"type":47,"tag":316,"props":4636,"children":4637},{"style":333},[4638],{"type":53,"value":8},{"type":47,"tag":316,"props":4640,"children":4641},{"style":338},[4642],{"type":53,"value":4643}," lambda",{"type":47,"tag":316,"props":4645,"children":4646},{"style":338},[4647],{"type":53,"value":4648}," update-function-configuration",{"type":47,"tag":316,"props":4650,"children":4651},{"style":365},[4652],{"type":53,"value":889},{"type":47,"tag":316,"props":4654,"children":4655},{"class":318,"line":329},[4656,4661,4666],{"type":47,"tag":316,"props":4657,"children":4658},{"style":338},[4659],{"type":53,"value":4660},"  --function-name",{"type":47,"tag":316,"props":4662,"children":4663},{"style":338},[4664],{"type":53,"value":4665}," my-caller-function",{"type":47,"tag":316,"props":4667,"children":4668},{"style":365},[4669],{"type":53,"value":889},{"type":47,"tag":316,"props":4671,"children":4672},{"class":318,"line":386},[4673,4678],{"type":47,"tag":316,"props":4674,"children":4675},{"style":338},[4676],{"type":53,"value":4677},"  --tracing-config",{"type":47,"tag":316,"props":4679,"children":4680},{"style":338},[4681],{"type":53,"value":4682}," Mode=Active\n",{"type":47,"tag":55,"props":4684,"children":4685},{},[4686],{"type":53,"value":4687},"Or in the Lambda console: Configuration → Monitoring and operations tools → AWS X-Ray → Active tracing.",{"type":47,"tag":55,"props":4689,"children":4690},{},[4691,4696,4698,4704],{"type":47,"tag":739,"props":4692,"children":4693},{},[4694],{"type":53,"value":4695},"ECS \u002F EC2 \u002F container caller:",{"type":53,"value":4697}," Initialize the AWS X-Ray SDK and ensure outbound calls to AgentCore are instrumented. For Python, use ",{"type":47,"tag":101,"props":4699,"children":4701},{"className":4700},[],[4702],{"type":53,"value":4703},"aws-xray-sdk",{"type":53,"value":4705}," and patch the SDK:",{"type":47,"tag":168,"props":4707,"children":4709},{"className":2283,"code":4708,"language":2285,"meta":176,"style":176},"from aws_xray_sdk.core import xray_recorder, patch_all\npatch_all()  # patches boto3, requests, etc.\n",[4710],{"type":47,"tag":101,"props":4711,"children":4712},{"__ignoreMap":176},[4713,4721],{"type":47,"tag":316,"props":4714,"children":4715},{"class":318,"line":319},[4716],{"type":47,"tag":316,"props":4717,"children":4718},{},[4719],{"type":53,"value":4720},"from aws_xray_sdk.core import xray_recorder, patch_all\n",{"type":47,"tag":316,"props":4722,"children":4723},{"class":318,"line":329},[4724],{"type":47,"tag":316,"props":4725,"children":4726},{},[4727],{"type":53,"value":4728},"patch_all()  # patches boto3, requests, etc.\n",{"type":47,"tag":55,"props":4730,"children":4731},{},[4732,4737],{"type":47,"tag":739,"props":4733,"children":4734},{},[4735],{"type":53,"value":4736},"Direct SDK caller without X-Ray:",{"type":53,"value":4738}," If you can't enable upstream tracing, force the runtime to sample by setting an environment variable on the agent:",{"type":47,"tag":168,"props":4740,"children":4743},{"className":4741,"code":4742,"language":53},[171],"OTEL_TRACES_SAMPLER=always_on\n",[4744],{"type":47,"tag":101,"props":4745,"children":4746},{"__ignoreMap":176},[4747],{"type":53,"value":4742},{"type":47,"tag":55,"props":4749,"children":4750},{},[4751],{"type":53,"value":4752},"This makes the runtime sample every trace regardless of the parent context's sampling decision. Trade-off: higher tracing costs, but the traces are correct.",{"type":47,"tag":186,"props":4754,"children":4756},{"id":4755},"also-check-invoking-with-the-endpoint-arn-instead-of-the-agent-arn",[4757],{"type":53,"value":4758},"Also check: invoking with the endpoint ARN instead of the agent ARN",{"type":47,"tag":55,"props":4760,"children":4761},{},[4762,4764,4770],{"type":53,"value":4763},"If traces show only a single top-level ",{"type":47,"tag":101,"props":4765,"children":4767},{"className":4766},[],[4768],{"type":53,"value":4769},"AgentCore.Runtime.Invoke",{"type":53,"value":4771}," span with no child spans, check the ARN your caller is using. The invoke target should be the agent runtime ARN:",{"type":47,"tag":168,"props":4773,"children":4776},{"className":4774,"code":4775,"language":53},[171],"arn:aws:bedrock-agentcore:\u003Cregion>:\u003Caccount>:runtime\u002F\u003Cruntime-name>\n",[4777],{"type":47,"tag":101,"props":4778,"children":4779},{"__ignoreMap":176},[4780],{"type":53,"value":4775},{"type":47,"tag":55,"props":4782,"children":4783},{},[4784],{"type":53,"value":4785},"Not the endpoint ARN:",{"type":47,"tag":168,"props":4787,"children":4790},{"className":4788,"code":4789,"language":53},[171],"arn:aws:bedrock-agentcore:\u003Cregion>:\u003Caccount>:runtime\u002F\u003Cruntime-name>\u002Fruntime-endpoint\u002FDEFAULT\n",[4791],{"type":47,"tag":101,"props":4792,"children":4793},{"__ignoreMap":176},[4794],{"type":53,"value":4789},{"type":47,"tag":55,"props":4796,"children":4797},{},[4798],{"type":53,"value":4799},"Invoking with the endpoint ARN can bypass the full trace instrumentation path. This is a subtle trap — both ARNs produce successful responses, but only the agent ARN produces complete traces.",{"type":47,"tag":796,"props":4801,"children":4802},{},[],{"type":47,"tag":61,"props":4804,"children":4806},{"id":4805},"symptom-runtime-stuck-in-deleting-for-hours",[4807],{"type":53,"value":4808},"Symptom: Runtime stuck in DELETING for hours",{"type":47,"tag":55,"props":4810,"children":4811},{},[4812,4814,4820,4822,4828,4830],{"type":53,"value":4813},"You called ",{"type":47,"tag":101,"props":4815,"children":4817},{"className":4816},[],[4818],{"type":53,"value":4819},"DeleteAgentRuntime",{"type":53,"value":4821},", got a successful response with ",{"type":47,"tag":101,"props":4823,"children":4825},{"className":4824},[],[4826],{"type":53,"value":4827},"status: DELETING",{"type":53,"value":4829},", and the runtime has been stuck in that state for more than 30 minutes. Attempting to delete the default endpoint separately returns ",{"type":47,"tag":101,"props":4831,"children":4833},{"className":4832},[],[4834],{"type":53,"value":4835},"ConflictException: Default endpoints are removed when you delete the agent.",{"type":47,"tag":55,"props":4837,"children":4838},{},[4839,4844,4846,4851],{"type":47,"tag":739,"props":4840,"children":4841},{},[4842],{"type":53,"value":4843},"What's happening:",{"type":53,"value":4845}," The deletion workflow is stuck on the service side. Retrying ",{"type":47,"tag":101,"props":4847,"children":4849},{"className":4848},[],[4850],{"type":53,"value":4819},{"type":53,"value":4852}," won't help — the call succeeds immediately (returning DELETING) but the back-end workflow is the thing that's stuck. Customer-side tooling can't force-complete it.",{"type":47,"tag":55,"props":4854,"children":4855},{},[4856],{"type":47,"tag":739,"props":4857,"children":4858},{},[4859],{"type":53,"value":4860},"What to do:",{"type":47,"tag":262,"props":4862,"children":4863},{},[4864,4874,4943],{"type":47,"tag":72,"props":4865,"children":4866},{},[4867,4872],{"type":47,"tag":739,"props":4868,"children":4869},{},[4870],{"type":53,"value":4871},"Do not keep retrying.",{"type":53,"value":4873}," It won't unstick the workflow.",{"type":47,"tag":72,"props":4875,"children":4876},{},[4877,4882,4884,4891,4893],{"type":47,"tag":739,"props":4878,"children":4879},{},[4880],{"type":53,"value":4881},"Open an AWS Support case",{"type":53,"value":4883}," at ",{"type":47,"tag":198,"props":4885,"children":4889},{"href":4886,"rel":4887},"https:\u002F\u002Fconsole.aws.amazon.com\u002Fsupport",[4888],"nofollow",[4890],{"type":53,"value":4886},{"type":53,"value":4892},". Include:\n",{"type":47,"tag":68,"props":4894,"children":4895},{},[4896,4901,4906,4918,4938],{"type":47,"tag":72,"props":4897,"children":4898},{},[4899],{"type":53,"value":4900},"AWS Account ID",{"type":47,"tag":72,"props":4902,"children":4903},{},[4904],{"type":53,"value":4905},"Region",{"type":47,"tag":72,"props":4907,"children":4908},{},[4909,4911,4917],{"type":53,"value":4910},"Runtime ARN (or ",{"type":47,"tag":101,"props":4912,"children":4914},{"className":4913},[],[4915],{"type":53,"value":4916},"agentRuntimeId",{"type":53,"value":951},{"type":47,"tag":72,"props":4919,"children":4920},{},[4921,4923,4929,4931,4936],{"type":53,"value":4922},"The ",{"type":47,"tag":101,"props":4924,"children":4926},{"className":4925},[],[4927],{"type":53,"value":4928},"requestId",{"type":53,"value":4930}," and timestamp of the original ",{"type":47,"tag":101,"props":4932,"children":4934},{"className":4933},[],[4935],{"type":53,"value":4819},{"type":53,"value":4937}," call (from CloudTrail)",{"type":47,"tag":72,"props":4939,"children":4940},{},[4941],{"type":53,"value":4942},"How long the runtime has been in DELETING state",{"type":47,"tag":72,"props":4944,"children":4945},{},[4946,4951],{"type":47,"tag":739,"props":4947,"children":4948},{},[4949],{"type":53,"value":4950},"Work around it in the meantime.",{"type":53,"value":4952}," Deploy a new runtime with a different name if you need to keep shipping. Don't let the stuck resource block your work.",{"type":47,"tag":55,"props":4954,"children":4955},{},[4956],{"type":53,"value":4957},"Orphaned resources from a stuck deletion (ENIs, workload identities) may need manual cleanup from the service team as part of the same case.",{"type":47,"tag":796,"props":4959,"children":4960},{},[],{"type":47,"tag":61,"props":4962,"children":4964},{"id":4963},"framework-specific-issues",[4965],{"type":53,"value":4966},"Framework-specific issues",{"type":47,"tag":55,"props":4968,"children":4969},{},[4970,4975,4977,4983],{"type":47,"tag":739,"props":4971,"children":4972},{},[4973],{"type":53,"value":4974},"LangGraph — model format:",{"type":53,"value":4976},"\nOlder versions of ",{"type":47,"tag":101,"props":4978,"children":4980},{"className":4979},[],[4981],{"type":53,"value":4982},"langchain-aws",{"type":53,"value":4984}," required the model ID without the cross-region prefix. Recent versions may support cross-region inference profiles — check your installed version:",{"type":47,"tag":168,"props":4986,"children":4988},{"className":308,"code":4987,"language":310,"meta":176,"style":176},"pip show langchain-aws | grep Version\n",[4989],{"type":47,"tag":101,"props":4990,"children":4991},{"__ignoreMap":176},[4992],{"type":47,"tag":316,"props":4993,"children":4994},{"class":318,"line":319},[4995,5000,5005,5010,5014,5018],{"type":47,"tag":316,"props":4996,"children":4997},{"style":333},[4998],{"type":53,"value":4999},"pip",{"type":47,"tag":316,"props":5001,"children":5002},{"style":338},[5003],{"type":53,"value":5004}," show",{"type":47,"tag":316,"props":5006,"children":5007},{"style":338},[5008],{"type":53,"value":5009}," langchain-aws",{"type":47,"tag":316,"props":5011,"children":5012},{"style":354},[5013],{"type":53,"value":921},{"type":47,"tag":316,"props":5015,"children":5016},{"style":333},[5017],{"type":53,"value":2884},{"type":47,"tag":316,"props":5019,"children":5020},{"style":338},[5021],{"type":53,"value":5022}," Version\n",{"type":47,"tag":55,"props":5024,"children":5025},{},[5026],{"type":53,"value":5027},"If you hit model errors with LangGraph, try the non-prefixed ID:",{"type":47,"tag":168,"props":5029,"children":5031},{"className":2283,"code":5030,"language":2285,"meta":176,"style":176},"# If cross-region prefix errors in your langchain-aws version:\nllm = init_chat_model(\"anthropic.claude-sonnet-4-5-20250929-v1:0\", model_provider=\"bedrock_converse\")\n\n# If your version supports cross-region profiles (us. = US, eu. = Europe, apac. = Asia Pacific, global. = worldwide):\nllm = init_chat_model(\"global.anthropic.claude-sonnet-4-5-20250929-v1:0\", ...)\n",[5032],{"type":47,"tag":101,"props":5033,"children":5034},{"__ignoreMap":176},[5035,5043,5051,5058,5066],{"type":47,"tag":316,"props":5036,"children":5037},{"class":318,"line":319},[5038],{"type":47,"tag":316,"props":5039,"children":5040},{},[5041],{"type":53,"value":5042},"# If cross-region prefix errors in your langchain-aws version:\n",{"type":47,"tag":316,"props":5044,"children":5045},{"class":318,"line":329},[5046],{"type":47,"tag":316,"props":5047,"children":5048},{},[5049],{"type":53,"value":5050},"llm = init_chat_model(\"anthropic.claude-sonnet-4-5-20250929-v1:0\", model_provider=\"bedrock_converse\")\n",{"type":47,"tag":316,"props":5052,"children":5053},{"class":318,"line":386},[5054],{"type":47,"tag":316,"props":5055,"children":5056},{"emptyLinePlaceholder":390},[5057],{"type":53,"value":393},{"type":47,"tag":316,"props":5059,"children":5060},{"class":318,"line":396},[5061],{"type":47,"tag":316,"props":5062,"children":5063},{},[5064],{"type":53,"value":5065},"# If your version supports cross-region profiles (us. = US, eu. = Europe, apac. = Asia Pacific, global. = worldwide):\n",{"type":47,"tag":316,"props":5067,"children":5068},{"class":318,"line":405},[5069],{"type":47,"tag":316,"props":5070,"children":5071},{},[5072],{"type":53,"value":5073},"llm = init_chat_model(\"global.anthropic.claude-sonnet-4-5-20250929-v1:0\", ...)\n",{"type":47,"tag":55,"props":5075,"children":5076},{},[5077,5079,5085],{"type":53,"value":5078},"Verify against the current langchain-aws release notes: ",{"type":47,"tag":198,"props":5080,"children":5083},{"href":5081,"rel":5082},"https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain-aws\u002Freleases",[4888],[5084],{"type":53,"value":5081},{"type":53,"value":5086}," — cross-region inference profile support has been evolving.",{"type":47,"tag":55,"props":5088,"children":5089},{},[5090,5095,5097,5103,5105,5111],{"type":47,"tag":739,"props":5091,"children":5092},{},[5093],{"type":53,"value":5094},"Google ADK — Gemini only:",{"type":53,"value":5096},"\nADK only works with Gemini models. If you're seeing model errors with ADK, check that ",{"type":47,"tag":101,"props":5098,"children":5100},{"className":5099},[],[5101],{"type":53,"value":5102},"GEMINI_API_KEY",{"type":53,"value":5104}," is set and you're using a ",{"type":47,"tag":101,"props":5106,"children":5108},{"className":5107},[],[5109],{"type":53,"value":5110},"gemini-*",{"type":53,"value":5112}," model ID.",{"type":47,"tag":55,"props":5114,"children":5115},{},[5116,5121],{"type":47,"tag":739,"props":5117,"children":5118},{},[5119],{"type":53,"value":5120},"A2A agents — wrong port:",{"type":53,"value":5122},"\nA2A servers must run on port 9000. If your A2A agent isn't responding, check it's not accidentally running on 8080.",{"type":47,"tag":796,"props":5124,"children":5125},{},[],{"type":47,"tag":61,"props":5127,"children":5129},{"id":5128},"reading-a-trace",[5130],{"type":53,"value":5131},"Reading a trace",{"type":47,"tag":55,"props":5133,"children":5134},{},[5135],{"type":53,"value":5136},"A trace shows the full execution path of one agent invocation. Key sections:",{"type":47,"tag":68,"props":5138,"children":5139},{},[5140,5150,5160,5170,5180],{"type":47,"tag":72,"props":5141,"children":5142},{},[5143,5148],{"type":47,"tag":739,"props":5144,"children":5145},{},[5146],{"type":53,"value":5147},"Model invocations",{"type":53,"value":5149}," — what the model was asked and what it responded",{"type":47,"tag":72,"props":5151,"children":5152},{},[5153,5158],{"type":47,"tag":739,"props":5154,"children":5155},{},[5156],{"type":53,"value":5157},"Tool calls",{"type":53,"value":5159}," — which tools were called, with what inputs, and what they returned",{"type":47,"tag":72,"props":5161,"children":5162},{},[5163,5168],{"type":47,"tag":739,"props":5164,"children":5165},{},[5166],{"type":53,"value":5167},"Memory operations",{"type":53,"value":5169}," — what was read from and written to memory",{"type":47,"tag":72,"props":5171,"children":5172},{},[5173,5178],{"type":47,"tag":739,"props":5174,"children":5175},{},[5176],{"type":53,"value":5177},"Policy decisions",{"type":53,"value":5179}," — what was allowed or denied (if policy engine is attached)",{"type":47,"tag":72,"props":5181,"children":5182},{},[5183,5188],{"type":47,"tag":739,"props":5184,"children":5185},{},[5186],{"type":53,"value":5187},"Latency breakdown",{"type":53,"value":5189}," — time spent in each component",{"type":47,"tag":168,"props":5191,"children":5193},{"className":308,"code":5192,"language":310,"meta":176,"style":176},"# Download trace to a file for detailed inspection\nagentcore traces get \u003CtraceId> --runtime \u003CAgentName> --output trace.json\ncat trace.json | jq '.trace.orchestrationTrace.modelInvocationOutput'\n",[5194],{"type":47,"tag":101,"props":5195,"children":5196},{"__ignoreMap":176},[5197,5205,5266],{"type":47,"tag":316,"props":5198,"children":5199},{"class":318,"line":319},[5200],{"type":47,"tag":316,"props":5201,"children":5202},{"style":323},[5203],{"type":53,"value":5204},"# Download trace to a file for detailed inspection\n",{"type":47,"tag":316,"props":5206,"children":5207},{"class":318,"line":329},[5208,5212,5216,5220,5224,5228,5232,5236,5240,5244,5248,5252,5256,5261],{"type":47,"tag":316,"props":5209,"children":5210},{"style":333},[5211],{"type":53,"value":106},{"type":47,"tag":316,"props":5213,"children":5214},{"style":338},[5215],{"type":53,"value":341},{"type":47,"tag":316,"props":5217,"children":5218},{"style":338},[5219],{"type":53,"value":492},{"type":47,"tag":316,"props":5221,"children":5222},{"style":354},[5223],{"type":53,"value":357},{"type":47,"tag":316,"props":5225,"children":5226},{"style":338},[5227],{"type":53,"value":501},{"type":47,"tag":316,"props":5229,"children":5230},{"style":365},[5231],{"type":53,"value":506},{"type":47,"tag":316,"props":5233,"children":5234},{"style":354},[5235],{"type":53,"value":373},{"type":47,"tag":316,"props":5237,"children":5238},{"style":338},[5239],{"type":53,"value":351},{"type":47,"tag":316,"props":5241,"children":5242},{"style":354},[5243],{"type":53,"value":357},{"type":47,"tag":316,"props":5245,"children":5246},{"style":338},[5247],{"type":53,"value":362},{"type":47,"tag":316,"props":5249,"children":5250},{"style":365},[5251],{"type":53,"value":368},{"type":47,"tag":316,"props":5253,"children":5254},{"style":354},[5255],{"type":53,"value":373},{"type":47,"tag":316,"props":5257,"children":5258},{"style":338},[5259],{"type":53,"value":5260}," --output",{"type":47,"tag":316,"props":5262,"children":5263},{"style":338},[5264],{"type":53,"value":5265}," trace.json\n",{"type":47,"tag":316,"props":5267,"children":5268},{"class":318,"line":386},[5269,5274,5279,5283,5287,5291,5296],{"type":47,"tag":316,"props":5270,"children":5271},{"style":333},[5272],{"type":53,"value":5273},"cat",{"type":47,"tag":316,"props":5275,"children":5276},{"style":338},[5277],{"type":53,"value":5278}," trace.json",{"type":47,"tag":316,"props":5280,"children":5281},{"style":354},[5282],{"type":53,"value":921},{"type":47,"tag":316,"props":5284,"children":5285},{"style":333},[5286],{"type":53,"value":926},{"type":47,"tag":316,"props":5288,"children":5289},{"style":354},[5290],{"type":53,"value":936},{"type":47,"tag":316,"props":5292,"children":5293},{"style":338},[5294],{"type":53,"value":5295},".trace.orchestrationTrace.modelInvocationOutput",{"type":47,"tag":316,"props":5297,"children":5298},{"style":354},[5299],{"type":53,"value":1853},{"type":47,"tag":61,"props":5301,"children":5303},{"id":5302},"output",[5304],{"type":53,"value":5305},"Output",{"type":47,"tag":68,"props":5307,"children":5308},{},[5309,5314,5319,5324],{"type":47,"tag":72,"props":5310,"children":5311},{},[5312],{"type":53,"value":5313},"Diagnosis of the specific failure with root cause",{"type":47,"tag":72,"props":5315,"children":5316},{},[5317],{"type":53,"value":5318},"Specific fix commands or code changes",{"type":47,"tag":72,"props":5320,"children":5321},{},[5322],{"type":53,"value":5323},"Explanation of what the trace shows (if reading traces)",{"type":47,"tag":72,"props":5325,"children":5326},{},[5327],{"type":53,"value":5328},"Handoff to the appropriate skill when the fix is outside debug's scope",{"type":47,"tag":61,"props":5330,"children":5332},{"id":5331},"after-diagnosis-handoff",[5333],{"type":53,"value":5334},"After diagnosis — handoff",{"type":47,"tag":55,"props":5336,"children":5337},{},[5338],{"type":53,"value":5339},"Once you've identified the root cause, hand off to the skill that owns the fix:",{"type":47,"tag":1010,"props":5341,"children":5342},{},[5343,5364],{"type":47,"tag":1014,"props":5344,"children":5345},{},[5346],{"type":47,"tag":1018,"props":5347,"children":5348},{},[5349,5354,5359],{"type":47,"tag":1022,"props":5350,"children":5351},{},[5352],{"type":53,"value":5353},"Root cause",{"type":47,"tag":1022,"props":5355,"children":5356},{},[5357],{"type":53,"value":5358},"Hand off to",{"type":47,"tag":1022,"props":5360,"children":5361},{},[5362],{"type":53,"value":5363},"Detail",{"type":47,"tag":1038,"props":5365,"children":5366},{},[5367,5398,5428,5456,5486,5516,5546,5568,5589,5619,5649,5670,5702,5723,5760,5788,5809],{"type":47,"tag":1018,"props":5368,"children":5369},{},[5370,5375,5383],{"type":47,"tag":1045,"props":5371,"children":5372},{},[5373],{"type":53,"value":5374},"Memory misconfigured (wrong strategy, namespace, wiring)",{"type":47,"tag":1045,"props":5376,"children":5377},{},[5378],{"type":47,"tag":101,"props":5379,"children":5381},{"className":5380},[],[5382],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5384,"children":5385},{},[5386,5388],{"type":53,"value":5387},"Load ",{"type":47,"tag":198,"props":5389,"children":5391},{"href":5390},"..\u002Fagents-build\u002Freferences\u002Fmemory.md",[5392],{"type":47,"tag":101,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":53,"value":5397},"references\u002Fmemory.md",{"type":47,"tag":1018,"props":5399,"children":5400},{},[5401,5406,5414],{"type":47,"tag":1045,"props":5402,"children":5403},{},[5404],{"type":53,"value":5405},"Agent invocation from app not working (auth, URL, streaming)",{"type":47,"tag":1045,"props":5407,"children":5408},{},[5409],{"type":47,"tag":101,"props":5410,"children":5412},{"className":5411},[],[5413],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5415,"children":5416},{},[5417,5418],{"type":53,"value":5387},{"type":47,"tag":198,"props":5419,"children":5421},{"href":5420},"..\u002Fagents-build\u002Freferences\u002Fintegrate.md",[5422],{"type":47,"tag":101,"props":5423,"children":5425},{"className":5424},[],[5426],{"type":53,"value":5427},"references\u002Fintegrate.md",{"type":47,"tag":1018,"props":5429,"children":5430},{},[5431,5436,5444],{"type":47,"tag":1045,"props":5432,"children":5433},{},[5434],{"type":53,"value":5435},"VPC connectivity (can't reach RDS, no internet, AZ error)",{"type":47,"tag":1045,"props":5437,"children":5438},{},[5439],{"type":47,"tag":101,"props":5440,"children":5442},{"className":5441},[],[5443],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5445,"children":5446},{},[5447,5448],{"type":53,"value":5387},{"type":47,"tag":198,"props":5449,"children":5450},{"href":2168},[5451],{"type":47,"tag":101,"props":5452,"children":5454},{"className":5453},[],[5455],{"type":53,"value":2175},{"type":47,"tag":1018,"props":5457,"children":5458},{},[5459,5464,5472],{"type":47,"tag":1045,"props":5460,"children":5461},{},[5462],{"type":53,"value":5463},"Multi-agent delegation not working",{"type":47,"tag":1045,"props":5465,"children":5466},{},[5467],{"type":47,"tag":101,"props":5468,"children":5470},{"className":5469},[],[5471],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5473,"children":5474},{},[5475,5476],{"type":53,"value":5387},{"type":47,"tag":198,"props":5477,"children":5479},{"href":5478},"..\u002Fagents-build\u002Freferences\u002Fmulti-agent.md",[5480],{"type":47,"tag":101,"props":5481,"children":5483},{"className":5482},[],[5484],{"type":53,"value":5485},"references\u002Fmulti-agent.md",{"type":47,"tag":1018,"props":5487,"children":5488},{},[5489,5494,5502],{"type":47,"tag":1045,"props":5490,"children":5491},{},[5492],{"type":53,"value":5493},"Custom request headers not reaching agent code",{"type":47,"tag":1045,"props":5495,"children":5496},{},[5497],{"type":47,"tag":101,"props":5498,"children":5500},{"className":5499},[],[5501],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5503,"children":5504},{},[5505,5506],{"type":53,"value":5387},{"type":47,"tag":198,"props":5507,"children":5509},{"href":5508},"..\u002Fagents-build\u002Freferences\u002Frequest-headers.md",[5510],{"type":47,"tag":101,"props":5511,"children":5513},{"className":5512},[],[5514],{"type":53,"value":5515},"references\u002Frequest-headers.md",{"type":47,"tag":1018,"props":5517,"children":5518},{},[5519,5524,5532],{"type":47,"tag":1045,"props":5520,"children":5521},{},[5522],{"type":53,"value":5523},"Cross-account invocation from an app in another account",{"type":47,"tag":1045,"props":5525,"children":5526},{},[5527],{"type":47,"tag":101,"props":5528,"children":5530},{"className":5529},[],[5531],{"type":53,"value":2163},{"type":47,"tag":1045,"props":5533,"children":5534},{},[5535,5536,5544],{"type":53,"value":5387},{"type":47,"tag":198,"props":5537,"children":5538},{"href":5420},[5539],{"type":47,"tag":101,"props":5540,"children":5542},{"className":5541},[],[5543],{"type":53,"value":5427},{"type":53,"value":5545}," (cross-account section)",{"type":47,"tag":1018,"props":5547,"children":5548},{},[5549,5554,5563],{"type":47,"tag":1045,"props":5550,"children":5551},{},[5552],{"type":53,"value":5553},"Gateway auth misconfigured (401, wrong auth type)",{"type":47,"tag":1045,"props":5555,"children":5556},{},[5557],{"type":47,"tag":101,"props":5558,"children":5560},{"className":5559},[],[5561],{"type":53,"value":5562},"agents-connect",{"type":47,"tag":1045,"props":5564,"children":5565},{},[5566],{"type":53,"value":5567},"Gateway auth matrix",{"type":47,"tag":1018,"props":5569,"children":5570},{},[5571,5576,5584],{"type":47,"tag":1045,"props":5572,"children":5573},{},[5574],{"type":53,"value":5575},"Gateway target type question (Lambda vs OpenAPI vs MCP vs API Gateway)",{"type":47,"tag":1045,"props":5577,"children":5578},{},[5579],{"type":47,"tag":101,"props":5580,"children":5582},{"className":5581},[],[5583],{"type":53,"value":5562},{"type":47,"tag":1045,"props":5585,"children":5586},{},[5587],{"type":53,"value":5588},"\"What Gateway is and isn't\" section",{"type":47,"tag":1018,"props":5590,"children":5591},{},[5592,5597,5605],{"type":47,"tag":1045,"props":5593,"children":5594},{},[5595],{"type":53,"value":5596},"Policy denying unexpectedly (Cedar, access denied on tool)",{"type":47,"tag":1045,"props":5598,"children":5599},{},[5600],{"type":47,"tag":101,"props":5601,"children":5603},{"className":5602},[],[5604],{"type":53,"value":5562},{"type":47,"tag":1045,"props":5606,"children":5607},{},[5608,5609],{"type":53,"value":5387},{"type":47,"tag":198,"props":5610,"children":5612},{"href":5611},"..\u002Fagents-connect\u002Freferences\u002Fpolicy.md",[5613],{"type":47,"tag":101,"props":5614,"children":5616},{"className":5615},[],[5617],{"type":53,"value":5618},"references\u002Fpolicy.md",{"type":47,"tag":1018,"props":5620,"children":5621},{},[5622,5627,5635],{"type":47,"tag":1045,"props":5623,"children":5624},{},[5625],{"type":53,"value":5626},"Observability not set up (no logs, no traces appearing)",{"type":47,"tag":1045,"props":5628,"children":5629},{},[5630],{"type":47,"tag":101,"props":5631,"children":5633},{"className":5632},[],[5634],{"type":53,"value":149},{"type":47,"tag":1045,"props":5636,"children":5637},{},[5638,5639],{"type":53,"value":5387},{"type":47,"tag":198,"props":5640,"children":5642},{"href":5641},"..\u002Fagents-optimize\u002Freferences\u002Fobservability.md",[5643],{"type":47,"tag":101,"props":5644,"children":5646},{"className":5645},[],[5647],{"type":53,"value":5648},"references\u002Fobservability.md",{"type":47,"tag":1018,"props":5650,"children":5651},{},[5652,5657,5665],{"type":47,"tag":1045,"props":5653,"children":5654},{},[5655],{"type":53,"value":5656},"Cold start \u002F initialization too slow",{"type":47,"tag":1045,"props":5658,"children":5659},{},[5660],{"type":47,"tag":101,"props":5661,"children":5663},{"className":5662},[],[5664],{"type":53,"value":2107},{"type":47,"tag":1045,"props":5666,"children":5667},{},[5668],{"type":53,"value":5669},"Initialization time section",{"type":47,"tag":1018,"props":5671,"children":5672},{},[5673,5689,5697],{"type":47,"tag":1045,"props":5674,"children":5675},{},[5676,5678,5683,5684],{"type":53,"value":5677},"Session lifecycle \u002F ",{"type":47,"tag":101,"props":5679,"children":5681},{"className":5680},[],[5682],{"type":53,"value":2229},{"type":53,"value":4551},{"type":47,"tag":101,"props":5685,"children":5687},{"className":5686},[],[5688],{"type":53,"value":2250},{"type":47,"tag":1045,"props":5690,"children":5691},{},[5692],{"type":47,"tag":101,"props":5693,"children":5695},{"className":5694},[],[5696],{"type":53,"value":2107},{"type":47,"tag":1045,"props":5698,"children":5699},{},[5700],{"type":53,"value":5701},"Session lifecycle management section",{"type":47,"tag":1018,"props":5703,"children":5704},{},[5705,5710,5718],{"type":47,"tag":1045,"props":5706,"children":5707},{},[5708],{"type":53,"value":5709},"Long-running background tasks being reclaimed",{"type":47,"tag":1045,"props":5711,"children":5712},{},[5713],{"type":47,"tag":101,"props":5714,"children":5716},{"className":5715},[],[5717],{"type":53,"value":2107},{"type":47,"tag":1045,"props":5719,"children":5720},{},[5721],{"type":53,"value":5722},"Long-running background tasks section",{"type":47,"tag":1018,"props":5724,"children":5725},{},[5726,5747,5755],{"type":47,"tag":1045,"props":5727,"children":5728},{},[5729,5731,5737,5739,5745],{"type":53,"value":5730},"JWT inbound auth failing (403, ",{"type":47,"tag":101,"props":5732,"children":5734},{"className":5733},[],[5735],{"type":53,"value":5736},"allowedClients",{"type":53,"value":5738},"\u002F",{"type":47,"tag":101,"props":5740,"children":5742},{"className":5741},[],[5743],{"type":53,"value":5744},"allowedAudience",{"type":53,"value":5746},", issuer mismatch)",{"type":47,"tag":1045,"props":5748,"children":5749},{},[5750],{"type":47,"tag":101,"props":5751,"children":5753},{"className":5752},[],[5754],{"type":53,"value":2107},{"type":47,"tag":1045,"props":5756,"children":5757},{},[5758],{"type":53,"value":5759},"Inbound auth section",{"type":47,"tag":1018,"props":5761,"children":5762},{},[5763,5768,5776],{"type":47,"tag":1045,"props":5764,"children":5765},{},[5766],{"type":53,"value":5767},"Throttling \u002F quota error \u002F limit increase request",{"type":47,"tag":1045,"props":5769,"children":5770},{},[5771],{"type":47,"tag":101,"props":5772,"children":5774},{"className":5773},[],[5775],{"type":53,"value":2107},{"type":47,"tag":1045,"props":5777,"children":5778},{},[5779,5780],{"type":53,"value":5387},{"type":47,"tag":198,"props":5781,"children":5782},{"href":2395},[5783],{"type":47,"tag":101,"props":5784,"children":5786},{"className":5785},[],[5787],{"type":53,"value":2402},{"type":47,"tag":1018,"props":5789,"children":5790},{},[5791,5796,5804],{"type":47,"tag":1045,"props":5792,"children":5793},{},[5794],{"type":53,"value":5795},"Deploy artifact stale or wrong version",{"type":47,"tag":1045,"props":5797,"children":5798},{},[5799],{"type":47,"tag":101,"props":5800,"children":5802},{"className":5801},[],[5803],{"type":53,"value":127},{"type":47,"tag":1045,"props":5805,"children":5806},{},[5807],{"type":53,"value":5808},"Redeploy workflow",{"type":47,"tag":1018,"props":5810,"children":5811},{},[5812,5817,5829],{"type":47,"tag":1045,"props":5813,"children":5814},{},[5815],{"type":53,"value":5816},"Environment broken (CLI, credentials, Node, uv)",{"type":47,"tag":1045,"props":5818,"children":5819},{},[5820,5821],{"type":53,"value":5387},{"type":47,"tag":198,"props":5822,"children":5823},{"href":200},[5824],{"type":47,"tag":101,"props":5825,"children":5827},{"className":5826},[],[5828],{"type":53,"value":200},{"type":47,"tag":1045,"props":5830,"children":5831},{},[5832],{"type":53,"value":5833},"Self-contained in this skill",{"type":47,"tag":55,"props":5835,"children":5836},{},[5837],{"type":53,"value":5838},"State the diagnosis clearly, then tell the developer which skill to use next. If the agent can load the referenced skill in the same session, do so.",{"type":47,"tag":5840,"props":5841,"children":5842},"style",{},[5843],{"type":53,"value":5844},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":5846,"total":5934},[5847,5861,5875,5882,5896,5905,5919],{"slug":2163,"name":2163,"fn":5848,"description":5849,"org":5850,"tags":5851,"stars":24,"repoUrl":25,"updatedAt":5860},"add capabilities to existing agent projects","Use when adding capabilities to an existing agent project — memory, app integration, VPC, multi-agent, migration, model changes, browser, code interpreter, or resource removal. Triggers on: \"add memory\", \"remember across sessions\", \"call agent from app\", \"invoke agent from code\", \"auth to call agent\", \"streaming responses\", \"VPC\", \"VPC connectivity\", \"VPC error\", \"can't reach from VPC\", \"multi-agent\", \"A2A\", \"A2A auth\", \"orchestrator not delegating\", \"specialist not called\", \"migrate Bedrock Agent\", \"after import\", \"migration issue\", \"framework for migration\", \"change model\", \"browser tool\", \"code interpreter\", \"delete agent\", \"tear down\", \"agentcore remove\", \"cross-account memory\", \"resource-based policy on memory\", \"pay for x402 content\", \"402 Payment Required\", \"microtransactions\", \"paid API or tool\". Not for connecting to external APIs via Gateway — use agents-connect. Not for scaffolding a new project — use agents-get-started. Not for CLI\u002Fdev server errors — use agents-debug. Strands vs LangGraph in a migration context routes here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5852,5853,5856,5857],{"name":17,"slug":18,"type":15},{"name":5854,"slug":5855,"type":15},"Automation","automation",{"name":20,"slug":8,"type":15},{"name":5858,"slug":5859,"type":15},"Engineering","engineering","2026-07-12T08:42:53.812877",{"slug":5562,"name":5562,"fn":5862,"description":5863,"org":5864,"tags":5865,"stars":24,"repoUrl":25,"updatedAt":5874},"connect agents to external services","Use when connecting your agent to external APIs, tools, or services via Gateway, or restricting tool access with Cedar policies. Handles gateway setup, target types, outbound auth (OAuth, API key, IAM), credentials, and Cedar policy authoring. Triggers on: \"connect to API\", \"add gateway\", \"connect to MCP server\", \"Lambda tools\", \"OpenAPI\", \"gateway target\", \"Cedar policy\", \"restrict tools\", \"policy engine\", \"gateway auth error\", \"store API key\", \"outbound credential\", \"env var API key\", \"API key None after deploy\", \"credential not available after deploy\", \"should this be a gateway target\", \"give my agent tools\", \"add tools to agent\". Not for inbound auth (who can call your agent) — use agents-harden. Not for debugging agent behavior — use agents-debug. Not for VPC networking errors (agent can't reach APIs due to VPC) — use agents-build. Not for creating or hosting a new MCP server project — use agents-get-started.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5866,5867,5870,5873],{"name":17,"slug":18,"type":15},{"name":5868,"slug":5869,"type":15},"API Development","api-development",{"name":5871,"slug":5872,"type":15},"Authentication","authentication",{"name":20,"slug":8,"type":15},"2026-07-16T06:00:38.866147",{"slug":4,"name":4,"fn":5,"description":6,"org":5876,"tags":5877,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5878,5879,5880,5881],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":22,"slug":23,"type":15},{"name":13,"slug":14,"type":15},{"slug":127,"name":127,"fn":5883,"description":5884,"org":5885,"tags":5886,"stars":24,"repoUrl":25,"updatedAt":5895},"deploy AI agents to AWS","Use when deploying your agent to AWS, or when a deploy has failed. Handles pre-flight validation, CDK\u002FIAM\u002Fquota error diagnosis, version management, rollback, and canary deployments. Triggers on: \"deploy my agent\", \"agentcore deploy\", \"deploy failed\", \"CDK error\", \"rollback\", \"canary deploy\", \"pin version\", \"redeploy\", \"deploy stuck\". Not for production hardening — use agents-harden. Not for adding capabilities before deploy — use agents-build or agents-connect. Not for VPC configuration errors — use agents-build.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5887,5888,5889,5892],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5890,"slug":5891,"type":15},"CI\u002FCD","ci-cd",{"name":5893,"slug":5894,"type":15},"Deployment","deployment","2026-07-12T08:42:55.059577",{"slug":138,"name":138,"fn":5897,"description":5898,"org":5899,"tags":5900,"stars":24,"repoUrl":25,"updatedAt":5904},"scaffold and deploy new agent projects","Use when a developer wants to create a new agent project or get started with AgentCore. Handles framework selection, project scaffolding, first deploy, and first invocation. Triggers on: \"build an agent\", \"create an agent\", \"get started\", \"new project\", \"agentcore create\", \"which framework\", \"Strands vs LangGraph\", \"hello world agent\", \"first agent\", \"create MCP server\", \"host MCP server\", \"agentcore dev\", \"dev server\", \"what port\", \"local development\". Not for adding capabilities to existing projects — use agents-build or agents-connect. Strands vs LangGraph in a migration context routes to agents-build, not here. Connecting to an existing MCP server routes to agents-connect, not here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5901,5902,5903],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5893,"slug":5894,"type":15},"2026-07-12T08:42:51.963247",{"slug":2107,"name":2107,"fn":5906,"description":5907,"org":5908,"tags":5909,"stars":24,"repoUrl":25,"updatedAt":5918},"harden agents for production","Use when preparing your agent for production — IAM scoping, inbound auth (JWT, SigV4), secrets management, cold start optimization, session lifecycle, rate limiting, input validation, and quota guidance. Triggers on: \"production checklist\", \"harden agent\", \"production ready\", \"secure agent\", \"inbound auth\", \"going live\", \"cold start optimization\", \"session lifecycle\", \"StopRuntimeSession\", \"quota\", \"throttling\", \"maxVms\", \"rate limit\", \"security audit of outbound API calls\", \"gateway target audit for production\", \"restrict who can call\", \"lock down endpoint\", \"only our app can call\". Not for Cedar tool-restriction policies — use agents-connect. Not for quality measurement — use agents-optimize. Not for outbound credential storage or API key wiring — use agents-connect. Not for A2A agent-to-agent auth — use agents-build. Cold start observation and diagnosis (not optimization) routes to agents-debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5910,5911,5912,5915],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5913,"slug":5914,"type":15},"Best Practices","best-practices",{"name":5916,"slug":5917,"type":15},"Security","security","2026-07-16T06:00:42.174705",{"slug":149,"name":149,"fn":5920,"description":5921,"org":5922,"tags":5923,"stars":24,"repoUrl":25,"updatedAt":5933},"optimize agent quality and performance","Use when measuring or improving agent quality and performance — set up evaluators, online monitoring, CI\u002FCD quality gates, observability, or cost optimization. Triggers on: \"evaluate my agent\", \"add evaluator\", \"measure quality\", \"quality gate\", \"run evals\", \"agent too slow\", \"why is it slow\", \"reduce latency\", \"set up observability\", \"CloudWatch dashboard\", \"how much does my agent cost\", \"cost optimization\", \"logs not showing up\", \"logs missing\", \"spans not found\", \"eval failing\", \"eval error\", \"dev traces\", \"local traces\", \"agentcore dev traces\", \"traces to CloudWatch\". Not for debugging errors or crashes — use agents-debug. Slow but correct routes here; broken routes to debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5924,5925,5926,5929,5930],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5927,"slug":5928,"type":15},"Evals","evals",{"name":13,"slug":14,"type":15},{"name":5931,"slug":5932,"type":15},"Performance","performance","2026-07-12T08:42:56.488105",114,{"items":5936,"total":6053},[5937,5944,5951,5958,5965,5971,5978,5986,6003,6016,6028,6043],{"slug":2163,"name":2163,"fn":5848,"description":5849,"org":5938,"tags":5939,"stars":24,"repoUrl":25,"updatedAt":5860},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5940,5941,5942,5943],{"name":17,"slug":18,"type":15},{"name":5854,"slug":5855,"type":15},{"name":20,"slug":8,"type":15},{"name":5858,"slug":5859,"type":15},{"slug":5562,"name":5562,"fn":5862,"description":5863,"org":5945,"tags":5946,"stars":24,"repoUrl":25,"updatedAt":5874},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5947,5948,5949,5950],{"name":17,"slug":18,"type":15},{"name":5868,"slug":5869,"type":15},{"name":5871,"slug":5872,"type":15},{"name":20,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":5952,"tags":5953,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5954,5955,5956,5957],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":22,"slug":23,"type":15},{"name":13,"slug":14,"type":15},{"slug":127,"name":127,"fn":5883,"description":5884,"org":5959,"tags":5960,"stars":24,"repoUrl":25,"updatedAt":5895},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5961,5962,5963,5964],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5890,"slug":5891,"type":15},{"name":5893,"slug":5894,"type":15},{"slug":138,"name":138,"fn":5897,"description":5898,"org":5966,"tags":5967,"stars":24,"repoUrl":25,"updatedAt":5904},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5968,5969,5970],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5893,"slug":5894,"type":15},{"slug":2107,"name":2107,"fn":5906,"description":5907,"org":5972,"tags":5973,"stars":24,"repoUrl":25,"updatedAt":5918},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5974,5975,5976,5977],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5913,"slug":5914,"type":15},{"name":5916,"slug":5917,"type":15},{"slug":149,"name":149,"fn":5920,"description":5921,"org":5979,"tags":5980,"stars":24,"repoUrl":25,"updatedAt":5933},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5981,5982,5983,5984,5985],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":5927,"slug":5928,"type":15},{"name":13,"slug":14,"type":15},{"name":5931,"slug":5932,"type":15},{"slug":5987,"name":5987,"fn":5988,"description":5989,"org":5990,"tags":5991,"stars":24,"repoUrl":25,"updatedAt":6002},"amazon-aurora-mysql","manage Amazon Aurora MySQL clusters","Amazon Aurora MySQL — creates, modifies, and advises on Aurora MySQL clusters specifically (MySQL-compatible engine, Aurora serverless, parallel query). Trigger for Aurora MySQL cluster operations, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or MySQL upgrade planning. Aurora MySQL uses full (VPC-based) configuration — express configuration is PostgreSQL-only. For Aurora PostgreSQL, use amazon-aurora-postgresql instead. Contains safety guardrails and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5992,5993,5996,5999],{"name":20,"slug":8,"type":15},{"name":5994,"slug":5995,"type":15},"Database","database",{"name":5997,"slug":5998,"type":15},"MySQL","mysql",{"name":6000,"slug":6001,"type":15},"Serverless","serverless","2026-07-12T08:43:13.27939",{"slug":6004,"name":6004,"fn":6005,"description":6006,"org":6007,"tags":6008,"stars":24,"repoUrl":25,"updatedAt":6015},"amazon-aurora-postgresql","configure Amazon Aurora PostgreSQL clusters","Amazon Aurora PostgreSQL — creates, modifies, and advises on Aurora PostgreSQL clusters specifically (PostgreSQL-compatible engine, Aurora serverless, express configuration, pgvector, Babelfish). Trigger for Aurora PostgreSQL cluster operations, express-configuration quick-start, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or PostgreSQL upgrade planning. For Aurora MySQL, use amazon-aurora-mysql instead. Contains safety guardrails, express-first routing, and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6009,6010,6011,6014],{"name":20,"slug":8,"type":15},{"name":5994,"slug":5995,"type":15},{"name":6012,"slug":6013,"type":15},"PostgreSQL","postgresql",{"name":6000,"slug":6001,"type":15},"2026-07-16T06:00:34.789624",{"slug":6017,"name":6017,"fn":6018,"description":6019,"org":6020,"tags":6021,"stars":24,"repoUrl":25,"updatedAt":6027},"amazon-bedrock","build generative AI apps with Amazon Bedrock","Builds generative AI applications on Amazon Bedrock. Covers model invocation (Converse API, InvokeModel), RAG with Knowledge Bases, Bedrock Agents, Guardrails, and AgentCore. Use when invoking models, setting up Knowledge Bases, creating agents, applying guardrails, deploying to AgentCore, migrating\u002Fporting\u002Fconverting a Bedrock Agent (including inline agents) to an AgentCore Harness, troubleshooting Bedrock errors (ThrottlingException, AccessDeniedException), or choosing models (Claude, Llama, Nova, Titan). ALSO USE for prompt caching setup and debugging, quota health checks and throttling diagnosis, cost attribution and tracking, migrating between Claude model generations (4.5 to 4.6 to 4.7), chunking strategies, API selection (Converse vs InvokeModel), guardrail capabilities, and model selection. Also covers AgentCore Payments setup (x402, microtransactions, Payment Manager, Connector, Instrument, Coinbase CDP, Stripe Privy, 402 Payment Required, pay for content, paid endpoint, agent payments). NOT for custom model training, Rekognition, or Comprehend.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6022,6023,6024],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":6025,"slug":6026,"type":15},"LLM","llm","2026-07-25T05:30:35.20899",{"slug":6029,"name":6029,"fn":6030,"description":6031,"org":6032,"tags":6033,"stars":24,"repoUrl":25,"updatedAt":6042},"amazon-documentdb","manage Amazon DocumentDB clusters","Manages Amazon DocumentDB end-to-end — serverless-on-8.0 cluster setup, TLS\u002FVPC\u002Fdriver config, flexible-schema and vector-search data modeling, MongoDB compatibility assessment, DMS-based migration, slow-query diagnosis, major version upgrades (4.0→5.0→8.0), Well-Architected reviews (41-check wa_review.py), cost estimation, and security hardening. Retrieve for every DocumentDB question and when the user asks to set up or migrate MongoDB to AWS — DocumentDB is AWS's MongoDB-compatible managed database. Triggers: JSON document store, document database, MongoDB on AWS, Nested fields, Lambda cannot connect, TLS handshake, VPC port 27017, IAM auth, Secrets Manager, encryption at rest, $graphLookup, flexible schema, COLLSCAN, compound index, DMS migration, CDC cutover, $vectorSearch, RAG, Global Clusters, DR replication, cost sizing, audit, health check, production-readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6034,6035,6036,6039],{"name":20,"slug":8,"type":15},{"name":5994,"slug":5995,"type":15},{"name":6037,"slug":6038,"type":15},"MongoDB","mongodb",{"name":6040,"slug":6041,"type":15},"NoSQL","nosql","2026-07-12T08:43:00.455878",{"slug":6044,"name":6044,"fn":6045,"description":6046,"org":6047,"tags":6048,"stars":24,"repoUrl":25,"updatedAt":6052},"amazon-dynamodb","design and debug DynamoDB data layers","Designs, reviews, and debugs DynamoDB data layers from design axioms — enumerates access patterns, chooses partition\u002Fsort keys and GSIs, decides single-table vs. multi-table, configures Streams, Global Tables, TTL, and zero-ETL integrations to OpenSearch\u002FRedshift\u002FSageMaker Lakehouse, and produces a defensible data-layer design with a monthly cost estimate and optional live validation. Applies whenever a user is designing, reviewing, or refactoring anything backed by DynamoDB — schemas, access patterns, GSIs, single- vs. multi-table choices, Streams consumers, transactional outboxes, Global Tables, zero-ETL pipelines — even when they don't say \"axioms\" or \"design review.\" Also applies when debugging hot partitions, throttling, unbounded Scans, LWW conflicts, or surprise bills on DynamoDB workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6049,6050,6051],{"name":20,"slug":8,"type":15},{"name":5994,"slug":5995,"type":15},{"name":6040,"slug":6041,"type":15},"2026-07-16T06:00:37.690386",115]