October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

What to Do When Webhook Verification Fails in Production

When webhook verification fails, keep rejecting mismatches. Trace one delivery through provider records, signing configuration, raw-body handling, and server logs before safely replaying missed events.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep verification enabled, reject mismatches, and diagnose the exact request and provider configuration before replaying deliveries. A signature mismatch is a security boundary, not a reason to accept the payload temporarily. First establish what the provider signed and what your server actually received; then restore verification and recover missed events safely.

Why a verification failure needs careful handling

Webhook signatures let your application check that a delivery matches the provider’s signing scheme and configured secret. Until that check succeeds, do not trust or process the event contents. GitHub recommends validating a delivery before further processing; Shopify’s developer documentation says to verify HMAC before trusting payload contents and to reject deliveries with mismatched signatures.

As an Amazon Associate I earn from qualifying purchases.

A valid signature does not guarantee that an event is fresh, unique, in order, or safe to apply twice. Authentication and business processing are separate checks: verify the delivery, then handle duplicates and event state appropriately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Triage the failure in production

1. Establish what changed and what is affected

Identify the provider, endpoint or subscription, the first failure time, affected event types, and whether failures affect every delivery or only a subset. Check recent changes to the configured secret, environment variables, framework or middleware, proxy or API gateway, and character encoding. Treat these as leads to confirm, not as diagnoses.

2. Find one delivery and correlate its records

In the provider’s delivery dashboard or API, locate a failed attempt and record its delivery identifier, event type, timestamp, response status, and any provider-reported error. Match that attempt to application and gateway logs using the identifier and time. GitHub recommends checking recent delivery records and server logs; it also distinguishes a failed attempt from an event that was never attempted or is delayed. If no GitHub delivery appears, check the subscription and allow a few minutes for delivery records to appear.

Keep secrets out of logs, source control, URLs, incident tickets, and screenshots. Log only the request metadata and payload details necessary and permitted to diagnose the failure.

3. Confirm the provider’s signing contract and secret

Check the documentation for the specific provider and endpoint: signing header, algorithm, digest representation, signing input, and configured production secret. Do not assume that one provider’s header or algorithm applies to another. For GitHub, use the X-Hub-Signature-256 header with HMAC-SHA256 and the webhook secret configured for that endpoint. GitHub says the signature header is absent if no secret was configured. Its documentation recommends storing the secret securely rather than hardcoding or committing it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check that the running production process has the intended secret, not a staging value, an empty value, or an outdated value. If the secret was recently changed, confirm the provider and receiver are configured consistently; do not assume a universal rotation overlap or timestamp window.

4. Verify the exact bytes received

Signature verification must use the request body in the form required by the provider, not a parsed JSON object that your application later serializes again. Parsing and reserialization can change whitespace, escaping, or other bytes and cause a mismatch even when the event looks identical when printed.

Inspect the request path through the application: whether middleware reads or transforms the body first, whether a parser runs before verification, whether the body is consumed, and whether a proxy, gateway, or load balancer changes the payload or headers. Shopify explicitly requires the raw request body for verification and warns that a body parser such as express.json() can run too early. GitHub warns that proxies and load balancers must not modify payloads or headers. Also check character encoding; GitHub calls out UTF-8 handling for relevant language and server implementations.

Compare byte-level behavior with a controlled fixture, and avoid printing secrets or sensitive payloads into shared logs. A parsed-object comparison is not a substitute for checking the bytes passed to the verifier.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Shelly Pro 3EM 3CT 63 Wi-Fi & LAN 3-Phase Smart Energy Meter
  • The Shelly Pro 3EM 3CT 63 is a next-gen DIN rail-mountable energy meter for single or three-phase installations, featuring a 63A, 3-phase current transformer for non-contact measurements. It supports 4-quadrant measurement, optical pulse indication of energy usage, and is photovoltaic-ready. *It doesn't have a built-in relay; contactor control requires a Shelly Pro Addon attached to the device.
  • Professional Smart Meter - Shelly Pro 3EM-3CT63 is a professional smart meter that reports accumulated energy, voltage, current, active, and apparent power per phase in real time. It stores data for up to 60 days in 1-minute intervals and includes a real-time clock to maintain accurate time if the SNTP server connection is lost.
  • Ideal for business energy measurement - In commercial buildings, it helps monitor energy usage across floors or departments allowing accurate cost allocation and identification of energy wastage. In manufacturing plants it tracks energy consumption of heavy machinery, optimizing usage to reduce operational costs. For store owners it monitors energy usage of systems like lighting, HVAC § refrigeration, helping to identify inefficiencies § reduce energy bills while supporting sustainable practices
  • Shelly Customer Service - Shelly is one of the fastest-growing Smart Home brands in the world with devices, providing solutions for the automation of private homes, buildings and businesses. We provide our customers with professional support and a 5 years device warranty.
  • Shelly Smart Control App will help you control your Shelly devices remotely and will send notifications for all automated events in your home. You can easily configure devices and manage their settings individually, or you can create personalized scenes by combining Shelly devices to trigger certain actions in your home automation.

