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
A422 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
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.
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:The account needs reconnecting
The account needs reconnecting
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.The account is paused for billing
The account is paused for billing
A
402. The connection is fine; your subscription does not currently cover that account. See Accounts paused for billing.You are being rate limited
You are being rate limited
A
429. Publishing allows 30 requests a minute per key. Every response carries what is left and when it resets.The network refused it
The network refused it
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 to4xx/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 topost.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.
Related
Webhook events
Being told about scheduled outcomes.
Errors
The full error taxonomy.