Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Push, versions and deliveries

Messages below show representative example values (paths, targets, names); the real message carries yours.

ATC-E0411

invalid version label "bad label": leading dot
  • exit code: 3
  • fix: atc ota push --version <label> # A-Z a-z 0-9 . _ -, 1-64 chars, no leading dot

ATC-E0418

--capture-hooks is not supported with --json (the single-document JSON surface streams no per-hook events); use --progress=json for a streamed JSON surface with hook capture, or drop --json
  • exit code: 3
  • fix: atc ota push --progress=json

ATC-E0422

device busy: another push session holds the artifact lock (finalizing or awaiting reap); retry shortly. locked by push-1
  • exit code: 2

ATC-E0425

no committed delivery matches delivery ID prefix "01J3ABCDEF45"
  • exit code: 3
  • fix: atc ota ls <target>

ATC-E0426

delivery ID prefix "01J3ABCDEF45" is ambiguous; candidates: ["01J3ABCDEF45A", "01J3ABCDEF45B"]
  • exit code: 3
  • fix: atc ota rm <target> --sha <longer-delivery-id-prefix>

ATC-E0427

atcd is incompatible with delivery-ID removal: requested "01J3ABCDEF45", echoed ""; upgrade atcd or use channel + version-label removal
  • exit code: 4
  • fix: upgrade atcd, or run: atc ota rm <target> <channel> <version-label>

ATC-E0441

multi-artifact attestation: positional <artifact> required
livox-fw
  • exit code: 2
  • fix: atc ota attest <target> <peripheral> <artifact>

ATC-E0451

the delivery switch is still in progress on the device; the client stopped waiting. Verify the result with `atc ota ls`.
  • exit code: 2
  • fix: atc ota ls <target>

ATC-E0452

delivery removal refused: it is the channel's active delivery; pass --force to roll back first
  • exit code: 3

ATC-E0454

switch refused: daemon rejected activate delivery: version "v1" matches 2 deliveries
  • exit code: 3
  • fix: atc ota ls <target>

ATC-E0455

atcd is too old for the whole-delivery switch (it did not recognize the request); `atc bootstrap atcd upgrade <target>` upgrades it
  • exit code: 4
  • fix: atc bootstrap atcd upgrade <target>

ATC-E0460

atc and atcd are incompatible: controller v0.9.0 cannot talk to daemon v1.2.0: unsupported proto_version 1 (supported 2..=2); upgrade the controller (atc) to match this daemon. Fix with `atc upgrade`
  • exit code: 3
  • fix: atc upgrade

ATC-E0463

local test mode: no atcd binary found. `--local` runs a real atcd against a local store root, so it needs one. Run `atc bootstrap atcd fetch` to download the atcd for this machine. Or put atcd next to this atc binary, put it on PATH, or name it with ATC_LOCAL_ATCD
  • exit code: 3

ATC-E0465

boot recovery holds this artifact and nothing running on the device will release it, so the push cannot start. If the reject says pending peripheral recovery, run `atc ota recover <target>`: it reports what each push owes and settles what it can. Add `--accept-unknown-state` to clear a hold no payer will settle. If the reject says owed reactivation, restart atcd to run recovery again. dependency rootfs is held by push p-boot pending peripheral recovery; peripherals: arm-a
  • exit code: 3
  • fix: atc ota recover <target>

ATC-E0466

downloaded the atcd for 'linux-x86_64-musl' but could not write it anywhere
  • exit code: 3
  • fix: export ATC_LOCAL_ATCD=<path/to/atcd> # or re-run the fetch on another channel: atc bootstrap atcd fetch --track <track>

ATC-E0467

--summary-lines conflicts with --progress=json (both write to stdout, and the summary surface carries no event dispatcher); keep --progress=json for the streamed events, or drop it for the one-line-per-artifact summary
  • exit code: 3

ATC-E0469

push refused: bundle tools: bin/jq needs glibc 2.39, and the robot runs 2.31.
It cannot start there: the loader has no GLIBC_2.39 to bind.
Build it against the robot's glibc, build it static, or pass --allow-glibc-skew.
  • exit code: 3

ATC-E0476

the daemon refused the rm request: control_mode server_only: this device accepts changes only from its server. To allow direct control, run `atcd settings set server.control_mode=direct_allowed` on the device as the atcd user. Then restart atcd.
  • exit code: 3
  • fix: follow the daemon's reason in the error message