Channel activity & errors
Two places tell you whether your channels are healthy: the Channels page and the System Logs page. The Channels page gives you a fast at-a-glance view; the Logs page lets you dig into any specific publish.
At-a-glance: the Channels page
Open Structura → Channels in wp-admin (or the Channels tab in the portal). Each connected channel shows one of three states:
- Connected — healthy; dispatches are firing successfully.
- Needs attention — recent dispatches have failed. Click the badge for a short explanation (e.g., “OAuth token expired”, “Webhook URL returned 404”).
- Disabled — you paused the channel. Dispatches won’t fire until you re-enable it.
“Recent” in this context means the last handful of attempts — we don’t flag a channel as unhealthy on a single transient blip, but a repeated failure will flip the badge.
Drill in: the System Logs page
For per-publish detail, open Structura → System Logs and filter
on CHANNELS. in the free-text box. You’ll see three step names
relating to channels:
CHANNELS.FORWARD— your site told the cloud “a post published.” One entry per publish.CHANNELS.DISPATCH— the cloud started fanning out to connected channels. One entry per publish (lists the channels).CHANNELS.PUBLISH— the actual per-channel attempt. One entry per channel per publish, marked Success or Errors.
Read Understanding log steps & levels for the full glossary.
Typical successful pattern
For one post, three connected channels, you’d see something like:
CHANNELS.FORWARD— Information. “Forwarded to cloud for dispatch.”CHANNELS.DISPATCH— Information. “Fanning out to connected channels: linkedin, slack, indexnow.”CHANNELS.PUBLISH— Success. “LinkedIn post created.”CHANNELS.PUBLISH— Success. “Slack message posted.”CHANNELS.PUBLISH— Success. “IndexNow URL submitted.”
Typical failed pattern
One channel down, others healthy:
CHANNELS.FORWARD— Information.CHANNELS.DISPATCH— Information. “Fanning out to: linkedin, slack.”CHANNELS.PUBLISH— Success. “LinkedIn post created.”CHANNELS.PUBLISH— Errors. “Slack webhook returned HTTP 404. Webhook may have been deleted.”
The Error-level entry gives you the reason. Act on it — either fix the credential (see Disconnecting or reconnecting) or, for a transient issue, wait and confirm the next publish works.
Common error messages
“OAuth token expired” / “invalid_grant” — the channel’s auth token is no longer valid. Reconnect it. See Disconnecting or reconnecting.
“Webhook returned 404” — the webhook URL you gave us no longer exists. Regenerate it in Slack/Discord and reconnect.
“Rate limited” — you’ve published a lot in a short time and the channel is throttling. Dispatches for the next few posts may also fail; the channel typically unblocks within minutes to an hour.
“Payload too large” — usually means a featured image exceeded the channel’s file size limit. The rest of the message may have gone through; check the channel to see what landed.
“Chat not found” / “Forbidden” — Telegram-specific. Bot isn’t a member of the chat, chat ID wrong, or the bot lacks permission.
For a deeper walk through failures, see A channel shows “failed”.
Dispatches are not retried automatically
If a dispatch fails, it’s not queued for retry. That’s a deliberate MVP choice — retrying without care can double-post to channels that partially succeeded. Instead, Structura surfaces the failure so you can:
- Fix the underlying issue (reconnect, fix webhook, etc.).
- Manually share the missed post from the destination itself if it’s important.
- Let the next scheduled publish go through cleanly.
If this trade-off is a pain for you, let us know — we’re gathering signal for what a retry or catch-up feature should look like.
What health the Channels page actually shows
On each card:
- Last-dispatched timestamp.
- The most recent per-channel status (Success, Errors).
- A compact count like “12 sent / 1 failed” across recent history.
Click a connected channel to see its install panel, which includes a button to View in logs — pre-filters the System Logs page to that channel’s activity.