> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On delivery canceled

> Starts an automation when an Uber Direct delivery is canceled.

`uber.onDeliveryCanceled` takes no filters. It starts when the delivery is canceled by you, the customer, the courier, or Uber: status `canceled`.

```ts automations/delivery-canceled.automation.ts theme={null}
import { automation, sendEmail, t } from "automate.ax"
import { uber } from "automate.ax/uber"

export default automation("Handle a canceled delivery", () => {
  const event = uber.onDeliveryCanceled({})
  sendEmail({
    to: "*",
    subject: t`Delivery ${event.deliveryId} canceled`,
    text: t`Canceled by: ${event.delivery.cancelationReason?.secondaryReason}`,
  })
})
```

The event includes `id`, `deliveryId`, `customerId`, `status`, `liveMode`, `created`, and the full `delivery` with its courier, waypoints, ETAs, and fee. `delivery.cancelationReason.secondaryReason` is `CUSTOMER_CANCEL`, `COURIER_CANCEL`, `MERCHANT_CANCEL`, or `UBER_CANCEL` when Uber includes it. If Uber returns the order, the delivery later becomes `returned`.

Requires an Uber Direct connection with a webhook signing key and a dashboard webhook that sends `event.delivery_status`. See [Connect Uber Direct](https://docs.automate.ax/reference/integrations/uber/index.md#connect-uber-direct).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.