Repository navigation
Add recovery guidance to content-filter retries - #49119
Merged
copyberry[bot] merged 1 commit intoSep 29, 2026
Merged
copyberry[bot] merged 1 commit into
copyberry[bot] merged 1 commit into
Conversation
## Why Responses stopped by `content_filter` previously followed generic stream-error retry handling without guidance about the block. Retried requests need instructions to explain the limitation and offer a permitted alternative. ## What changed - Recognize content-filter failures as a distinct error while preserving retryability and the existing public error representation. - Append developer guidance to the conversation after each sampling block, retaining delivered output and using the existing retry handling. - Support a model catalog override through `model_messages.content_filter_guidance`. Missing, null, blank, or values exceeding 512 UTF-8 bytes fall back to bundled guidance. - The bundled guidance tells the model to avoid reproducing or working around blocked content, briefly explain the limitation, offer a permitted alternative, and continue unrelated authorized work. ## Testing Add a scenario and request-history snapshot covering repeated blocks, catalog guidance on each retry, retained partial output, and eventual completion. Add error-mapping assertions for retryability, public error classification, and error text. GitOrigin-RevId: ba0c201b3a5a3acf5cfa971332027240e0690225
copyberry
Bot
force-pushed
the
copyberry/codex-internal-to-codex-oss/ba0c201b3a5a3acf5cfa971332027240e0690225
branch
from
September 29, 2026 01:14
ff614f0 to
8bd5a13
Compare
copyberry
Bot
deleted the
copyberry/codex-internal-to-codex-oss/ba0c201b3a5a3acf5cfa971332027240e0690225
branch
September 29, 2026 01:14
Charlotte3240
temporarily deployed
to
issue-triage
September 29, 2026 01:19 — with
GitHub Actions
Inactive
Charlotte3240
temporarily deployed
to
issue-triage
September 29, 2026 01:19 — with
GitHub Actions
Inactive
Charlotte3240
temporarily deployed
to
issue-triage
September 29, 2026 01:19 — with
GitHub Actions
Inactive
handsomenl
temporarily deployed
to
issue-triage
September 29, 2026 01:24 — with
GitHub Actions
Inactive
handsomenl
temporarily deployed
to
issue-triage
September 29, 2026 01:24 — with
GitHub Actions
Inactive
handsomenl
temporarily deployed
to
issue-triage
September 29, 2026 01:24 — with
GitHub Actions
Inactive
handsomenl
temporarily deployed
to
issue-triage
September 29, 2026 01:25 — with
GitHub Actions
Inactive
Fastrack-Paul
temporarily deployed
to
issue-triage
September 29, 2026 01:37 — with
GitHub Actions
Inactive
Fastrack-Paul
temporarily deployed
to
issue-triage
September 29, 2026 01:37 — with
GitHub Actions
Inactive
Fastrack-Paul
temporarily deployed
to
issue-triage
September 29, 2026 01:37 — with
GitHub Actions
Inactive
UncleBuck86
temporarily deployed
to
issue-triage
September 29, 2026 01:44 — with
GitHub Actions
Inactive
UncleBuck86
temporarily deployed
to
issue-triage
September 29, 2026 01:44 — with
GitHub Actions
Inactive
UncleBuck86
temporarily deployed
to
issue-triage
September 29, 2026 01:44 — with
GitHub Actions
Inactive
UncleBuck86
temporarily deployed
to
issue-triage
September 29, 2026 01:46 — with
GitHub Actions
Inactive
tarun-pacifica
temporarily deployed
to
issue-triage
September 29, 2026 01:46 — with
GitHub Actions
Inactive
tarun-pacifica
temporarily deployed
to
issue-triage
September 29, 2026 01:46 — with
GitHub Actions
Inactive
tarun-pacifica
temporarily deployed
to
issue-triage
September 29, 2026 01:46 — with
GitHub Actions
Inactive
takeuchi-akarium
temporarily deployed
to
issue-triage
September 29, 2026 01:52 — with
GitHub Actions
Inactive
takeuchi-akarium
temporarily deployed
to
issue-triage
September 29, 2026 01:52 — with
GitHub Actions
Inactive
takeuchi-akarium
temporarily deployed
to
issue-triage
September 29, 2026 01:52 — with
GitHub Actions
Inactive
takeuchi-akarium
temporarily deployed
to
issue-triage
September 29, 2026 01:53 — with
GitHub Actions
Inactive
Mht0421
temporarily deployed
to
issue-triage
September 29, 2026 01:55 — with
GitHub Actions
Inactive
Mht0421
temporarily deployed
to
issue-triage
September 29, 2026 01:55 — with
GitHub Actions
Inactive
Mht0421
temporarily deployed
to
issue-triage
September 29, 2026 01:55 — with
GitHub Actions
Inactive
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add recovery guidance to content-filter retries
Why
Responses stopped by
content_filterpreviously followed generic stream-error retry handling without guidance about the block. Retried requests need instructions to explain the limitation and offer a permitted alternative.What changed
model_messages.content_filter_guidance. Missing, null, blank, or values exceeding 512 UTF-8 bytes fall back to bundled guidance.Testing
Add a scenario and request-history snapshot covering repeated blocks, catalog guidance on each retry, retained partial output, and eventual completion. Add error-mapping assertions for retryability, public error classification, and error text.