5. Restore verification and prove both stages work

Correct the confirmed configuration or request-body issue, deploy through your normal safe process, and check a legitimate provider delivery or provider-supported test. Invalid signatures must still be rejected. Confirm the receiver returns the expected acknowledgment, then separately confirm that the event was durably accepted and downstream processing completed; a valid signature alone does not prove business processing succeeded.

Recover deliveries after verification is healthy

Do not replay deliveries into a receiver whose verification is still failing or disabled. Once the trust check works, use the affected provider’s redelivery mechanism or another provider-supported reconciliation path, and verify event state after recovery.

Make effects idempotent so a retry or redelivery cannot apply the same business operation twice. Use the provider’s delivery identifier for deduplication where appropriate: Shopify documents X-Shopify-Webhook-Id, while GitHub documents X-GitHub-Delivery and says redelivery retains the original ID. Confirm whether your workflow also needs a separate event ID for correlation. GitHub notes that deliveries can arrive out of order, so do not use arrival order as proof of event order.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Meet the provider’s acknowledgment deadline

Webhook deadlines and retry behavior are provider-specific. For the providers covered here, current documentation accessed in 2026 states:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Provider Response timing Retry or delivery consequence Documented delivery ID
GitHub GitHub Docs says the server should return a 2xx response within 10 seconds; otherwise GitHub terminates the delivery and considers it failed. The cited guidance does not state a retry count or retry schedule. X-GitHub-Delivery; GitHub says redelivery retains the original ID.
Shopify Shopify Developer Documentation states a one-second connection timeout and a five-second total timeout for HTTPS deliveries, and expects HTTP 200. Shopify documents eight retries over four hours. After eight consecutive failures, a subscription configured using the Admin API is automatically deleted. X-Shopify-Webhook-Id.

These limits describe the named providers, not a universal webhook contract. Check the affected provider’s current documentation before changing acknowledgment behavior. If synchronous work cannot meet that provider’s deadline, persist the delivery to a durable queue and acknowledge only after durable acceptance; process it asynchronously with backpressure and idempotent effects. A queue adds operational complexity, but it separates fast receipt from slower business work without acknowledging an event that has not been safely accepted.

Choose an implementation that preserves the trust boundary

Approach Best fit Check before adopting
Provider-supported SDK or framework middleware When the provider offers a maintained integration that matches your runtime and endpoint setup. Confirm it verifies the intended endpoint and secret, has access to the raw body, exposes useful failure information, and can be upgraded and tested. Shopify documents automatic verification in its React Router template.
Manual provider-specific verification When supported middleware does not fit the application or you need direct control of request handling. Follow that provider’s signing contract exactly and test raw-body handling, encoding, mismatch rejection, and secret configuration. Shopify documents a manual raw-body HMAC option.
Synchronous processing before acknowledgment When the full operation reliably fits the provider’s response deadline and failures can be handled safely. Account for slow dependencies, load spikes, and what happens if processing succeeds but the acknowledgment is lost.
Durable queue, then acknowledgment When downstream work may exceed the provider’s deadline or needs independent retry and backpressure handling. Ensure acceptance is durable before returning success, and make later processing idempotent. This adds queue operations and monitoring responsibilities.

Deduplication can happen at receipt or through idempotent downstream operations. An inline dedupe record can prevent repeated work early, but requires durable storage and concurrency-safe handling. Idempotent effects protect business operations farther downstream, but require each affected operation to tolerate repeats. Many systems need both; the provider’s delivery ID and the business event’s identity may serve different purposes.

Keep transport and access controls in perspective

Use HTTPS and keep SSL verification enabled, as GitHub recommends. An IP allowlist can be an additional network control, but it is not a replacement for signature validation; GitHub also warns that its delivery IP addresses can change, so allowlists need periodic updates. A request from an expected network location still needs the provider-specific signature check.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.