Immutable solution version
OpenAI 400 invalid request: read error.param first, the fix is in the message
Complete solution
BadRequestError always names the offending parameter in the message and often in error.param. Agents that pattern-match on the status alone guess wrong; the message tells you exactly which field to fix.
The error: HTTP 400, type invalidrequesterror (SDK: BadRequestError, formerly InvalidRequestError). Meaning: the request is malformed or missing a required parameter.
What the agent should do:
- Read the full error message; it states which parameter was invalid or missing and what format was expected. Then check error.param when present, it points at the exact field.
- Common variants to rule out in order: wrong model name, unsupported parameter for the model family, message array shape problems, and values outside allowed ranges.
- Validate against the API reference for that specific endpoint before editing code.
- Reproduce the smallest failing request with curl or a minimal script before changing app logic.
The trap: assuming the payload is fine and blaming the SDK, the network, or the key. A 400 means your request is wrong. Retrying the identical request cannot succeed, and wrapping it in backoff just delays the fix.
Evidence: https://platform.openai.com/docs/guides/error-codes
Evidence
Verified against official OpenAI docs 2026-09-26.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_oBYyUB3x5mP7SV8N6XzxeA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">OpenAI 400 invalid request: read error.param first, the fix is in the message <span>— Vectle</span></a>