Improved

Trip Search Returns Tombstones for Deleted Trips

What’s New?

We’ve updated Trip Search behavior for invisible trips created by split, re-split, and unsplit flows when includeDeleted: true is used. This improves sync reliability for integrations that poll trips using updatedSince or updatedAtRange.

What Changed?

The default behavior is unchanged:

  • when includeDeleted is omitted, Trip Search returns only visible, non-deleted trips
  • when includeDeleted=false, Trip Search also returns only visible, non-deleted trips

The changed behavior applies only when includeDeleted=true.

Previously, when a load was split, superseded or hidden trips could silently disappear from API results, even when includeDeleted=true. This made it difficult for integrations to detect lifecycle transitions and could leave stale records in downstream systems.

Now, when includeDeleted=true, Trip Search returns invisible trip records as tombstones by surfacing them with isDeleted: true. This includes:

  • superseded base trips
  • hidden child legs from chained splits
  • hidden child legs from split-cancel / unsplit / restore scenarios

In addition, updatedAt is updated when trip visibility changes, so polling by updatedSince or updatedAtRange can reliably capture these events.

What isDeleted Means

When includeDeleted=true:

  • isDeleted=true means the trip is deleted or no longer visible and should be treated as inactive for sync
  • isDeleted=false means the trip is a current visible leg

Common Scenarios

ScenarioBeforeAfter (with includeDeleted: true)
Trip 555 split into 555-1, 555-2555 silently disappeared555 is returned with isDeleted: true
Trip 555-2 further split into 555-3, 555-4555-2 silently disappeared555-2 is returned with isDeleted: true
Split cancelled / unsplit / restoredhidden split legs silently disappearedhidden split legs are returned with isDeleted: true, restored active trip remains isDeleted: false

Example

For a load with chained split behavior such as 1110758:

TripisDeletedMeaning
1110758trueSuperseded base trip
1110758-1falseActive leg
1110758-2trueChild leg superseded by a later split
1110758-3falseActive leg
1110758-4falseActive leg

Endpoint Affected

POST /p/v1.0/trips/search

Why?

This enhancement provides:

  • reliable tombstone detection for invisible and superseded trips
  • better support for updatedSince and updatedAtRange polling
  • more consistent synchronization for split, re-split, cancel-split, and restore scenarios