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

Devices and connectivity (bootstrap, ssh)

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

ATC-E0303

transport: ssh exited Some(255) before connection:
  • exit code: 2

Shared code: shown here with its atc-transport meaning; as an atc-store error the same code has a different meaning and exit class. atc error explain details both.

ATC-E0408

atcd on robot-7 is not serving after bootstrap: no live listener. Inspect daemon logs on the robot: `ssh -t robot-7 'sudo journalctl -u <atcd-service> --no-pager -n 200'`. Replace `<atcd-service>` with the device's `daemon.service_name` (`atcd` when it is not set).
  • exit code: 4
  • fix: ssh -t robot-7 'sudo journalctl -u <atcd-service> --no-pager -n 200'

ATC-E0415

no atcd binary found
  • exit code: 3
  • fix: atc bootstrap atcd install <target> --from <path/to/atcd>

ATC-E0416

privileged install on robot-7 failed: useradd failed
  • exit code: 4
  • fix: ssh robot-7 sudo journalctl -n 100 --no-pager

ATC-E0417

netcheck found 1 blocking readiness failure(s):
  low disk
  • exit code: 3
  • fix: atc ota netcheck <target>

ATC-E0419

bootstrap preflight on robot-7 failed: no systemd
  • exit code: 4
  • fix: atc shell robot-7

ATC-E0420

atcd on robot-7 is up, but its control socket is not reachable by the SSH login user (permission denied). A root install owns the socket root:root, and the controller opens it as the account you SSH in as. Grant the socket to that account: set [daemon] socket_owner in atc.toml (or re-run the install with an explicit user@host target). detail: EACCES
  • exit code: 3
  • fix: set [daemon] socket_owner = "<ssh-login-user>" in atc.toml, then: atc bootstrap atcd install --root robot-7

ATC-E0421

ssh authentication rejected for robot-7: Permission denied (publickey).
  • exit code: 2
  • fix: ssh-copy-id robot-7 # or re-run without --non-interactive to allow password auth

ATC-E0423

disk budget exceeded on robot-7: remote reported no space left on device during bootstrap
  • exit code: 3
  • fix: free up disk space on robot-7, then re-run the push (auto-bootstrap will retry)

ATC-E0461

cannot reach device through the tunnel: device is not connected to the tunnel
  • exit code: 1

ATC-E0470

atcd on robot-7 is installed, but the SSH login user cannot run it: exec of /usr/local/bin/atcd was denied. This is not an ssh authentication failure. The usual cause: that path links into the store, and the store root (/var/atc, mode 0710) is in a group that account is not in, so the account cannot traverse to the binary. Check with `ls -ld /var/atc` and `id`; if the group is the gap, re-run `atc bootstrap atcd install --root <user>@<host>` as the account you SSH in as (the install hands the store's group to that account), or on the device: chgrp $(id -gn <ssh-login-user>) /var/atc. The same text also comes from a binary without its execute bit or a store on a noexec mount; check `ls -l` on the resolved path and `findmnt -T /var/atc`. detail: bash: /usr/local/bin/atcd: Permission denied
  • exit code: 3
  • fix: atc bootstrap atcd install --root robot-7 # grants the login user store traverse

ATC-E0472

release server: fetch and verify release index: fetch https://releases.example.com/stable/index.json: network unreachable
  • exit code: 1

ATC-E0473

release verification: fetch and verify release index: index signature: signature verification failed
  • exit code: 1

ATC-E0474

control plane: list orgs: HTTP request failed: error sending request for url (https://atc.example.com/v1/admin/orgs): tcp connect error: Connection refused
  • exit code: 1

ATC-E0477

stale provisioning lock on ops@robot-7: a provisioning install that is no longer running holds /etc/atc/.enroll.lock
  • exit code: 3
  • fix: atc bootstrap atcd install ops@robot-7 <the same flags> --clear-stale-lock # repeat the refused command with --clear-stale-lock

ATC-E0478

atc diagnose wrote its bundle directory, then could not send it to Agency. The bundle is not lost: it is still in the directory that the message names. To try again, run atc diagnose --yes, with the same target if you gave one. That writes a new bundle and sends it. Or share the directory with Agency support.

the diagnostic bundle was written but not sent: uploading the bundle failed: no complete answer within 860s. It is still at ./atc-diagnose-01K6Z8Q4M2V7XRB3T9N5HJWCDE
  • exit code: 1
  • fix: atc diagnose --yes # or share the bundle directory with Agency support

ATC-E0479

not confirmed: refusing to uninstall atcd from robot-1 without confirmation: stdin is not a TTY. Pass --yes to skip the prompt.
  • exit code: 3

ATC-E0480

atcd is not serving on robot-1: no control socket; install atcd with your provisioning system, or set [bootstrap].auto = true
  • exit code: 3
  • fix: atc bootstrap atcd install robot-1

ATC-E0482

--from ./atcd is a x86_64 atcd, but the device is aarch64
  • exit code: 3
  • fix: atc bootstrap atcd upgrade <target> --from <path/to/atcd>