Amazon Bedrock Mantle provider uses incorrect /openai/v1 endpoint path

Resolved 💬 4 comments Opened May 6, 2026 by toyamarinyon Closed May 11, 2026
💡 Likely answer: A maintainer (celia-oai, contributor) responded on this thread — see the highlighted reply below.

What version of Codex CLI is running?

Built locally from the current openai/codex mainline with a one-commit fix applied.

What issue are you seeing?

The built-in amazon-bedrock provider points Bedrock Mantle requests at:

https://bedrock-mantle.<region>.api.aws/openai/v1

but AWS Bedrock Mantle exposes its OpenAI-compatible APIs directly under:

https://bedrock-mantle.<region>.api.aws/v1

As a result, Codex Responses requests should go to /v1/responses, not /openai/v1/responses.

Root cause

This appears easy to confuse with the separate Bedrock Runtime OpenAI-compatible Chat Completions endpoint, which AWS documents as:

https://bedrock-runtime.<region>.amazonaws.com/openai/v1

Bedrock Mantle is a different endpoint family and uses /v1.

References:

Verified fix

I prepared a local fix:

  • Branch: toyamarinyon/codex:fix-bedrock-mantle-responses-url
  • Commit: 1b5b98213e07d34dddd25e35d9d0129e8e062455

I could not open a PR because this repository currently limits PR creation to collaborators.

Verification

Unit tests run:

cargo fmt
cargo test -p codex-model-provider-info test_create_amazon_bedrock_provider
cargo test -p codex-model-provider base_url_uses_region_endpoint
MACOSX_DEPLOYMENT_TARGET=15.0 CXXFLAGS="..." cargo test -p codex-tui status_model_provider_uses_bedrock_runtime_base_url

I also verified locally with the built artifact:

target/debug/codex \
  -c 'model_provider="amazon-bedrock"' \
  -c 'model="openai.gpt-oss-120b"' \
  -c 'model_providers.amazon-bedrock.aws.profile="codex-bedrock"' \
  -c 'model_providers.amazon-bedrock.aws.region="ap-northeast-1"' \
  exec 'Say hello in one sentence.'

This succeeded through the amazon-bedrock provider and reached:

https://bedrock-mantle.ap-northeast-1.api.aws/v1/responses

Expected behavior

The built-in Amazon Bedrock provider should use:

https://bedrock-mantle.<region>.api.aws/v1

for Bedrock Mantle, so Responses requests are sent to /v1/responses.

Actual behavior

The current default and generated region-specific URLs include /openai/v1, which belongs to the Bedrock Runtime Chat Completions compatibility path, not Bedrock Mantle.

View original on GitHub ↗

4 Comments

shreve · 3 months ago

+1. I applied the same changes and am now able to read responses from Bedrock with my local build. Picking Mantle over Runtime seems like the way to go, even though it limits model selection. It's intentionally the OpenAI-compatible endpoint.

| | Bedrock Runtime | Bedrock Mantle |
|--|:-------|:---------|
| Endpoint | bedrock-runtime.{region}.amazonaws.com/openai/v1 | bedrock-mantle.<region>.api.aws/v1 |
| APIs | Chat Completions | Chat Completions, Responses |
| Models | Every model in Bedrock | ~50% of existing models |

toyamarinyon · 3 months ago

Thanks for confirming this with another local build, and for laying out the Runtime vs Mantle differences in the table. That makes the tradeoff much clearer.

That matches my understanding too: Bedrock Runtime uses /openai/v1 for the OpenAI-compatible Chat Completions path, while Mantle exposes the Responses-compatible API under /v1. So for Codex's current amazon-bedrock provider, Mantle still seems like the right target even with the smaller supported-model set.

Broader Bedrock model coverage probably belongs in a separate Runtime/Chat Completions-style provider path rather than changing this one away from Mantle.

xiehust · 3 months ago

Hi all, the table summarized by @shreve is correct. Here's the official doc for further reference: https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-mantle.html

I'm a Solutions Architect at AWS and am eager to test Codex on Bedrock with our customers. Could you please merge the fix to resolve this issue?

celia-oai contributor · 3 months ago

Thanks for looking into this! The current Codex default is intentional: this feature is not in GA yet, and after GA Codex should use the OpenAI-specific endpoint at /openai/v1, not /v1/responses for GPT models. You are right that the /v1/responses endpoint uses the OpenResponses schema, but it will not be directly compatible with what Codex expects. This new endpoint will use OpenAI specific schema (similar to first-party endpoint). Please patiently wait for the GA launch for codex in Bedrock to work fully.