VIEWPORT
Troubleshooting

Troubleshooting

When something's wrong, start here. The top failure modes with recovery steps.

The fastest first move when something looks off:

vpd doctor

Read-only. Prints daemon identity, control-plane endpoints, relay state, config source path, and recovery hints. It does not repair anything. It tells you where to look.

If vpd doctor looks fine, work down this list:

Quick reference

SymptomMost likely causePage
vpd status says relay disconnectedJWT expired or wrong relay URLDaemon won't connect
Browser opens to /pair but never approvesCode expired (15 min TTL)Pairing fails
Agent paused but /inbox is emptyHook bridge not installedAgent pauses, no inbox
Self-hosted relay rejects all connectionsRELAY_JWKS_URL unreachableRelay handshake errors
Created new org, every page says "Forbidden"Tenant context not set after switchTenant context errors
Phone push never arrivesPWA install required on iOSMobile experience
vpd update failedNetwork issue or npm permissionsDebug recipes

If nothing here helps, email us with the output of vpd doctor --json and we'll dig in.

On this page