Managed technical services across Canada
Proudly Canadian

Guide

WooCommerce Webhooks Return 403 or 406

Diagnose this issue: outbound webhook deliveries are rejected by the receiving stack. Use safe tests, log evidence and targeted fixes.

Editorial process: This article was created with AI assistance and prepared for publication by Gotekky.

Quick answer

What to check first

Diagnose this issue: outbound webhook deliveries are rejected by the receiving stack. Use safe tests, log evidence and targeted fixes.

WooCommerce Webhooks Return 403 or 406 usually means that outbound webhook deliveries are rejected by the receiving stack. The fastest reliable path is to reproduce one controlled transaction, identify the layer that generated the response, correlate it with logs, and change only the component supported by evidence.

The most useful clue is not the headline error but the boundary where normal processing stops. For this case, start with WooCommerce webhook delivery and preserve a timestamp before changing anything.

What this symptom usually means

In practical terms, outbound webhook deliveries are rejected by the receiving stack. The same visible symptom can be produced by several layers, so diagnosis must distinguish a network or policy rejection from an application failure. The absence of an application log entry is itself evidence: it often means the request was rejected earlier.

Before testing, write down the exact URL, HTTP method or client action, source IP, account, timestamp and expected outcome. That small incident record prevents a later successful homepage request from being mistaken for proof that the original transaction works.

Diagnostic sequence

  1. Reproduce one controlled request. Use a browser and a command-line request against WooCommerce webhook delivery. Save the HTTP status, response headers, timestamp and source IP so the event can be matched to logs.
  2. Determine which layer generated the response. A raw Apache or NGINX error page points to the web-server or security layer. A branded WordPress response, JSON error or PHP stack trace means the request reached the application.
  3. Correlate the timestamp with evidence. Check WooCommerce status logs and origin web server logs. Search a narrow time window instead of scanning an entire day. Record any rule ID, request ID, plugin name or fatal error.
  4. Test the smallest reversible change. Use staging when possible. Disable one suspect component, add an endpoint-scoped security exception, or correct one configuration value. Avoid disabling the entire WAF or all plugins.
  5. Repeat the original transaction. Retest with the same method, payload, headers and source. A homepage check does not prove that a POST callback, authenticated AJAX request or checkout transaction works.

Read-only command to start with

wp wc webhook list --user=admin

Replace example values before running a command. Prefer read-only inspection first, redact credentials from shared output, and take a configuration backup before editing production.

Common causes and what proves them

CauseEvidence to look forCorrective direction
Request blocked before PHPA WAF, bot rule, access control or server directive returns the response before WordPress can log it.Correlate the timestamp with the web-server or security audit log and scope the correction to the required endpoint.
Application component failsA plugin, theme, PHP extension or database call triggers an error only for the affected transaction.Reproduce on staging, capture the fatal or exception, and isolate the responsible component.
Environment mismatchURLs, cookies, proxy headers, PHP limits, permissions or scheduled tasks differ from what the integration expects.Compare the working and failing environments and change one verified difference at a time.

Safe correction strategy

A safe correction should explain the evidence and have a clear rollback. For WooCommerce Webhooks Return 403 or 406, avoid broad changes such as disabling the complete firewall, recursively changing every file permission, deleting queues or caches without a copy, or raising resource limits without measuring consumption.

Write the proposed change in one sentence: what will change, which endpoint or service it affects, why the evidence supports it, how success will be measured and how to undo it. Apply it first in staging or to the narrowest production scope available.

Operational rule: the fix is not complete when the error disappears. It is complete when the original business transaction succeeds, logs are clean enough to explain the result, security remains proportionate and rollback is documented.

How to verify the fix

  • Repeat the original WooCommerce webhook delivery transaction with the same method, payload, identity and source.
  • Confirm the expected result in the application, not only an HTTP 200 or a running process.
  • Check logs after the successful test to ensure the result was not produced by a fallback, retry or hidden error.
  • Run an independent external check from a different network or monitoring location.
  • Record the final change, timestamp, owner and rollback path.

Preventing a repeat incident

  • Keep a small runbook with the exact test, log locations and normal response.
  • Use staging for application, PHP, WAF and integration changes before production.
  • Monitor the business transaction that matters rather than only server uptime.
  • Review backup restorability, credentials, certificates and external dependencies on a schedule.
  • Use narrow exceptions and documented ownership so temporary troubleshooting changes do not become permanent risk.

When professional help is justified

Escalation is reasonable when:

  • the issue affects checkout, login, email delivery or another revenue-critical transaction;
  • the evidence spans several providers or layers and no single vendor owns the full path;
  • security controls must be adjusted and the correct scope is uncertain;
  • a restoration, migration or data-consistency decision is required;
  • the problem returns after an apparently successful fix.

Gotekky manages WordPress and WooCommerce environments where the application, web server, security layer, backups and integrations must work together.

Sources and further reading

These references describe the underlying platform behavior. Always compare them with the versions and configuration actually deployed.

Gotekky

Need help deciding what to do next?

Tell us what you are seeing and what outcome you need. We will identify whether a managed service, scoped project or paid technical assessment is the right next step.