reasoning_effort_adjusted | All | The requested effort isn’t one the route accepts, so the closest level ran. detail.applied_effort is null when the route has no effort control. See Reasoning. |
reasoning_effort_policy_bound | All | The routing policy’s effort bounds for the model changed the effort you asked for |
reasoning_exhausted | All | The model billed output tokens but returned no content, usually because reasoning used the whole budget. The response is still a 200, with finish_reason max_tokens on native /v1/responses (length on OpenAI-compatible surfaces). Raise the token limit or lower the effort. |
reasoning_summary_unavailable | All | reasoning.summary wasn’t returned, because the output budget was too small or ran out, or the OpenAI model doesn’t reason. detail.reason says which. |
cache_control_ignored | All | The route can’t honor your cache markers, so they were removed. detail names the vendor and prompt_caching_mode. See Prompt caching. |
server_tool_iteration_limit_reached | All | A web search loop hit its limit of 6 iterations, so the model answered from the results it had. detail.max_iterations is 6. |
web_search_remapped | All | A vendor-hosted search tool ran as merge:web_search under your organization’s web search mode. detail lists remapped_tools and web_search_mode. |
openai_fields_ignored | POST /v1/responses | OpenAI-only fields with no native equivalent were ignored. detail.ignored_fields lists them. Call /v1/openai/responses or send X-Merge-Wire-Format: openai instead. See OpenAI Responses API clients. |
tools_dropped | /v1/openai/responses | Custom tool types the route can’t express were removed. detail.dropped_tools names them. |
tools_mapped | /v1/openai/responses | A custom tool was sent as a function tool, so its grammar isn’t enforced. detail.mapped_tools names them. |
openai_tool_search_dropped | /v1/openai/responses | The route moved off OpenAI after the request was accepted, so tool_search was removed and every deferred tool was loaded up front |
openai_web_search_dropped | /v1/openai/responses | OpenAI hosted web_search was removed because the route isn’t direct OpenAI. Use {"type": "merge:web_search"} for search on any model |
openai_image_generation_dropped | /v1/openai/responses | OpenAI hosted image_generation was removed because the route isn’t direct OpenAI. Route to an openai/ model or call POST /v1/images/generations |
openai_params_ignored | /v1/openai/responses | The route is served through chat completions, so parameters with no equivalent had no effect. detail.ignored_params lists them. |
input_items_dropped | /v1/openai/responses | The route is served through chat completions, so replayed reasoning and other items it can’t represent were dropped. detail.dropped_item_types counts them. |