Skip to main content
The request was syntactically valid but failed a platform-specific rule we check locally before the upstream call. This is the canonical “we caught it before the platform did” error.

What triggers it

Anything in the preflight rule catalog. A few high-frequency examples:

Response shape

preflight_failed.json
rule is always set on preflight_failed. The ruleUrl is the absolute link to that rule’s docs page — same path as /docs/preflight/<rule-with-dashes>/ — so a CLI can open it directly without parsing.

Why preflight matters

Without preflight you’d see this same constraint failure as an opaque platform response — a generic IG code 100, a LinkedIn 422 with no field path, a Threads HTTP 200 carrying a status code in the body. Preflight surfaces the rule id directly, with a remediation, before the upstream call ever happens.

Remediation

Open the rule’s page and follow the remediation. Every preflight rule has one.
  • Preflight — the full rule catalog.
  • platform_rejected — preflight passed but the platform still rejected. We treat this as a preflight gap and add a rule.