Each bar = one gateway process lifetime. Green = clean exit, red = unclean (SIGKILL/OOM/VM death), amber = signal-initiated.
| PID | Started | Ended | Uptime | Exit | Notes |
|---|---|---|---|---|---|
| 4485 | Sep 2 05:20 | Sep 2 05:23 | 3m 31s | nonzero | First gateway after profile registration |
| 4554 | Sep 2 05:23 | Sep 2 17:55 | 12h 32m | nonzero | Longest Sep 2 session |
| 142 | Sep 2 19:35 | Sep 2 21:29 | 1h 54m | nonzero | |
| 1630 | Sep 2 21:29 | Sep 2 22:05 | 36m | nonzero | |
| 1720 | Sep 2 22:05 | Sep 2 23:14 | 1h 9m | nonzero | 5th failure in one evening |
| 7991 | Sep 5 00:43 | Sep 16 03:27 | 10d 2h 44m | SIGKILL/OOM? | UNCLEAN — no exit path ran. RSS 381MB. suspected_oom=False |
| 160 | Sep 16 03:29 | Sep 16 03:33 | 4m 7s | SIGTERM | Clean shutdown triggered by s6-supervise |
| 152 | Sep 16 03:33 | Running | — | active | Current gateway · 2 platforms · 7 channels |
Categorized from errors.log and agent.log. Count = occurrences, not unique events.
| Time (UTC) | Severity | Source | Message |
|---|---|---|---|
| 00:58:41 | Error | Provider | OpenRouter payment/credit error — OPENROUTER_API_KEY not set. MOA aggregator fallback fails 3/3 retries. Session 20260916_005710_a261ff fails. |
| 01:27:23 | Warning | Write-safe | write_file denied: /tmp/tower-uptime-discord.md outside HERMES_WRITE_SAFE_ROOT (/opt/data). |
| 02:02:59 | Warning | Cron | Cron job Tower uptime summary (a69759413e81): skill p5js not found, skipping. |
| 02:05:44 | Error | Discord | Delivery to discord:1531750964124455073 failed: 429 Rate Limited. retry_after=0.3s. |
| 02:09:08 | Error | Provider | Nous API 401: "Your API key is invalid, blocked or out of funds." → portal.nousresearch.com |
| 02:09:23 | Warning | Info | Defunct Hermes process found: PID 9580, started Sep 7 06:10, elapsed 8d 19h 58m (zombie). |
| 02:56:28 | Warning | TUI | TUI parent received SIGHUP → killed gateway (graceful-exit-cleanup). |
| 03:23:09 | Warning | Write-safe | memory tool blocked: content matches threat pattern send_to_url. |
| 03:29:31 | Warning | Gateway | Previous gateway (pid 7991) exited UNCLEANLY — no exit path ran. SIGKILL/OOM/VM death suspected. Last heartbeat 03:27:46. |
| 03:33:34 | Info | Gateway | SIGTERM from s6-supervise → clean shutdown in 0.44s → immediate restart (pid 152). |
| 03:43:54 | Warning | Discord | Slash command sync timed out — Discord rate-limit bucket saturated. |
| 04:13:07 | Error | Discord | Failed to edit message 1549634193519149169: 503 Service Unavailable. Transport failure: immediate connect error. |
| 04:21:30 | Warning | Write-safe | write_file denied: /opt/hermes/web/src/lib/download.ts outside write-safe root. (iOS Safari download fix attempt.) |
| 04:30:06 | Warning | Cron | Cron job a69759413e81: p5js skill missing again. Job proceeds with solar-pro4:free anyway. |
p5js skill is listed in the cron job's skill requirements but is not installed in the skills directory. The job falls back to solar-pro4:free and still produces a text report, but any graphics/charts the p5js skill was supposed to generate are lost.
| PID | Started | Elapsed | State | Note |
|---|---|---|---|---|
| 9580 | Sep 7 06:10 | 8d 19h 58m | Zombie (Zs) | Parent PID 123. Discovered during terminal tool run at 02:09:23. Likely a stale agent subprocess that never reaped. |
| Status | Issue |
|---|---|
| Unhealthy | OPENROUTER_API_KEY not set in environment. Marked unhealthy for 60s intervals. MOA aggregator task fails when OpenRouter is requested. |
From last heartbeat of killed gateway (pid 7991) and current housekeeping logs.
The killed gateway (pid 7991) had RSS 381 MB with 45 GB available — no evidence of OOM. The unclean kill was more likely a VM restart, host maintenance, or s6-supervise decision. Memory is well within bounds; housekeeping trims fire every ~60s keeping RSS stable.
| Path | Purpose | Status |
|---|---|---|
| /opt/data (96 GB ext4) | Shared partition — logs, sessions, shared files | Healthy |
| /opt/data/shared/ | Caddy static root → shared.srv1933161.hstgr.cloud | Serving |
| /opt/data/logs/ | Agent, gateway, error, and diagnostic logs | Rolling |
| /opt/data/sessions/ | Session storage for gateway | Active |
OPENROUTER_API_KEY is not set. MOA aggregator sessions fail when they hit the OpenRouter path. If MOA is not needed, remove it from the config. If it is needed, add the key via hermes setup.
HERMES_WRITE_SAFE_ROOT=/opt/data blocks writes to /tmp and /opt/hermes/web/src/. This is by design for container safety. The iOS Safari download fix (download.ts) cannot be applied from inside the container — it needs a host-side patch.
Approximate gateway coverage per day. Sep 2 was unstable; Sep 5–16 had one long-running instance.