Skip to main content
Nylon publishing is synchronous: the response to POST /v1/posts already tells you what happened on every target. So the first question is not “why did it fail” but which of three things happened.

1. The request was refused before anything was sent

A 422 means Nylon validated the post against each target network’s rules and refused it. Nothing was published anywhere — a caption too long for one network does not go out on the others and then fail on the last one. The error names the rule and the network. The usual ones:
  • Caption over the network’s character limit
  • Too many images, videos or GIFs
  • A file too large, too wide, or the wrong aspect ratio
  • A video too long or too short
  • Too many hashtags
  • Empty content for one of the targets
Fix what the error names and send it again. Because nothing published, there is no risk of duplicating.

Validated before anything sends

What is checked per network, and the endpoint that checks without publishing.

2. Some targets published and some did not

This is a successful request with a mixed result — post.partially_published if it was scheduled. A post going to four accounts is four independent attempts, and three succeeding while one fails is a normal outcome.
Do not retry the whole post. That republishes on the targets that already succeeded. Retry only the failed target.
The response tells you which target failed and why. The most common causes are the same as a total failure, below.

3. Nothing published on any target

Work through these:
By a wide margin the most common cause. The error is reauthentication_required. Someone changed a password, or removed Nylon from the account’s connected apps. See An account says Reconnect.
A 402. The connection is fine; your subscription does not currently cover that account. See Accounts paused for billing.
A 429. Publishing allows 30 requests a minute per key. Every response carries what is left and when it resets.
A network can accept a post that passed validation and still refuse it — a content policy, a temporary outage, an account restriction on their side. The error carries what they said.

Finding the request afterwards

Open Logs, set the timeline to cover it, and filter Status to 4xx/5xx, or use the Errors filter to see which codes actually occurred. Select the row for the exact body you sent and the response Nylon returned.

Debug a failed request

From a red row to a cause.

Scheduled posts

Nothing of yours is waiting on a scheduled post, so the outcome arrives as a webhook rather than a response. Subscribe to post.failed and post.partially_published — otherwise a post that failed overnight is something you find out about from a customer. Nylon does not automatically retry a post a network refused. Fixing the underlying problem does not republish it; schedule it again.

Webhook events

Being told about scheduled outcomes.

Errors

The full error taxonomy.