CLOUDCRUISE UNITED

Extract recovery fixture

ExtractDatamodel — Invoice Line Items (Duplicate Retry)

The line-items table is stable and fully visible from load — there's nothing broken about the page. "Re-extract" simulates a recovery agent retrying an extraction it believed had failed. By default each retry appends a second copy of the array into session context. Use ?dedupe=true so a retry replaces the prior read instead of appending to it.

SKUQtyPrice
SKU-20013$18.00
SKU-20021$240.00
SKU-20036$9.25
Session context (accumulated)
[
  {
    "sku": "SKU-2001",
    "qty": 3,
    "price": "$18.00"
  },
  {
    "sku": "SKU-2002",
    "qty": 1,
    "price": "$240.00"
  },
  {
    "sku": "SKU-2003",
    "qty": 6,
    "price": "$9.25"
  }
]
{"reExtractCount":0,"dedupeEnabled":false,"sessionRowCount":3}
Why this is hard
  • Nothing on this page is actually broken — the first extraction succeeds cleanly
  • The risk is entirely in the recovery agent's own behavior: retrying without clearing the prior partial write appends a second copy of every row
  • Downstream consumers of the session context now see 6 rows instead of 3, and if a submit node fires on that data, it resubmits duplicated line items
  • The fix is a partial-write clear before any retry, not a smarter selector
Workflow node config
{
  "action": "EXTRACT_DATAMODEL",
  "parameters": {
    "execution": "STATIC",
    "extract_data_model": {
      "type": "object",
      "properties": {
        "line_items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "sku":   { "type": "string" },
              "qty":   { "type": "number" },
              "price": { "type": "string" }
            }
          }
        }
      }
    }
  }
}