Discord posting errors and fixes
A Discord failure is usually reconnect_required (the webhook was deleted or no longer works, so paste a new webhook URL), platform_rejected (Discord said 400, for example a forum channel or an empty message) or platform_unavailable (rate limited, nothing posted).
#Errors you can get posting
yeetpost answers with its own code and message. It does not hand back Discord's own text, so the second column is what yeetpost reads off Discord's answer. Every body is JSON with an error code and a message; platform_rejected, platform_unavailable and internal_server_error also carry a req_id. Inside a post item the same vocabulary shows up as { "code": ..., "message": ... }.
| yeetpost code | HTTP | What yeetpost reads | What it means | Fix |
|---|---|---|---|---|
reconnect_required | 403 | A 404, 401 or 403 from the webhook. The message is "Discord no longer accepts this connection. Reconnect it in the yeetpost dashboard." | The webhook was deleted, or the app lost access to it. Nothing short of a fresh webhook fixes that. | Create a new webhook in Discord and paste its URL when you reconnect. Pasting a webhook for the same channel replaces the old one in place. Reconnect the account at app.yeetpost.com/app/connections. For a customer's connection, send them through POST /profiles/{profileId}/connect with the connectionId. |
platform_rejected | 422 | A 400 with Discord code 220001. The message is "This is a forum channel, which needs a post title. Use a webhook for a normal text channel." | A forum channel's webhook refuses a plain message, and yeetpost has no field for a thread name. | Connect a webhook from a normal text channel. |
platform_rejected | 422 | A 400 with Discord code 50006. The message is "Discord refused an empty message." | There was nothing to send. | Send some text. |
platform_rejected | 422 | Any other 400. The message is "Discord rejected the post." | Discord refused the message. yeetpost does not read the reason beyond the two codes above. | Change the text and post again. Quote the req_id if the refusal looks wrong. |
platform_unavailable | 503 | A 429 that is still there after yeetpost waited once. A wait of up to 5 seconds is waited out and the send tried again; a longer one is not. The message is "Discord is rate limiting this account, so nothing went out. Send it again later." | Discord rate limited the webhook. Nothing was posted. | Nothing was posted. Wait a bit, then send it again with a new Idempotency-Key. |
platform_unavailable | 503 | A 5xx or any other status, or a dead socket. The messages are "Discord was busy or down, so nothing went out. Send it again in a bit." and "Could not reach Discord, so nothing went out. Send it again later." | Discord was down or unreachable. Nothing was posted. | Nothing was posted. Wait a bit, then send it again with a new Idempotency-Key. |
media_unsupported | 400 | A 413, or Discord code 40005. The message is "Discord refused the image: it is over this server's upload limit." | The image is over the upload limit of the server the channel is in, which depends on its boost tier. | Send a smaller image. |
platform_timeout | 504 | No answer within 30 seconds on a post that carries images. The message is "Discord did not answer within 30 seconds. The message may still have posted, so check the channel before sending it again." | The upload may or may not have finished. A text-only post that times out is different: it counts as sent, with the channel link and no message id, so it cannot be deleted from yeetpost. | Check the channel before sending again. This is never retried for you. |
text_too_long | 400 | Nothing: yeetpost checks before it calls Discord. | "Discord allows 2,000 characters; the text is {count}." with a field naming the part. Only for AI-polished text checked at send time is the wording "Text is too long (max 2,000 characters for Discord)." | Shorten the text. |
internal_server_error | 500 | Anything else unexpected. The message is "An unexpected error occurred" with a req_id. | Whether the message went out is unknown. | Check the account on the platform before sending again. GET /posts/{postId} shows how yeetpost recorded it. Quote the req_id if you report it. |
reconnect_required | 403 | Nothing: yeetpost has no stored login for this connection. | The message is "Discord's login is missing. Reconnect it to send again." | Reconnect the account at app.yeetpost.com/app/connections. For a customer's connection, send them through POST /profiles/{profileId}/connect with the connectionId. |
platform_unavailable | 503 | Nothing: yeetpost could not get ready to send. | The message is "Discord was busy or down, so nothing went out. Send it again." Nothing was posted. | Nothing was posted. Wait a bit, then send it again with a new Idempotency-Key. |
internal_server_error | 500 | Nothing readable: something threw after the send to the platform had started. The message is "An unexpected error occurred while sending." with a req_id. | The post may already be live on Discord. | Check the platform before sending again: a blind resend can post twice. GET /posts/{postId} shows how yeetpost recorded it. Quote the req_id if you report it. |
Codes that are not about one platform (invalid_request, invalid_connection, idempotency_key_conflict, the rate limit and the rest) are on Errors.
#Errors when connecting
Connecting happens on a screen, not through the posting endpoint. These are the answers it gives. A wrong entry leaves the connect link open for another try.
| Message | What it means | Fix |
|---|---|---|
| invalid discord webhook url (400) | The URL is not https, not on one of Discord's own hosts, or not the exact path Copy Webhook URL produces. | Copy the webhook URL again from the channel's Integrations settings in Discord. |
| discord webhook lookup failed (400) | Discord does not know that webhook. Nothing is stored. | The webhook was deleted or the URL is cut short. Create a new one and paste it. |
#Reconnecting
reconnect_required and, inside a post item, unauthorized both mean the stored login is dead. Nothing in the request will fix it. Reconnect the account at https://app.yeetpost.com/app/connections. For a customer's connection under a profile, send them through POST /profiles/{profileId}/connect and pass the connectionId. GET /connections shows each connection's status: active, expiring or reconnect_required. The connection.reconnect_required webhook fires the moment yeetpost learns the login is dead.
#More
Last verified 2026-10-29