Jump Hippo ← Back to site

Troubleshooting

When a tunnel won't arm or connect, it enters the Error state and records a reason. Open the tunnel (or click its Errors card) to read the message and recent history. Here are the common causes and fixes.

"Port already in use" (can't arm)

Arming binds the entry port, and only one program can bind a given address:port. If Jump Hippo reports the port is in use:

Privileged ports (below 1024)

Binding a port under 1024 (e.g. 80, 443) requires elevated privileges on macOS and Linux. If you see a permission error when arming such a port:

Connection failures

If the entry port binds but the SSH connection fails on first access, the tunnel goes to Error. Typical reasons:

"Host key changed" — refused connection

Jump Hippo refuses a connection when a host's key differs from the one you trusted. This is a safety stop, not a bug. Do not bypass it blindly:

  1. Confirm with whoever runs the server that the key legitimately changed (rebuild, key rotation).
  2. Only then revoke the old trusted key so the next connection re-prompts, and trust the new fingerprint.

See Host Keys & Trust.

Reconnects and drops

If a live connection drops:

While a tunnel is backing off, the Reconnect field (add it from Data Fields, or read it in the list view) shows the current attempt and a live countdown to the next try; the tray icon and its menu summarise the overall health (reconnecting, or a bang badge when a tunnel needs attention). A tunnel that exhausts its attempts stops in Error; flip its arm toggle (or the row's Arm menu item) to retry.

Repeated drops usually point at an unstable network path or an idle-timeout on the server; consider Keep SSH connected while armed for a destination you use constantly. See Defining Tunnels.

Detecting a dead connection quickly (SSH keepalive)

A connection can go silently dead — the network path drops without a clean close, so nothing is delivered and nothing errors until the operating system's TCP timeout finally expires (which can be minutes). Jump Hippo's SSH keepalive sends a small probe over each hop on an interval; if several probes go unanswered the connection is treated as dropped and the reconnect policy kicks in — turning minutes of silent limbo into seconds. Tune it under Settings → Notifications (SSH keepalive interval; 0 turns probing off).

Keepalive vs. keep-alive. These are two different things. SSH keepalive (Settings) is the health probe described above. Keep SSH connected while armed (per tunnel) instead holds the SSH connection open the whole time the tunnel is armed, instead of opening it lazily and tearing it down when idle.

Tuning the retry policy

The reconnect backoff is configurable globally under Settings → Notifications:

A single tunnel can override any of these in the editor's Advanced → Reconnect policy section; leave a field blank to inherit the global value.

Failure notifications

Jump Hippo can raise a desktop notification when a tunnel drops, recovers, or gives up, and always when a host key changes. Notifications carry only the tunnel's name — never a host, username, or secret. They're coalesced so a flapping tunnel can't spam you (a recovered notice appears only if you were told about the drop, and repeated drops are held back by a cooldown). Turn the whole set off, toggle individual events, or change the cooldown under Settings → Notifications. Your operating system's Do-Not-Disturb is always respected.

Secrets are locked (master password)

If you use the master password backend, Jump Hippo starts locked and can't decrypt credentials until you unlock it. Tunnels that need a stored secret wait until you enter the password (Settings → Security, or the unlock prompt at launch). See Security.

Still stuck? Collect diagnostics

Help → Copy Diagnostics puts a redacted report on your clipboard (app info, tunnel list without secrets, and a redacted log tail). Help → Show Logs Folder opens the rotating log. Both are safe to share on a GitHub issue — secrets are stripped.