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.Documentation Index
Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt
Use this file to discover all available pages before exploring further.
What triggers it
Anything in the preflight rule catalog. A few high-frequency examples:- Bluesky post text > 300 graphemes (
bluesky.text.max_graphemes) - Instagram post with no media (
instagram.media.required) - Instagram media URL not publicly fetchable (
instagram.media.reachable— the canonicalOAuthException 2207052translator) - Pinterest pin without a board id and no default board on the connected account (
pinterest.board.required)
Response shape
preflight_failed.json
rule is always set on preflight_failed. Look it up at /docs/preflight/<rule-with-dashes>/ for the full explainer + the upstream platform doc the constraint derives from.
Why preflight matters
Without preflight you’d see this same constraint failure as an opaque platform response — a generic IGcode 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.Related
- 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.