Skip to content

Troubleshoot an order

GET/orders/{id}/troubleshoot

Costs 1 rate-limit point · Rate limits

Why a buyer got no files, as the Orders page's troubleshooter shows: whether Shopify has the order, whether Filemonk stored it, and for every Shopify line item whether its product or variant has files in Filemonk (with counts) or is a custom product. Ends with a diagnosis and the request that fixes each finding. :id is the order name (#1042), the Shopify order gid or id, or Filemonk's order id.

Read-only; asks Shopify for the order. Start here for a 'no files' complaint, then send the next_steps request it names (each previews before it changes anything). 404 when neither Shopify nor Filemonk has the order; 502 when Shopify did not answer.

Also searched ascustomer got no filescustomer did not receive downloadwhy was this order not deliveredtroubleshoot orderorder missing in filemonkdiagnose order

Path parameters

  • idstringRequired

Returns

  • querystring, nullable
    Example: #1042
  • shopifyobject
    Show 9 child attributesHide child attributes
    • foundboolean, nullable
      Example: true
    • idstring, nullable
      Example: gid://shopify/Order/7555375595815
    • namestring, nullable
      Example: #1042
    • created_atstring, nullable
      Example: 2026-10-28T14:02:11Z
    • emailstring, nullable
      Example: buyer@example.com
    • financial_statusstring, nullable
      Example: paid
    • fulfillment_statusany
    • cancelled_atany
    • testboolean, nullable
      Example: false
  • filemonkobject
    Show 8 child attributesHide child attributes
    • storedboolean, nullable
      Example: true
    • deletedboolean, nullable
      Example: false
    • idstring, nullable
      Example: 3f1c2b8e-5a7d-4e19-9c61-2b8d0f4a7c55
    • namestring, nullable
      Example: #1042
    • accessobject
      Show 3 child attributesHide child attributes
      • statestring, nullable
        Example: active
      • revokedboolean, nullable
        Example: false
      • expires_atany
    • delivery_conditions_metboolean, nullable
      Example: true
    • email_sent_atany
    • files_countinteger, nullable
      Example: 0
  • line_itemsarray of objects
    Show 9 child attributesHide child attributes
    • titlestring, nullable
      Example: Watercolour Course
    • variant_titleany
    • skuany
    • quantityinteger, nullable
      Example: 1
    • shopify_product_idstring, nullable
      Example: gid://shopify/Product/9642107044135
    • shopify_variant_idstring, nullable
      Example: gid://shopify/ProductVariant/49718237560103
    • productobject
      Show 3 child attributesHide child attributes
      • digital_product_idsarray of strings
      • files_countinteger, nullable
        Example: 2
      • customboolean, nullable
        Example: false
    • variantany
    • delivers_filesboolean, nullable
      Example: true
  • diagnosisarray of objects
    Show 4 child attributesHide child attributes
    • codestring, nullable
      Example: stored_without_files
    • findingstring, nullable
      Example: Filemonk stored the order before its products had files, …
    • next_stepstring, nullable
      Example: Re-sync it from Shopify to link the files now on its prod…
    • requeststring, nullable
      Example: POST /orders/3f1c2b8e-5a7d-4e19-9c61-2b8d0f4a7c55/resync

Errors

401

Missing or invalid API key.

404

The resource does not exist for this shop, or the action path is not registered.

422

The request failed validation, or sent a key the action does not take (code: "unknown_parameters" with unknown and accepted). Nothing was saved.

429

Rate limited. Cost-weighted per API key, shared with API v1: a read costs 1 point, a write 2, 40 points per fixed 60-second window. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time the window ends); a 429 adds Retry-After (seconds), retry_after, retryable: true and a next_step in the body. A 429 did nothing: wait retry_after seconds, then send the same request again. The budget is per key, so every tool or script using the key shares it; prefer one list call with per_page over many single reads.

502

Shopify (or the email service) did not complete the request. Nothing was changed; try again shortly.

Every error has the same shape: see Errors.

GET/orders/{id}/troubleshoot
curl "https://app.filemonk.io/api/v2/external/orders/3e84eb8d-e1d9-4e92-a4b2-a419c7f1122f/troubleshoot" \
  -H "X-Auth-Token: $FILEMONK_API_KEY"
Response
{
  "query": "#1042",
  "shopify": {
    "found": true,
    "id": "gid://shopify/Order/7555375595815",
    "name": "#1042",
    "created_at": "2026-10-28T14:02:11Z",
    "email": "buyer@example.com",
    "financial_status": "paid",
    "fulfillment_status": null,
    "cancelled_at": null,
    "test": false
  },
  "filemonk": {
    "stored": true,
    "deleted": false,
    "id": "3f1c2b8e-5a7d-4e19-9c61-2b8d0f4a7c55",
    "name": "#1042",
    "access": {
      "state": "active",
      "revoked": false,
      "expires_at": null
    },
    "delivery_conditions_met": true,
    "email_sent_at": null,
    "files_count": 0
  },
  "line_items": [
    {
      "title": "Watercolour Course",
      "variant_title": null,
      "sku": null,
      "quantity": 1,
      "shopify_product_id": "gid://shopify/Product/9642107044135",
      "shopify_variant_id": "gid://shopify/ProductVariant/49718237560103",
      "product": {
        "digital_product_ids": [
          "7ea3c05d-6f29-42b6-b24f-43260caeaa32"
        ],
        "files_count": 2,
        "custom": false
      },
      "variant": null,
      "delivers_files": true
    }
  ],
  "diagnosis": [
    {
      "code": "stored_without_files",
      "finding": "Filemonk stored the order before its products had files, so it holds none.",
      "next_step": "Re-sync it from Shopify to link the files now on its products. It previews first.",
      "request": "POST /orders/3f1c2b8e-5a7d-4e19-9c61-2b8d0f4a7c55/resync"
    }
  ]
}