SpadeIDE

Troubleshooting

Start by checking the agent is actually running: spadeide status on the host, or the menu-bar popover on macOS.

The iPad cannot find the host on my own network

CheckWhat to do
Both on the same network?Guest Wi-Fi and "client isolation" on many routers block devices from seeing each other. Switch the iPad to the main network.
Agent running?spadeide status. If not: spadeide.
FirewallAllow 7422/tcp from your LAN and 5353/udp for discovery. On macOS, allow incoming connections when prompted.
mDNS on Linuxsudo apt install avahi-daemon avahi-utils, then restart the agent.
VPN on the iPadA full-tunnel VPN routes LAN traffic away. Turn it off to test.

As a fallback, paste the pairing URL by hand — it contains the address and fingerprint.

Pairing fails

Unix login on a system install

Only after sudo ./install.sh --system (or the privileged systemd unit). A normal user install never shows this sheet — see which install.

SymptomWhat to do
Connected, then “unix login required” / sheet with username + password Expected once per tablet. Use a real host account (not root). Password goes over the already-encrypted session and is not stored.
Wrong password / refused / disconnects Reconnect and try again. Confirm the account can log in locally (su - user or SSH). Locked / expired / deleted accounts fail.
Asked for Unix login again after it worked Password changed, account locked/deleted, or UID recycled. Enter the new credentials (or a different account).
No Unix login sheet, but “unix login required” in the UI Update the iPad app — older builds could skip presenting the form. Force-quit SpadeIDE and reconnect.
Terminal: permission denied for docker / devices The shell has that Unix user’s normal groups only. Add the user to the group on the host (usermod -aG docker …), then log out/in Unix-wise and reconnect the tablet.
Cannot browse outside home By design on a system install — the session is jailed to that user’s $HOME.

Pairing QR for a system install: sudo spadeide pair --no-start (do not start a second agent with interactive sudo spadeide).

Remote access does not work

SymptomCause
"Remote access is turned off on host"Exactly what it says: spadeide remote on on the host.
"Host is offline"The agent is not registered — it is not running, or it lost internet.
"Could not reach rendezvous"The iPad cannot get to the introducer. Check the Rendezvous URL in Settings, or the network you are on.
Connects, but always relays and feels slowDirect needs UDP. Carrier-grade NAT and networks that block UDP force the relay. If you self-host, confirm 443/udp is open.
Worked yesterday, not todayHandles rotate hourly — a clock that has drifted breaks lookup. Check the time on both machines.

Connection keeps dropping

Moving between Wi-Fi and cellular, or the iPad sleeping, will reconnect automatically — your tabs, workspace and unsaved edits survive. If it drops repeatedly while stationary, check the host is not sleeping: a Mac that suspends takes the agent with it.

# macOS: keep the machine awake while the agent should be reachable
caffeinate -s

Git says it cannot authenticate

Git runs non-interactively, so anything that would prompt for a password fails instead of hanging. Run the command once in the terminal — inside SpadeIDE is fine — so your credential helper or SSH agent caches it, then retry from the UI.

Where the logs are

# the agent
tail -f ~/.spade-agent/agent.log

# Linux, under systemd
journalctl -u spade-agent -f
journalctl --user -u spade-agent -f

# self-hosted rendezvous
journalctl -u spade-rendezvous -f

In the app, Settings → Events shows connection and transport notes from the iPad's side — which path it chose and why a connection failed.

Starting over

spadeide reset        # forget every paired device on the host
# then remove the host in the iPad app and pair again

To put a new Linux binary on the host without losing pairings, see reinstalling on a server. Wiping ~/.spade-agent is a new identity — every iPad must pair again.