Forum Discussion
o3-deep-research is failed with the status incomplete with the reason as content filter
The status incomplete_details.reason = content_filter means a generated step was stopped by the deployment’s safety policy; it does not prove the original user prompt caused it. In deep research, user input, retrieved MCP content, and generated intermediate or final text can all participate. The model can choose different searches each run, which explains the intermittent behavior.
Log the full response JSON, not just status or output_text, and inspect output items, annotations, content_filters, and every MCP search/fetch result. Then isolate systematically: run without MCP; run MCP with one small known-safe document; return short plain-text excerpts instead of whole files; remove embedded instructions or HTML; and add documents back in batches. Also inspect the filter configuration attached to the deployment, including Prompt Shields, protected-material filters, and custom blocklists.
If no annotation identifies the category, the service may not expose the exact filtered intermediate text. Capture the response ID, request ID, timestamp, deployment, filter configuration, and MCP payload hashes for support. Retrying may work, but blind retries are not a root-cause fix.