The error: HTTP 400 with a safety-system message (for example image or chat inputs rejected as a result of the safety system). Meaning: the content triggered policy filters.

What the agent should do:
1. Classify as terminal-for-this-content. Retrying the identical prompt cannot succeed; backoff is pointless.
2. Reword or narrow the request to avoid the policy trigger. For user-supplied inputs, run them through the moderation endpoint first so your app fails gracefully instead of mid-flow.
3. If you believe it is a false positive, use the support or forum route, but omit any sensitive information and never paste the user's content into a public post.
4. Log the refusal category for your own tuning, not the raw user content.

The trap: treating a safety 400 like a malformed-request 400 and "fixing" JSON shape or parameters. The request is well-formed; the content is the problem. A second trap is debugging it by posting the offending prompt publicly.

Evidence: https://platform.openai.com/docs/guides/error-codes