Files
ActivePush/docs/TROUBLESHOOTING.md
T
2026-11-05 12:52:32 +01:00

2.5 KiB

Troubleshooting

Health and diagnostics

curl -s http://127.0.0.1:8081/healthz          # "ok" when the process and database respond
journalctl -u active-push -f                    # server log
sudo -u active-push active-push device list
active-push probe --url https://mail.example.com/Microsoft-Server-ActiveSync --user jan@example.com

probe performs OPTIONS, Provision, FolderSync and an Inbox Sync like a phone would. Use --device-id, --device-type and --model to imitate a specific device. For protocol-level detail add the mailbox to ActiveSync -> Logging -> Debug users; decoded WBXML of every request/response then appears in the log.

After migrating from Z-Push: "collection ... not found" in the live stream

Phones may keep folder ids created by Z-Push (e.g. a6271970). ActivePush answers such a Sync with status 12 (hierarchy changed), remembers the id and sends a FolderHierarchy Delete for it on the device's next FolderSync, so the phone drops the phantom folder and continues with the real ones. If a device still loops after a few minutes, use Full resync in the device dialog or remove and re-add the account on the phone.

Device keeps asking for the password / HTTP 401

  • Wrong password, or the login format does not match IMAP (general.login_format, default_domain).
  • The account or IP may be locked out: Mailboxes -> Active login lockouts shows and clears lockouts.
  • Check authentication failed user=... ip=... lines in the log.

HTTP 449 or status 142/144

The device has not accepted the current policy. It normally re-provisions automatically. If a device cannot apply the policy (e.g. it does not support encryption), relax the policy or enable loose provisioning.

Push is late

Push latency is at most ping.check_interval_secs (default 30 s). The reverse proxy must allow long requests (proxy_read_timeout 3660s, buffering off). The Live page shows every held Ping and its heartbeat.

HTTP 503 with Retry-After

The IMAP server was unreachable during the request. Check the Backends page test buttons.

Panel is not reachable

The panel listens on loopback by default; use ssh -L 9091:127.0.0.1:9091 server. Starting it on another address requires ACTIVE_PUSH_ALLOW_REMOTE_ADMIN=true (preferably with TLS). Lost password: sudo -u active-push active-push admin reset-password.

"belongs to uid ..." when running a command

CLI commands must run as the service user so database files keep the right owner: sudo -u active-push active-push ....