Skip to main content

Troubleshooting

Troubleshoot by request path first: Dash startup, reverse proxy, node reporting, historical data, traffic accounting, and Windows updates are separate paths.

Dash Does Not Start​

View recent logs:

journalctl -u dash.service -n 200 --no-pager

Common causes:

  • Config file was not found.
  • app.listen is missing.
  • app.public_url is missing.
  • app.public_url contains a path prefix.
  • auth.jwt_signing_key is missing.
  • monitor_dash_pwd is missing or contains invalid characters.
  • PostgreSQL connection failed.
  • PostgreSQL goose_db_version does not match the binary.
  • notify-config.key is missing, too permissive, or does not match channel ciphertext.
  • Redis connection failed, ACL denies PING/INFO server, or Redis is below 6.2.0.
  • TimescaleDB is unavailable.

Validate migration manually:

env DASH_HOME=/opt/Ithiltir-dash \
/opt/Ithiltir-dash/bin/dash migrate \
-config /opt/Ithiltir-dash/configs/config.local.yaml \
-debug

Check Redis separately with dash check-redis --addr 127.0.0.1:6379. Add --password-file <path> when required; the file must not have a trailing newline. This command does not read the Dash config file. A schema behind the binary must be migrated; a schema ahead of the binary cannot be used with that old binary.

Dash Update Requires Recovery​

When status contains recovery_required, run:

sudo /opt/Ithiltir-dash/bin/dash update recover

Before migration, recovery can restore the old release. After migration starts, recovery completes forward. Do not delete transaction.env or update.block manually.

Page Loads but API Fails​

Check the reverse proxy:

curl -i https://dash.example.com/api/version
curl -i https://dash.example.com/theme/active.css
curl -I https://dash.example.com/deploy/linux/install.sh

If / works but /api returns 404, the reverse proxy is probably forwarding only the SPA and not backend paths.

Node Does Not Come Online​

Node service state:

systemctl status ithiltir-node.service
journalctl -u ithiltir-node.service -n 200 --no-pager

Check target config:

/var/lib/ithiltir-node/current/ithiltir-node report list

Check Dash report endpoint reachability:

curl -i https://dash.example.com/api/node/identity -H 'X-Node-Secret: <secret>' -d '{}'

Common causes:

  • Secret mismatch.
  • Target URL is not /api/node/metrics.
  • app.public_url is not reachable from the node.
  • HTTPS certificate problem.
  • Reverse proxy does not forward /api/node/*.
  • System time is not synchronized.

/metrics Returns 503​

Local mode may return 503 before the first successful sample. Wait one collection interval.

./node local 127.0.0.1 9100 --debug
curl http://127.0.0.1:9100/metrics
curl http://127.0.0.1:9100/static

Historical Metrics Are Missing​

Check:

  • Whether the user is logged in.
  • Whether history_guest_access_mode is by_node.
  • Whether node is_guest_visible is true.
  • Whether the node already has historical data.

Daily Traffic API Returns 409​

/api/statistics/traffic/daily requires:

usage_mode=billing

Otherwise it returns:

{ "code": "traffic_daily_requires_billing", "message": "daily traffic requires billing mode" }

Manual traffic rebuild also requires Billing; Lite returns traffic_rebuild_requires_billing. Rebuild state resets to idle after Dash restart.

P95 Is null​

P95 fields have values only when p95_status=available. Common states:

  • disabled: P95 is disabled for the node.
  • lite_mode: global traffic mode is not billing.
  • insufficient_samples: not enough samples.
  • snapshot_without_p95: the monthly snapshot has no P95 value.

Windows Node Does Not Update​

Confirm the service starts the runner:

Get-Service ithiltir-node

Running ithiltir-node.exe push directly does not apply updates. The runner sets ITHILTIR_NODE_RUNNER=1 and replaces the binary.

Notification Channel Cannot Be Edited​

An invalid stored channel remains listed with config=null and can only be deleted and recreated. If Dash itself cannot start, restore the configs/notify-config.key that matches the PostgreSQL backup; never overwrite it with a new key.