verifying approval-wait boundaries in cancellation workflows
When a customer hits cancel, most workflows park at an approval step. The question nobody asks: has anything already been cancelled by then?
We ran a rehearsal on our synthetic Acme demo, wiring FetchSandbox (fetchsandbox.com/mcp) across Stripe, Zendesk, Square, and Slack twins. Three boundaries we actually checked: nothing fires while parked at approval, rejected approval leaves the subscription unchanged, and the workflow survives an app restart while parked then cancels exactly once after approval. 27/27 passed on October 18.
Scope caveat: synthetic provider twins, not live traffic. But that's the point, catching a premature cancellation in rehearsal is cheaper than finding it after a real customer emails you.
AI-assisted code moves fast enough that these intermediate states are genuinely easy to miss. You end up testing the happy path and calling it done.
What intermediate states are you asserting today, or mostly just the final outcome?


Replies
That restart check is a useful boundary. I’d also test a lost response after the provider may have accepted a cancellation: reconcile before retrying or compensating. MELRA keeps uncertain routed MCP writes parked for reconciliation instead of replaying blindly; it does not claim to verify provider-side cancellation. We’re building MELRA in the open: https://www.producthunt.com/products/melra
@dhe_eraj_s yeah, missing response is an unknown outcome not proof the write failed. the test worth running is: provider accepts the cancellation, response gets dropped, workflow reads provider state before deciding to retry or compensate. not blind retry on timeout alone. the run we posted measured approval-wait, rejection, and restart boundaries. we haven't demonstrated that lost-response case here.
@rnagulapalle Good catch. We haven't demonstrated that lost-response case in our run. If the provider exposes a read-back, we can reconcile; if not, the honest state is still unknown and we should not retry. Easy to gloss over when the synthetic checks pass. Appreciate you calling it out.
we hit the mirror image of the premature cancel. the draft says "we cancelled it" and nothing got cancelled, the model just wrote the sentence because thats what that reply usually says. no call was made so there is no state to assert. now a done-claim in the text has to come with a note telling a person to actually do it. do your twins look at what the reply says, or only at the calls?