WES task cancellation rollback is something I only learned after it burned me.
It was one afternoon just before peak season last year. A customer dropped a message in the group chat: hold that order, do not ship it yet. I clicked cancel in the system without thinking twice. A cancelled task is just a task that disappears, right?
The next day, stocktaking told a different story. Several pallets were missing from their shelves, and a few unclaimed cartons had appeared in the picking zone. Customer service asked me where the goods went. I had no answer. The task was gone, but the goods and the books were both a mess.
That day taught me the real lesson: cancelling is never just clicking a button. It is a rollback sequence. Goods have to go back to the right place, the books have to be restored, and the status has to close properly. Skip one step and the mess compounds.
WES Task Cancellation Rollback Starts by Naming the Scenario
The first is a customer cancellation. The buyer changes their mind, changes the address, or changes the configuration, and the task has to stop mid-run. This is the most common kind, and the easiest to dismiss, because nothing has shipped yet and it feels harmless.
The second is a shortage cancellation. Picking gets halfway through and the physical stock is not there, or the batch is wrong, so the task has to stop. This is the messiest kind, because goods have already moved and the books no longer match reality.
The third is an equipment failure cancellation. A conveyor jams, a picking terminal loses its connection, the task freezes mid-run, and the only way forward is to cancel and reassign.
My rule now is simple. Before cancelling anything, check how far the task got. A task that never started picking and a task that is half picked are two completely different problems, and they cannot share the same button logic.
Scenario One: A Customer Cancels Mid-Pick, and Picked Goods Nearly Ship on Someone Else's Order
Here is the mistake I actually made.
The order was a big mixed order, dozens of SKUs across several totes sitting in the review area of the picking zone. The customer cancelled with one message. I clicked cancel. The task vanished from the list.
Then the problems surfaced. Those totes full of picked goods no longer belonged to any task. Worse, one SKU in those totes also appeared on another order, and the next day a picker shipped that tote's contents against the other order, while the system still showed that order as not fully picked.
The rule I set after that: for a customer cancellation, picked goods never go straight back to their original shelves. They go to an exception holding area first. Freshly picked goods are in their messiest state. Batches may be mixed, full cases may be opened. Sending them straight back to the shelf hides the error inside the shelf.
Once goods are in the holding area, three checks happen. Count the physical goods against the system's picked quantity. Check batches and expiry dates. Only after everything checks out does a designated person put the goods back, scanning every move so there is a trail.
Scenario Two: A Shortage Cancellation, Where the System Says Stock Exists and the Shelf Says Otherwise
The second scenario is the shortage.
One day a picker got halfway through a task and found only a handful of units on the shelf for a particular SKU, while the system showed dozens available. After two trips back and forth, we confirmed the books were inflated, probably from a return that never made it back onto the shelf.
The task had to be cancelled and reassigned. But cancelling directly creates a trap. The system releases the unpicked portion back into sellable stock, telling everyone those units are available. The next order gets assigned to the same empty shelf, the picker finds nothing again, and the loop repeats.
So a shortage cancellation rollback needs one extra action: park the difference. The gap between the physical count and the system count goes into a pending-verification status. It does not enter sellable stock, and it does not enter the next order's allocation pool. Only after stocktaking confirms the real number do we decide whether to replenish, adjust, or write off.
I learned this the hard way too. Without that step, the same SKU got assigned to that empty shelf on three consecutive orders, and pickers made three wasted trips in a single peak-season day, all because of one inflated number.
A shortage is not the end of a cancellation. It is the start of a stocktake. I have that sentence posted on the picking zone wall now.
Two WES Task Cancellation Rollback Paths: Picked and Unpicked Stock Must Never Share a Route
Boil both scenarios down and rollback is really two paths. The only question that matters is whether the goods have moved.
| Unpicked portion | Picked portion | |
|---|---|---|
| Status handling | Release back to sellable stock, or reallocate under the rules | Keep out of sellable stock, send to the exception holding area |
| Physical handling | No movement needed, goods are still in place | Count, verify batches, put back by a designated person |
| Book handling | Task marked cancelled, allocation released | Picked quantities reversed, differences parked for verification |
| Who confirms | System can handle it automatically | A human must review and sign off |
| The mistake to fear | Releasing shortage quantities that were never really there | Orphan goods slipping into the next order |
This table is now the first lesson in my new-hire training: both mistakes above cost a stocktaking night.
One more detail matters: the task state machine needs a proper "cancelled" end state, and the cancellation reason must be mandatory. Customer cancellation, shortage, and equipment failure produce completely different data for later review.
A Counter-Intuitive Judgment: The Cancel Button Should Be Harder to Use
Here is the part that surprises people.
Most people think good software means one-click cancellation. My view now is the opposite: the cancel button should be slightly harder to use. At minimum it should ask for one more confirmation, and it should show how much is already picked, how much is unpicked, and where each portion will roll back to.
Why? Because the costs are asymmetric. The click takes one second. Cleaning up the aftermath takes half a day. Showing the operator the consequences before they click is itself a line of defence.
And here is the trade-off worth stating plainly. Routing picked goods through a holding area before they go back on the shelf does add one step, and it looks less efficient than putting them straight back. But the few minutes saved by the direct route never cover the cost of one stocktaking discrepancy.
My standard now: every task cancelled today must have a rollback record today, and every item in the holding area must be counted the same day. No orphan goods left overnight.
Overnight orphan goods are the most expensive kind. The next morning they get treated as surplus stock, or they get shipped by accident, and either outcome takes far longer to chase down.
My Cancellation Checklist: Four Steps Before You Confirm
Finally, here is the checklist I actually use before confirming any cancellation.
Step one, check progress. How much is picked, how much is unpicked, and which rollback path does each portion take?
Step two, check the physical goods. Which totes hold the picked items? Label them with the cancelled task's identifier, and keep them separate from normal outbound stock.
Step three, check the books. Before releasing the unpicked portion, confirm whether any shortage difference exists. If it does, park it for verification instead of releasing it into sellable stock.
Step four, check the closure. The cancellation reason is mandatory, the person responsible for the holding-area count is named, and the loop closes the same day.
Only when all four steps are done is the cancellation actually finished. The task disappearing from the list is the beginning, not the end.
This approach is tested and it works for me: since we started rolling back along two separate paths, we have not had a single orphan carton left behind by a cancelled order during peak season, and our stocktaking differences have dropped noticeably.
By Ah K, E-commerce Seller (5 yrs)







