fix(cli): platform doctor probes the foundation-model catalog, never the inference profile it will actually invoke
@isadeks is already working on this.
Since Aug 27, 2026.
Assessment
This issue has not been assessed yet.
Description
Problem
platform doctor's Bedrock check calls GetFoundationModel on the bare model id, stripped from the platform default. That answers "is this model in the catalog in this Region" — which is not the question that decides whether tasks work.
At invoke time the agent calls a cross-Region inference profile (<geo>.anthropic.…), and the IAM grant is scoped to explicit profile ARNs. So a stack can be granted profiles the account cannot invoke, and doctor still reports healthy.
Why it matters now
bedrockGeoRegion (#746) makes the geography a deploy-time choice, so there are more ways for the configured profile and the account's entitlements to disagree. Two failure modes doctor currently cannot see:
- the model has no profile published in the configured geography;
- the account's Bedrock access does not cover that geography's entitlements.
Both surface as AccessDenied at turn 0, with nothing in doctor pointing at the cause. Observed while verifying #747: doctor passed reporting anthropic.claude-sonnet-4-6 visible in us-east-1 while the deployment was configured for global.anthropic.claude-opus-5 — two different models and a geography it never looked at.
Suggested change
Probe what will actually be invoked:
- Resolve the configured geography (
bedrockGeoRegion, defaultus) — from stack outputs, or the same context resolution the CDK uses. - Check the profile, not just the catalog:
GetInferenceProfileon<geo>.<modelId>, or a minimalInvokeModelif a real entitlement check is wanted. - Report the profile id in the check label, so the output states what was verified.
Keep the catalog check as a second, narrower signal — it distinguishes "model does not exist here" from "profile exists but you cannot invoke it", and those need different fixes.
Scope
cli/src/platform-doctor.ts (checkBedrockModel), plus cli/test/platform-doctor.test.ts.
Not this issue
The geo-prefix strip in the same function was broken for global./us-gov./jp./au. and is fixed in #800 — that was a straight regression. This issue is the larger question of what the check probes, which is a behaviour change to doctor's output and deserves its own review.
- Dominant language
- TypeScript
- Stars
- 146
- Forks
- 46
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 26
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aws-samples/sample-autonomous-cloud-coding-agents
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug v1
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
bug v1
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
-
documentation P2 security
Difficulty 2/5 1-2 days Newbie friendliness 74/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
aws-samples/sample-autonomous-cloud-coding-agents#767 · 2 comments ·
All issues in aws-samples/sample-autonomous-cloud-coding-agents
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
mksglu/context-mode#1200 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
anthropics/claude-code#96687 ·
-
good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
AOSSIE-Org/DebateAI#582 · 2 comments ·