Back to Documentation
Diagnostics

Troubleshooting Guide

Diagnose and resolve common issues with orders, inventory sync, connections, and more.

Orders Stuck in Pending

When orders remain in Pending status and never advance to Ready, it usually means the rules engine could not find a matching routing rule. Here is what to check.

Diagnostic Steps

Check routing rules

Go to Automation Rules and verify that at least one routing rule matches the order's conditions (source channel, SKU, client, etc.). If no rule matches, the order stays pending.

Check connection health

Open the Connections page and verify the destination connection is healthy (green indicator). If the connection is down, orders are held in pending until it recovers.

Check for holds

Open the order detail view. If the order shows is_held = true, it was placed on hold by a rule or manually. Release the hold to allow processing.

Check rule priority

Rules are evaluated in priority order. A higher-priority rule with stop_on_match = true might be blocking a later routing rule from running.

Check the timeline

The order's audit timeline shows exactly which rules were evaluated and what happened. Look for "No routing rule matched" in the timeline events.

Quick fix: If you need orders to flow immediately, create a catch-all routing rule with no conditions and the lowest priority. This ensures every order gets routed to a default destination.

Failed Orders

Orders move to Failed status when WarpWare cannot transmit them to the destination system. The error message on the order tells you exactly what went wrong.

Common Error Messages

401 Unauthorized

Cause: API token expired or was revoked

Fix: Re-authenticate the connection from Settings. Refresh the OAuth token or generate a new API key.

422 Validation Error

Cause: Required fields missing or invalid (e.g., missing shipping address, invalid SKU)

Fix: Check the error detail for the specific field. Fix the order data and retry.

429 Rate Limited

Cause: Too many requests to the destination API

Fix: WarpWare retries automatically with backoff. No action needed unless it persists over 30 minutes.

Connection timeout

Cause: Destination server did not respond

Fix: Check the destination system's status page. WarpWare will retry automatically.

Duplicate external_id

Cause: The destination already has an order with this ID

Fix: Verify if the order was actually received. Clear the duplicate flag if re-sending is needed.

Retrying Failed Orders

Open the order detail view and click the Retry button
Bulk retry: filter by status = Failed on the Orders page, select all, and choose "Retry Selected"
Automatic retries use exponential backoff — after 5 failures, automatic retry stops
Fix the underlying issue (auth, data validation) before retrying

Inventory Not Syncing

If inventory levels are not updating on your sales channels or are not being pulled from your warehouse, check the following.

Verify sync direction is enabled

Go to the inventory source settings and confirm the sync direction is set to Pull, Push, or Bidirectional — not Disabled.

Check inventory_item_id (Shopify)

Shopify requires an inventory_item_id for each variant to sync inventory. If the product was created outside Shopify or the variant is missing this ID, sync will silently fail. Check the product variant in Shopify admin.

Check location_id (Shopify)

Shopify inventory writes require a location_id. Go to the connection settings and verify a location is selected. If the store has multiple locations, ensure the correct one is mapped.

Check product linking

Inventory sync only works for products that are linked to a master SKU. Go to the Products page and verify the platform variant is connected to a master product.

Check last sync timestamp

Each inventory source shows a "last synced" timestamp. If it is stale, the connection may be down or rate-limited. Check the connection health indicator.

Check buffer configuration

If available quantity shows 0 but your warehouse has stock, your buffers may be set too high. Review product-level and source-level buffers.

Shopify note: Shopify rate-limits inventory updates. If you have thousands of SKUs, inventory pushes are batched and may take several minutes to fully propagate. Check the sync queue in the dashboard.

Connection Problems

Connections can fail for a variety of reasons. The connection health indicator on the Connections page gives you a quick status — green, yellow, or red.

Token Expired / Revoked

OAuth tokens (Shopify, Amazon, WooCommerce) can expire or be revoked from the platform side. WarpWare detects this when an API call returns 401.

The connection health turns red with a "Re-authenticate" prompt
Click the re-authenticate button to refresh the OAuth flow
For API-key-based connections, generate a new key in the platform and update the connection settings

Rate Limiting

Most platforms enforce API rate limits. WarpWare handles this automatically with backoff and retry, but sustained high volume can cause temporary delays.

The connection health turns yellow during active rate limiting
Order dispatches are queued and retried automatically
Shopify: 40 requests/second burst, 2 requests/second sustained
Extensiv: 120 requests/minute — WarpWare batches to stay within limits

Health Check

WarpWare pings every connection at regular intervals to verify it is reachable and authenticated.

Green: Connection is healthy — last health check passed
Yellow: Connection is degraded — rate limited or slow responses
Red: Connection is down — authentication failed or unreachable
Health checks run every 5 minutes automatically
You can trigger a manual health check from the connection detail page

Duplicate Orders

WarpWare has built-in duplicate detection to prevent the same order from being processed twice. Here is how it works and how to resolve duplicate issues.

How Deduplication Works

External ID + Connection: Each order is uniquely identified by its external_id (e.g., Shopify order number) scoped to its connection. The same external ID from different connections is treated as distinct.
Idempotency Key (API): Partner API orders include an optional idempotency_key header. Sending the same key within 24 hours returns the original order instead of creating a new one.
File Content Hash: For file-based and email ingestion, WarpWare hashes the file content. If the same file is dropped again (e.g., FTP re-upload), it is skipped.
Webhook Dedup: Shopify and other platforms may send the same webhook multiple times. WarpWare deduplicates by webhook event ID to prevent double processing.

Clearing Duplicates

If an order was correctly flagged as a duplicate but you need to re-import it (e.g., the original was deleted or the data has changed):

1
Open the original order in the order detail view
2
Click the overflow menu and select "Clear Duplicate Flag"
3
Re-ingest the order via the original source (API, file, webhook)
4
The order will be treated as new and processed through the pipeline

Caution: Clearing a duplicate flag and re-ingesting an order will create a new order in WarpWare. If the original was already sent to a warehouse, you may end up with two fulfillment requests. Always verify the original order's status before clearing duplicates.

Still stuck?

If you have gone through these steps and the issue persists, reach out directly and we will help diagnose.