# Abort

Cancels an ongoing migration

```
POST /api/v1/abort_orbit_topic_auto_migration
```

Rolls back an in-flight migration immediately. Topics already in `COMPLETE` cannot be aborted— migration is one-way. Requires an **admin** (or **app** / **agent**) API key scoped to the target virtual cluster.

As with initiate, per-topic failures are returned in the `errors` array with a `200` rather than as a non-2xx.

### Request

| Parameter            | Type      | Required | Default | Description                                                                                                  |
| -------------------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| `virtual_cluster_id` | string    | Yes      | —       | Target virtual cluster, e.g. `vci_...`. Must be a well-formed VCID.                                          |
| `topic_names`        | string\[] | Yes      | —       | Topics whose pending or in-flight migration should be rolled back. Must be non-empty, with no empty entries. |

#### Example

```bash
curl -X POST https://api.warpstream.com/api/v1/abort_orbit_topic_auto_migration \
  -H "Authorization: Bearer <api-key>" -H "Content-Type: application/json" \
  -d '{
    "virtual_cluster_id": "vci_...",
    "topic_names": ["orders-eu", "orders-us"]
  }'
```

### Response

`aborted` lists the topics that were rolled back. `errors` lists topics that were considered but not aborted, each with a human-readable `reason`. Both arrays are sorted by topic name.

```json
{
  "aborted": ["orders-eu"],
  "errors": [
    { "topic_name": "orders-us", "reason": "topic already in SERVE" }
  ]
}
```