Failed booking stops are now terminal: once a stop is failed, it can no longer be dispatched again into a tour. A stop’s outcome is now final and auditable — a failed stop stays failed, and recovery happens by adding a new stop to the booking rather than by reviving the original one.
What changes
- A failed stop can no longer be re-dispatched. Creating a new tour from a failed stop via
Dispatch stops into a tour now returns a
422carrying thefailed_stopsfailure code, and inserting a failed stop into an existing tour via Dispatch or move stops into existing tour is likewise rejected — rather than moving the stop back into a tour. - When every stop on a booking has reached a final outcome — completed or failed — the booking now completes automatically rather than returning to a dispatchable state. If a stop fails while the booking still has stops in progress or waiting to be dispatched, the booking simply carries on with those — a failure no longer pushes the rest of the booking back toward dispatch.
- A failed stop now stays linked to the tour it failed on, rather than being detached from it as before, so the failure remains traceable to where it happened.
What this looks like
Here’s how the change plays out across the situations you might see in the field:
| Situation | Before | Now |
|---|---|---|
| A booking stop fails | The stop could be sent out again to retry it | The outcome is final; to retry, you add a new stop to the booking |
| Every stop on a booking has finished — completed or failed | The booking returned to a dispatchable state, waiting to be sent out again | The booking closes out automatically |
| A stop fails while the booking’s other stops are still in progress or waiting | The failure could push the whole booking back toward dispatch | The booking carries on with its remaining stops, unaffected |
Why this matters
Making failure terminal gives every booking a single, predictable lifecycle: a stop reaches an outcome once and keeps it, so the booking’s history reflects exactly what happened in the field.
What’s next
This is a preparation for upcoming booking recovery flow features. In the next weeks, based on this foundation, we will introduce structured ways to recover from a failed stop — reattempting a stop and returning undelivered goods — as first-class booking stops. We’ll announce each as it ships.