A channel shows “failed”
When a channel shows “Needs attention” on the Channels page, or
a CHANNELS.PUBLISH entry comes back with an error level, walk
through this page to find the cause and fix it.
The underlying error message is the fastest clue — start by reading it, then match against the sections below.
Find the error message
- Go to Structura → System Logs.
- In the filter, type
CHANNELS.PUBLISH. - Set the level filter to Errors.
- Open the most recent failed entry. The Activity / Message column has the reason.
If the entry has extra context (expanded view shows a stack trace or raw provider response), that’s the most useful clue — it’s what the channel’s own API returned to us.
Error: OAuth / authorization
Messages like: invalid_grant, Token expired, Unauthorized,
Access token revoked, 401.
Applies to: LinkedIn (or any future OAuth channel).
Why: you changed your LinkedIn password, revoked Structura from LinkedIn’s authorized apps, or the token aged out naturally.
Fix:
- Open Structura → Channels.
- Click the LinkedIn card.
- Click Reconnect. Walk through the OAuth flow.
See LinkedIn and Disconnecting or reconnecting.
Error: webhook URL invalid
Messages like: 404, Webhook not found, invalid_token (Slack).
Applies to: Slack, Discord.
Why: the webhook was deleted in Slack/Discord — either the channel was archived, an admin revoked the app, or someone regenerated the webhook.
Fix:
- In Slack/Discord, create a new incoming webhook on the destination channel. See the Slack or Discord page for the exact steps.
- Copy the new URL.
- In Structura, open the channel’s install panel and click Reconnect. Paste the new URL.
Error: rate limited
Messages like: 429, rate limit exceeded,
Too many requests.
Applies to: any channel, but most common for LinkedIn if you publish many posts in a short window.
Why: the channel’s API is throttling us because of recent volume.
Fix:
- Wait — most rate limits clear within minutes to an hour.
- If it’s persistent, check whether you’re running an unusual burst (e.g., publishing a backlog). Slow the cadence.
- Dispatches aren’t auto-retried, so missed posts during the throttle won’t catch up automatically; share manually if they matter.
Error: payload too large
Messages like: Payload exceeds limit, Image too large,
413.
Applies to: channels that send the featured image — Discord, Telegram, Slack (less common).
Why: the post’s featured image exceeds the channel’s file-size or pixel limit.
Fix:
- Use smaller featured images. Structura’s built-in Visuals settings can be set to a smaller aspect ratio, or use JPEG/WebP (smaller than PNG) under Structura → Settings → Visuals → Format Encoding.
- If an already-published post failed to dispatch for this reason, the text of the message likely did go through — check the channel.
Error: Telegram-specific
Messages:
chat not found— chat ID wrong, or bot isn’t a member of that chat/channel. For channels, the bot must be an administrator.Forbidden: bot can't initiate conversation with a user— for private chats, you must message the bot first. Send the bot a message in Telegram, then try again.Unauthorized— bot token wrong.
Fix: see Telegram for how to verify the token and chat ID, and how to reconnect with corrected values.
Error: IndexNow-specific
Messages:
Key file mismatch— the<key>.txtfile at your site’s root doesn’t match the key we’re submitting under. Either re-upload the correct file, or regenerate the key in the install panel and upload a new file.Key file not reachable— we couldn’t fetch the file over HTTP. Check that it’s at the web root (not/wp-content/), accessible without auth, and returning 200.
See IndexNow.
Error: email didn’t send
Messages: wp_mail failed, SMTP error.
Applies to: Email to owner.
Why: WordPress’s outbound mail isn’t configured correctly on this site.
Fix: see the “Make sure WordPress can actually send email” section of Email to owner.
Error: everything else
Some channel failures are transient — a brief outage at the
channel, a network blip. If the error message is generic (500,
Unknown error, timeout) and isolated:
- Wait an hour.
- Watch whether the next scheduled post dispatches successfully.
- If it does, it was a transient issue — no action needed beyond manually sharing the missed post if you want.
- If failures persist, treat it like a credential problem and reconnect.
When the channel works but the message looks wrong
If the dispatch “succeeded” per the logs but the message looks off in Slack/Discord/LinkedIn (truncated title, broken image, no link preview):
- Link previews on LinkedIn come from your post’s Open Graph tags.
If your theme or SEO plugin isn’t emitting them, LinkedIn won’t
render a preview. Check with a tool like
https://www.opengraph.xyz. - Slack/Discord embeds can be affected by post content specifics. If the issue is reproducible, send us a sample URL.
If you’re stuck
Contact support with:
- The channel name.
- The error text from the log entry.
- The approximate time of the failed dispatch.