{"record":{"id":"edc369b88755dce4","repo":"BerriAI/litellm","slug":"bedrock-mantle-auth-failed-no-bearer-token-and-no","errorCode":null,"errorMessage":"Bedrock Mantle auth failed: no Bearer token and no usable AWS credentials. Set BEDROCK_MANTLE_API_KEY (or AWS_BEARER_TOKEN_BEDROCK) or pass api_key for Bearer auth, or provide AWS credentials (IAM role / access key / profile / web identity) for SigV4.","messagePattern":"Bedrock Mantle auth failed: no Bearer token and no usable AWS credentials\\. Set BEDROCK_MANTLE_API_KEY \\(or AWS_BEARER_TOKEN_BEDROCK\\) or pass api_key for Bearer auth, or provide AWS credentials \\(IAM role / access key / profile / web identity\\) for SigV4\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/bedrock_mantle/common_utils.py","lineNumber":103,"sourceCode":"        try:\n            return self._aws_signer._sign_request(\n                service_name=\"bedrock\",\n                headers=headers,\n                optional_params=optional_params,\n                request_data=request_data,\n                api_base=api_base,\n                api_key=bearer,\n                model=model,\n                stream=stream,\n                fake_stream=fake_stream,\n            )\n        except (\n            NoCredentialsError,\n            PartialCredentialsError,\n            ProfileNotFound,\n            CredentialRetrievalError,\n        ) as e:\n            raise ValueError(\n                \"Bedrock Mantle auth failed: no Bearer token and no usable AWS \"\n                \"credentials. Set BEDROCK_MANTLE_API_KEY (or AWS_BEARER_TOKEN_BEDROCK) \"\n                \"or pass api_key for Bearer auth, or provide AWS credentials \"\n                \"(IAM role / access key / profile / web identity) for SigV4.\"\n            ) from e\n\n\ndef mantle_supports_responses(model: str | None, model_cost: dict) -> bool:\n    \"\"\"Whether a Bedrock Mantle model can serve the native Responses API.\n\n    Purely data-driven from the model's price-map capability signal -- either\n    /v1/responses in supported_endpoints, or mode=responses -- both overridable\n    via register_model and proxy model_info, so onboarding a model is a JSON\n    change, never a code change. There is deliberately NO model-name match here:\n    capability is per-model, not per-family (openai.gpt-oss-120b supports\n    Responses while openai.gpt-oss-safeguard-120b does not, despite sharing the\n    gpt-oss substring), so a substring gate would be wrong. A model absent from\n    model_cost simply has no signal and returns False (chat-completions emulation).","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/bedrock_mantle/common_utils.py#L85-L121","documentation":"Error \"Bedrock Mantle auth failed: no Bearer token and no usable AWS credentials. Set BEDROCK_MANTLE_API_KEY (or AWS_BEARER_TOKEN_BEDROCK) or pass api_key for Bearer auth, or provide AWS credentials (IAM role / access key / profile / web identity) for SigV4.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/bedrock_mantle/common_utils.py:103 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set BEDROCK_MANTLE_API_KEY (Bearer auth) or provide AWS credentials for SigV4."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}