Summary
PR #3240's Wayland headless-boot recovery logs its successful self-heal at ERROR, so every recovery files a Sentry error issue. The recovery is working as designed; the log level is what is wrong.
Sentry: ANTHIAS-4M — "Cage has had no wl_output for 75s while a display is connected (headless-boot wedge). Exiting so the container restarts and re-enumerates the display (recovery restart 1/N)."
Notable: this is the only issue in the project seen on the current release 2026.8.0+f5ff6fd. Volume is 1 event so far (a pi5 on balena), but it will grow in step with however often the wedge occurs across the fleet.
Detail
In src/anthias_viewer/__init__.py the recovery path does:
logger.error(
'Cage has had no wl_output for %.0fs while a display is '
'(headless-boot wedge). Exiting so the container restarts and '
're-enumerates the display (recovery restart %d/%d).', ...
)
sys.exit(1)
The Sentry logging integration promotes ERROR-level records to events, so a successful automatic recovery is indistinguishable in Sentry from a genuine failure.
Proposed change
- Demote the recovery-restart message to
warning. It is expected, self-healing behaviour.
- Keep the give-up-after-cap message ("not restarting further, to avoid a loop") at
error — that is the point where recovery has failed and a human is genuinely needed.
That keeps the actionable signal and drops the noise, matching the approach already taken for other known-benign sources (PR #3182's before_send drop for client-disconnect static noise, and the logger silencing for DisallowedHost / transient-redis chatter).
Worth keeping in mind
This issue is also the only field evidence that the headless-boot wedge still happens on 2026.08.0 — the fix catches it rather than preventing it. If the goal is to stop the wedge occurring at all, that is separate work and should not be folded into a log-level change.
Summary
PR #3240's Wayland headless-boot recovery logs its successful self-heal at
ERROR, so every recovery files a Sentry error issue. The recovery is working as designed; the log level is what is wrong.Sentry: ANTHIAS-4M — "Cage has had no wl_output for 75s while a display is connected (headless-boot wedge). Exiting so the container restarts and re-enumerates the display (recovery restart 1/N)."
Notable: this is the only issue in the project seen on the current release
2026.8.0+f5ff6fd. Volume is 1 event so far (a pi5 on balena), but it will grow in step with however often the wedge occurs across the fleet.Detail
In
src/anthias_viewer/__init__.pythe recovery path does:The Sentry logging integration promotes ERROR-level records to events, so a successful automatic recovery is indistinguishable in Sentry from a genuine failure.
Proposed change
warning. It is expected, self-healing behaviour.error— that is the point where recovery has failed and a human is genuinely needed.That keeps the actionable signal and drops the noise, matching the approach already taken for other known-benign sources (PR #3182's
before_senddrop for client-disconnect static noise, and the logger silencing forDisallowedHost/ transient-redis chatter).Worth keeping in mind
This issue is also the only field evidence that the headless-boot wedge still happens on 2026.08.0 — the fix catches it rather than preventing it. If the goal is to stop the wedge occurring at all, that is separate work and should not be folded into a log-level change.