Skip to content

Troubleshooting

Most problems come down to one of a handful of things. The delivery log is your first stop for anything that tried to send - it records the request and the webhook's response side by side, which usually points straight at the cause.

Nothing arrives, and nothing is logged

If there's no row in the log at all, the rule never fired. Check, in order:

  1. Is the plugin enabled? The global Enabled switch in Settings is a kill switch - if it's off (or WEBHOOK_NOTIFIER_ENABLED is set to false in your environment), nothing sends.
  2. Is the rule enabled? A disabled rule never fires. Check the toggle on the Rules list.
  3. Does the source match what happened? An "Entry saved" rule won't fire for a user registering. For a Custom event rule, the Sender Class and Event Name have to match the event exactly.
  4. Do the conditions pass? A condition that's too strict (a section handle that doesn't match, a number threshold that wasn't crossed) silently filters the event out. Try temporarily removing conditions to confirm the rule fires at all, then add them back one at a time.
  5. Drafts and revisions are skipped for the Entry source, so autosaves won't trigger it - only a real save of the canonical entry will.

A delivery is logged as Failed

Open the delivery's detail page and read the response body and error message. Common causes:

  • A wrong or expired URL. Send a test from the connection (Connections) to confirm the URL still works.
  • The endpoint rejected the body. For non-Teams webhooks, the service may expect a different payload shape. Check the request payload against what that service documents, and adjust your raw payload.
  • A timeout. If the endpoint is slow, raise HTTP timeout in Settings.

Failed sends are retried up to Max retries times before they settle on Failed, so a brief outage usually recovers on its own.

Teams: UnauthorizedSenderForChannelNotification (HTTP 401)

This is the most common Teams-specific issue, and it isn't a plugin error. The Power Automate flow ran, but Teams refused the post because the flow's posting identity isn't a member of the target team or channel.

Fix: recreate the workflow from inside the channel (channel → ⋯ → Workflows) while signed in as a member of that team, or add the flow's connection account to the team. See Microsoft Teams for the full setup.

The Queue size source never fires

The Queue size source is scheduled, not instant - it only checks when its console command runs:

bash
php craft webhook-notifier/monitor/queue

If you're not getting alerts, confirm that command is in your cron and running, and that your condition (e.g. total is greater than 50) is actually being crossed. Run the command by hand to see the current queue size it reports. If you've set --cooldown, remember it deliberately suppresses repeat alerts within that window.

Freeform source isn't in the list

The Freeform submission source only appears when Solspace Freeform (5.x) is installed and enabled. If it's missing, check Freeform is active under Settings → Plugins.

A resent delivery came through blank or unchanged

Resends behave differently depending on what was saved with the original delivery - re-rendering the rule's current card when there's a saved context, or re-posting the original body when there isn't. This is expected; Resending explains which happens when.

Still stuck?

Open an issue on GitHub with the delivery's request and response from the log, and what you expected to happen.

Redact before you share

A logged request or response can contain the webhook URL itself, tokens, and whatever was submitted through a form. Strip those out before pasting a delivery into an issue.

Digital help you can trust.