What This Guide Covers { shipping-and-logistics-operations-first-response-guide }
Every so often, a carrier will register a delivery exception — address issue, refused delivery, no access — and the system just... doesn't respond. No return authorization is created. No flag goes to the customer service team. The order sits in limbo until someone manually intervenes.
This is the failure this shipping and logistics operations first-response guide is built around: the gap between a carrier exception event being raised and a return authorization being triggered in the returns workflow. In our work with fragmented omnichannel stacks, we see this exact pattern repeatedly — and it's rarely a carrier problem, and not always an IT problem at first. It's most often an integration configuration problem that an operator can diagnose and document before opening a vendor ticket.
The goal is to help you verify the right data points, rule out the most common causes, and package your findings so IT or your integration partner can act without a round of back-and-forth questions.
In this guide: a five-step diagnostic sequence covering the carrier portal, WMS event logs, storefront order management, returns workflow trigger conditions, and ERP transaction records.
Step 1 — Verify the Carrier Exception Was Actually Raised { failed-delivery-not-triggering-automatic-return-authorization }
Before you assume anything about the returns workflow, confirm the carrier actually registered the failure.
What to do:
- Log into the carrier portal (or query their tracking API) using the tracking number from the order in question.
- Look for an exception status code — common examples include DELIVERYFAILED, ADDRESSINCOMPLETE, REFUSED, NOACCESS, or DAMAGED.
- Confirm the event timestamp. Does it align with the expected delivery window, or is it significantly delayed in the carrier's own system?
What to rule out first: If the carrier shows the delivery as completed or DELIVERED, but the customer claims otherwise, you may be dealing with a customer dispute rather than an integration failure. In that scenario, the carrier exception event was never raised, and no automation in your stack can respond to an event that didn't occur.
Operator observation: In most carrier APIs, exception events are not broadcast by default — they require an active webhook subscription on your end. If the exception code is present in the carrier portal but you never received a corresponding event in your systems, the first question to answer is whether your integration is subscribed to that specific exception event type at all.
Capture: Screenshot or export the carrier exception log showing the status code, timestamp, and tracking number. Date-stamp the export.
Step 2 — Check Whether the Exception Reached the Storefront or WMS { carrier-exception-event-doesnt-reach-returns-workflow }
The carrier raised the exception. Now you need to determine whether that event transmitted into your environment — or whether it stopped at the carrier API boundary.
What to do:
- Check your WMS event logs for the carrier exception webhook or API call tied to this tracking number. Look specifically for an inbound event with type CARRIEREXCEPTION or similar, with a matching timestamp.
- Check the storefront order management system for any exception event received and processed against this order.
- Cross-reference by tracking number and by the carrier exception timestamp window.
What to rule out first: The WMS or storefront may not be subscribed to the carrier's exception event type at all. Many integrations are built to handle DELIVERED and IN_TRANSIT statuses but are not configured to receive or parse exception event payloads. A misconfigured webhook endpoint — wrong URL, inactive endpoint, or unhandled payload structure — can also silently drop these events.
Operator observation: The gap between a carrier event being raised and a WMS event being received is the most common transmission failure point in multi-carrier environments. It's not unusual for one carrier's integration to work while another's silently fails because the webhook subscription or payload format differs. Across shipping carriers, WMS, ERP, and storefront integrations, this payload-format mismatch is a recurring root cause we see on engagement after engagement.
Capture: Copy the WMS and storefront event logs showing what was received — or conspicuously not received — for this order during the exception window. Note the absence of an event, not just its presence.
If you find a gap here, see how to fix the carrier exception to returns workflow gap for the integration-level steps to close it.
Step 3 — Confirm the Returns Workflow Trigger Conditions { returns-workflow-trigger-conditions }
If the exception event reached the storefront or WMS but no return authorization was created, the next question is whether your returns automation was listening for it.
What to do:
- Pull up the returns workflow automation configuration. Identify what event types trigger the workflow to create a return authorization.
- Check whether CARRIEREXCEPTION, DELIVERYFAILED, or equivalent is listed as a trigger condition.
- Verify the workflow scope: is it restricted to specific carriers, specific shipping methods, specific regions, or specific order types? A workflow scoped to only FedEx ground shipments will not fire for a UPS Express exception on the same order.
What to rule out first: The returns workflow may have been built to listen for customer-initiated return requests — the kind where a customer logs into the portal and starts a return — and never configured to respond to carrier-generated exception events. This is the core of what we call the Carrier-Workflow Gap: the system is subscribed to the wrong event type. When the carrier exception event doesn't reach the returns workflow because the workflow trigger is listening for a different event, no authorization fires automatically.
Capture: Export or screenshot the workflow trigger configuration showing which event types are subscribed. Highlight whether CARRIER_EXCEPTION is present or absent.
Step 4 — Check the ERP for Return Authorization Status { shipping-carriers-wms-erp-storefront-integration }
If the exception reached the storefront or WMS and the workflow is configured for it, the next place to look is the ERP.
What to do:
- Query the ERP using the order number or tracking number for any return authorization record.
- Check the ERP integration logs for an inbound event from the storefront or WMS requesting a return authorization for this order.
- Note the ERP's current status for this order: is it showing the original shipment as delivered? Pending? Is there any record of an RA request, whether processed or pending?
What to rule out first: The ERP may be waiting for a manual authorization because no automatic request arrived from the storefront. If Steps 2 and 3 confirm the event transmitted and the workflow fired, but the ERP shows no inbound request, the break is in the storefront-to-ERP event layer. If the ERP shows no RA record at all and Steps 2 and 3 showed nothing transmitted, the break is upstream — at the carrier or WMS layer.
Operator observation: In multi-system retail environments, the ERP is often the last place to show the gap — and the most visible to finance. When the customer service team is asking why no RA was created and the ERP shows no record, it confirms the break happened before the request ever reached the ERP's receiving endpoint. Across shipping carriers, WMS, ERP, and storefront systems, the ERP's silence is often the clearest signal of where the event chain broke.
For another related diagnostic in the same operational territory, see the returns data reconciliation first-response guide for the parallel checklist when return data isn't matching refund records across systems.
Step 5 — Document and Escalate With the Right Package { integration-gap-or-configuration-gap }
At this point, you know which layer the break lives in. Now you package your findings so IT or vendor support can act without a round of back-and-forth.
Summarize the five-step findings:
| Step | System | What You Found | |------|--------|----------------| | 1 | Carrier portal | Exception raised? [YES / NO] — Code: [_] Timestamp: [] | | 2 | WMS / Storefront | Exception event received? [YES / NO] — Log excerpt attached | | 3 | Returns workflow | CARRIEREXCEPTION subscribed? [YES / NO] — Config screenshot attached | | 4 | ERP | RA request received? [YES / NO] — Transaction history attached | | 5 | Gap classification | Configuration gap (workflow not set up for this event type) OR Integration gap (event not transmitted between systems) |
Package the following artifacts:
- Carrier exception log (Step 1)
- WMS event logs (Step 2)
- Storefront event logs (Step 2)
- Returns workflow trigger configuration (Step 3)
- ERP transaction history for this order (Step 4)
Include in your escalation summary:
- Order number
- Tracking number
- Carrier name and service level
- Carrier exception code and timestamp
- The gap classification: configuration gap or integration gap
The two-gap framing matters. If you tell IT "the return authorization didn't create," they'll spend time checking the ERP and the workflow. If you tell them "the exception event did not transmit from the carrier to the WMS — here are the logs" or "the returns workflow is not subscribed to carrier exception events — here is the config," you've already isolated the problem to a specific system and a specific fix.
Teams with documented first-response checklists consistently resolve integration failures faster — not because the checklist is magic, but because it eliminates the initial diagnostic cycle and gets everyone looking at the right system layer from the start.
If the root cause lands in the integration layer, the Integration Foundation Sprint is designed specifically to close event-subscription and webhook-transmission gaps across shipping carriers, WMS, ERP, and storefront environments. And for broader context on how these cross-system handoffs show up elsewhere in shipping operations, see our field guide on shipping label generation and cross-system event sequencing.
Frequently Asked Questions
Why isn't a failed delivery automatically triggering a return authorization?
The most common reason is that the returns workflow was configured to listen for customer-initiated return requests, not carrier-generated exception events. The carrier exception may be registered in the carrier system, but if that event type is not subscribed to by the WMS, storefront, or returns automation, no authorization is created automatically.
Who do I contact first — the carrier or my IT team?
Start with the carrier. Confirm the exception event was raised with the correct status code and timestamp. Then bring that evidence to your IT or integration team along with your WMS, storefront, and ERP logs. That package lets you determine whether the gap is in the carrier-to-system transmission or in the system-to-returns-workflow configuration.
What is the most common root cause across shipping carriers, WMS, and ERP integrations?
The most common root cause is a missing subscription: the returns automation is listening for one event type (e.g., customer return request) but not for carrier exception events. A secondary cause is a misconfigured webhook endpoint in the WMS or storefront that silently drops carrier exception payloads.
Turn the note into a working system.
The Integration Foundation Sprint is built for omnichannel operators dealing with storefront, ERP, payments, and reporting gaps that keep creating manual drag.
Review the Integration Foundation SprintTkTurners Team
Implementation partner
Relevant service
Review the Integration Foundation Sprint
Explore the service lane


