Troubleshooting
Refyard

Troubleshooting

The handful of things that actually go wrong, and what each message means.

“Pairing failed”

The ticket was already spent, or it expired. Tickets are single-use with a 60-second default lifetime (--ticket-ttl raises it). Ask the running service for a fresh URL:

refyard pair

or press p on the terminal that is serving.

The page says “no live updates”

The event stream is not connected. The data on screen is the last read that succeeded. This is the normal state when the service has exited: the shell stays usable, reads report what failed, and no write is queued to replay later — reload after starting the service again.

“that session is not valid: it expired, or this service restarted”

Sessions belong to one service process. Restarting refyard serve invalidates them, and the tab must pair again with a fresh ticket (refyard pair).

A port is busy

The default 9595 is a preference, not a promise: if it is taken, another free port is chosen and printed. If you passed --port explicitly and it is busy, the command refuses rather than silently moving.

An operation says “unknown”

Git had side effects the service could not establish — usually a write interrupted mid-flight. The service blocks the next dependent write on purpose. Look at the repository with your own git to see the true state before continuing; the operation is never retried automatically.

The desktop app will not open on macOS

Gatekeeper quarantine on an ad-hoc signed build. See Installxattr -cr /Applications/Refyard.app clears it once.

Doctor says the environment is unusable

refyard doctor --json

reports the missing piece (usually a git that is not on PATH, or a version too old for the operations the service implements). Exit code 2 is that answer.