macOS: 'infraternal status' says 'not set up yet' on an enrolled Mac with the mesh service running; cut-off nodes look healthy #383

Open
opened 2026-11-06 02:35:10 +00:00 by kayg · 0 comments
Owner

Found by J267 (#375). Severity P3 (wrong status; no security impact).

On the macOS VM, with the Mac enrolled (/var/lib/infraternal/agent/identity.json present, agent join → "state":"ready") and the launchd mesh service running (mesh status → running, pid shown), sudo /var/lib/infraternal/bin/infraternal status --json reports:

"state":"stopped","message":"This machine is not set up yet.","next":["infraternal agent join <server-url>","infraternal server init"],
components: agent "Not installed", mesh "Not set up", host "Not installed", …

I saw this twice: while the Mac was enrolled with a server it could no longer reach, and again right after a fresh, successful agent join + mesh up (dev 9b0c731e8 Mac binary, sha256 2f9863b2…). Status seems to look only at the Linux service layout (systemd unit, /var/lib/infraternal/bin/current), not at the Mac's system service (org.infraternal.mesh, --data /var/lib/infraternal/agent).

Repro: enrol a Mac (agent --data /var/lib/infraternal/agent join … --enroll-only), run infraternal mesh up, then sudo infraternal status. Expected: agent installed and enrolled, mesh running. Actual: "This machine is not set up yet", and it suggests running agent join again, which would re-enrol.

Related observability gaps from the same run, worth fixing together:

  • mesh status says only "running" (launchd state) when the node is cut off: enrolled with a server that refuses it (HTTPS link ended (PermissionDenied) about 4×/min on the server), deleted from the mesh, or with its host revoked. Nothing on the Mac says it has no working mesh.
  • The LaunchDaemon plist (macos_service.rs render_plist) sends stdout and stderr to /dev/null, so none of the daemon's own messages are kept anywhere. After a failed join the daemon crash-looped silently every 5 s (launchctl runs = 19).

Links: #375, #285 (D352 parity), #265.

Found by J267 (#375). Severity **P3** (wrong status; no security impact). On the macOS VM, with the Mac enrolled (`/var/lib/infraternal/agent/identity.json` present, `agent join` → `"state":"ready"`) and the launchd mesh service running (`mesh status` → `running`, pid shown), `sudo /var/lib/infraternal/bin/infraternal status --json` reports: ``` "state":"stopped","message":"This machine is not set up yet.","next":["infraternal agent join <server-url>","infraternal server init"], components: agent "Not installed", mesh "Not set up", host "Not installed", … ``` I saw this twice: while the Mac was enrolled with a server it could no longer reach, and again right after a fresh, successful `agent join` + `mesh up` (dev `9b0c731e8` Mac binary, sha256 `2f9863b2…`). Status seems to look only at the Linux service layout (systemd unit, `/var/lib/infraternal/bin/current`), not at the Mac's system service (`org.infraternal.mesh`, `--data /var/lib/infraternal/agent`). **Repro:** enrol a Mac (`agent --data /var/lib/infraternal/agent join … --enroll-only`), run `infraternal mesh up`, then `sudo infraternal status`. Expected: agent installed and enrolled, mesh running. Actual: "This machine is not set up yet", and it suggests running `agent join` again, which would re-enrol. Related observability gaps from the same run, worth fixing together: - `mesh status` says only "running" (launchd state) when the node is **cut off**: enrolled with a server that refuses it (`HTTPS link ended (PermissionDenied)` about 4×/min on the server), deleted from the mesh, or with its host revoked. Nothing on the Mac says it has no working mesh. - The LaunchDaemon plist (`macos_service.rs` `render_plist`) sends stdout and stderr to `/dev/null`, so none of the daemon's own messages are kept anywhere. After a failed join the daemon crash-looped silently every 5 s (`launchctl` `runs = 19`). Links: #375, #285 (D352 parity), #265.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#383
No description provided.