---
title: "migration. diagnostics"
description: "Owner: the catalog spec (defs/catalog.ts). The status is the code's own; the exit comes from its category (CATEGORIES). A warning or info code never sets the status or the exit."
order: 30
---

# `migration.*` diagnostics

Owner: the catalog spec (`defs/catalog.ts`). The status is the code's own; the exit comes from its category (`CATEGORIES`). A warning or info code never sets the status or the exit.

| Code | Category | Severity | Status | Exit | Retry | Fix | Args |
|---|---|---|---|---|---|---|---|
| <a id="migration.chunked_over_budget"></a>`migration.chunked_over_budget` | limit | error | 422 | 2 | no | — | `part`, `table`, `bound`, `maxRead`, `maxWritten`, `maxMs`, `maxBytes` |
| <a id="migration.chunked_reindex"></a>`migration.chunked_reindex` | limit | error | 422 | 2 | no | — | `reindex`, `holds` |
| <a id="migration.convert_missing"></a>`migration.convert_missing` | schema | error | 400 | 2 | no | — | `prop`, `from`, `to` |
| <a id="migration.dry_run_foreign_key"></a>`migration.dry_run_foreign_key` | data | error | 409 | 6 | no | — | `type`, `count` |
| <a id="migration.dry_run_invariant"></a>`migration.dry_run_invariant` | data | error | 409 | 6 | no | — | `invariant`, `type`, `count` |
| <a id="migration.dry_run_rule_uncounted"></a>`migration.dry_run_rule_uncounted` | data | error | 409 | 6 | no | — | `invariant`, `type` |
| <a id="migration.dry_run_sampled"></a>`migration.dry_run_sampled` | data | warning | — | 6 | no | — | `estimateMs` |
| <a id="migration.dry_run_scenario_failed"></a>`migration.dry_run_scenario_failed` | data | error | 409 | 6 | no | — | `scenario` |
| <a id="migration.dry_run_scenario_name_refused"></a>`migration.dry_run_scenario_name_refused` | data | error | 409 | 6 | no | — | `scenario`, `place` |
| <a id="migration.dry_run_scenario_sensitive_reach"></a>`migration.dry_run_scenario_sensitive_reach` | data | error | 409 | 6 | no | — | `scenario` |
| <a id="migration.dry_run_scenarios_unrun"></a>`migration.dry_run_scenarios_unrun` | data | error | 422 | 6 | no | — | `count` |
| <a id="migration.dry_run_undecodable"></a>`migration.dry_run_undecodable` | data | error | 409 | 6 | no | — | `type`, `prop`, `code`, `count` |
| <a id="migration.id_prefix_fixed"></a>`migration.id_prefix_fixed` | schema | error | 400 | 2 | no | — | `type`, `count` |
| <a id="migration.overlay_unconvertible"></a>`migration.overlay_unconvertible` | data | error | 409 | 6 | no | — | `type`, `prop` |
| <a id="migration.probe_violations"></a>`migration.probe_violations` | data | error | 409 | 6 | no | — | `step`, `count`, `sample` |
| <a id="migration.reindex_rewalks"></a>`migration.reindex_rewalks` | limit | error | 422 | 2 | no | — | `table`, `limit` |
| <a id="migration.rewind_collected"></a>`migration.rewind_collected` | state | error | 409 | 5 | no | — | `object`, `collectedAt` |
| <a id="migration.rule_count_over_budget"></a>`migration.rule_count_over_budget` | limit | error | 422 | 2 | no | — | `invariant`, `type`, `maxMs` |
| <a id="migration.run_active"></a>`migration.run_active` | temporary | error | 503 | 1 | backoff | — | `run` |
| <a id="migration.transform_reads_sensitive"></a>`migration.transform_reads_sensitive` | schema | error | 400 | 2 | no | — | `prop`, `reads`, `sensitive` |
| <a id="migration.transform_unused"></a>`migration.transform_unused` | schema | error | 400 | 2 | no | — | `prop`, `transform` |
| <a id="migration.unconvertible"></a>`migration.unconvertible` | data | error | 409 | 6 | no | — | `prop`, `count`, `sample` |
