Pairing
Generate a dashboard pairing code and enter it on the machine. Codes last about three minutes and work once.
What this is
Pairing is the only machine-to-account link. The website generates a short code; you type it on the host. Do not put your account password or an AppSumo code into the agent.
Prerequisites
- PortPilot installed and
portpilot statushealthy - Signed-in account with a free seat (Licensing)
- Outbound HTTPS from the host to
https://api.portpilot.app
Official workflow
- Log in at portpilot.app.
- Open Machines.
- Choose Add machine.
- Choose Generate pairing code.
- Keep the code visible (countdown is about three minutes).
- On the target machine: Desktop Enter pairing code, or
portpilot pair. - Wait until the dialog shows Machine paired successfully.
- The machine appears in the dashboard — View machine.
Letters O/0 and I/1 are treated the same. Creating a new code expires any unused code you still had open.
The agent opens an outbound WebSocket. Browsers never talk to the privileged agent.
Expected result
- Dialog: Machine paired successfully
- Desktop: Machine paired / status Paired, Cloud connected
- Website: host online with ports filling in
- Entitlements arrive with the cloud handshake and cache locally for 24 hours offline
What happens otherwise
| Situation | Result | What to do |
|---|---|---|
| Code expires | Claim fails as expired | Generate a new code |
| Invalid code | Claim fails | Check hyphens; O/0 and I/1 match; do not use an AppSumo code |
| Code already used | Claim fails as used | Generate a new code |
| Machine already paired | Local enrollment already set | Unpair locally or revoke in the dashboard, then pair again |
| Seat full | machine_limit_reached | Revoke a machine or upgrade |
| Wrong account | Machine appears on the other login | Sign into the account that generated the code |
Pairing troubleshooting
Invalid code
You typed a dashboard pairing code, not a licence/AppSumo string. Re-copy from Your pairing code. Crockford encoding treats O/0 and I/1 as the same.
Expired code
Codes last about 180 seconds. Generate a new one and pair immediately. Keep the Add a machine dialog open.
Code already used
Each code works once. Generate a new code even if you are pairing the same host again.
Machine already paired
Desktop Machine shows Paired. portpilot unpair or Unpair locally clears local enrollment only — Revoke in the dashboard if you need the seat freed. The same machine id after revoke reuses the seat.
Network failure
The host must reach https://api.portpilot.app outbound. Proxies and captive portals will fail claim. portpilot doctor reports cloud reachability.
Machine does not appear online
- Identify the machine in Machines (or confirm it never registered).
- On the host: Windows
Get-Service PortPilotAgent; Linuxsystemctl status portpilot-agent. portpilot status/portpilot doctor.- Check last seen on the website.
- Logs: Windows
%ProgramData%\PortPilot\logs\; Linuxjournalctl -u portpilot-agent.service -n 80.
Wrong account
The machine belongs to the account that generated the successful code. Sign in there. Licences are not transferable; support will not ask for your password.
Unpair locally with portpilot unpair or revoke in Machines. Revoke frees the seat immediately.