{
  "observed_at": "2026-09-28T17:56:02+09:00",
  "scope": "User-requested AI-to-Web reconnect after manual ct start",
  "login_attempts": 1,
  "login_result": "HTTP_401_LOGIN_REJECTED",
  "login_helper": "tools/icerti_login_once.py",
  "recovery_helper": "tools/icerti_restore_saved_session.py",
  "saved_session_unchanged": true,
  "original_sidecar_restarted": true,
  "containers_running": 5,
  "healthchecks_healthy": ["postgresql", "redis", "analytics", "ai-control-sidecar"],
  "gateway_healthcheck": "not configured",
  "model_readiness_http": {
    "RFDETRMedium": 200,
    "RFDETRKeypointPreview": 200,
    "RFDETRFireSmoke": 200,
    "Awiros_person_and_head_detection": 200
  },
  "channel_states": {"stopped": 44},
  "bridge_status": {
    "auth": null,
    "wss": {"connected": false, "counts": {}, "actions": {}, "lastError": null}
  },
  "camera_start_requested": false,
  "additional_sudo_required": false,
  "notes": [
    "An empty auth error does not prove the saved AI token is still accepted by Web.",
    "WSS counters describe Sidecar observations, not all TCP or TLS attempts.",
    "HTTP 401 alone does not identify password mismatch versus account state or other authentication rejection.",
    "No repeated login, credential changes, certificate changes, camera Start or model changes were made.",
    "The earlier 17:26 stopped-state evidence remains a historical snapshot. This readback follows the user's ct start."
  ]
}
