Problem
With Backstage MCP enabled and an OpenAI-backed GPT-5.5 model, requests can fail before tool execution with a generic server_error / response.failed.
Repro context
Backstage MCP exposes tool parameter schemas with many JSON Schema pattern regex constraints, such as entity refs and catalog filters. OpenAI's tool schema validator rejects that shape in practice, while Anthropic/Bedrock accept it.
Observed locally against the real opencode config with Backstage enabled:
- before the fix: GPT-5.5 + Backstage MCP crashed with
server_error / response.failed
- after stripping
pattern constraints for @ai-sdk/openai: GPT-5.5 successfully routed to backstage_auth_who-am-i
- the resulting
NotAllowedError was expected Backstage auth behavior, confirming the model request/tool-routing path no longer crashed
Expected behavior
The model request should accept the tool schemas and proceed to either tool execution or a tool-level auth/error response.
Actual behavior
The model request fails before useful tool execution with a generic server error.
Problem
With Backstage MCP enabled and an OpenAI-backed GPT-5.5 model, requests can fail before tool execution with a generic
server_error/response.failed.Repro context
Backstage MCP exposes tool parameter schemas with many JSON Schema
patternregex constraints, such as entity refs and catalog filters. OpenAI's tool schema validator rejects that shape in practice, while Anthropic/Bedrock accept it.Observed locally against the real opencode config with Backstage enabled:
server_error/response.failedpatternconstraints for@ai-sdk/openai: GPT-5.5 successfully routed tobackstage_auth_who-am-iNotAllowedErrorwas expected Backstage auth behavior, confirming the model request/tool-routing path no longer crashedExpected behavior
The model request should accept the tool schemas and proceed to either tool execution or a tool-level auth/error response.
Actual behavior
The model request fails before useful tool execution with a generic server error.