Skip to main content

Cannot connect to a lab

Use this page when you cannot reach a lab through the tunnel (the WireGuard VPN between your device and your labs), SSH or the browser editor. Start with the one check that tells you which half the problem is in.

First: does VS Code in the browser work?

Open the lab and select Code. The browser editor needs no tunnel and no keys.

The tunnel​

SymptomLikely causeFix
WireGuard shows no handshakeThe tunnel is not activated, or the device was deleted in the dashboardActivate it. Check that the device still exists on My Devices; if not, add it again and import the new config.
Handshake, but nothing answersThe lab is stopped, so it has no addressCheck that the lab is deployed. If it is not, deploy it.
Handshake, but ping to an address failsYou pinged a network or gateway addressPing the lab's own Device IP, shown on its page
It worked yesterday, not todayThe device had no reserved address and was given a new oneDownload the config again, and reserve the address
The lab's address changedStopping a lab releases its addressUse the Device IP on the lab's page now, or request a reserved address in the lab's Preferences
Imported config says the key is invalidYou registered your own public key, and the {private_key} placeholder was not replacedPut your private key into the config on your machine
Works on one network, not anotherThat network blocks outgoing UDPTry another network, such as a phone hotspot, to confirm
Device status stays OfflineThe tunnel is not up on that machineActivate it in the WireGuard app on that machine
Device status is No ConnectionThe tunnel has never connected from that machineImport the tunnel file or QR code again, and check the key: if you use your own key, replace the {private_key} placeholder with your private key
The lab has no Device IPYou were at your device limit when the lab deployed. Running labs use device slots too.Delete a device you no longer use on My Devices, then redeploy the lab. See Devices.
The lab has a Device IP but your device cannot reach itYour device and the lab are on different private networksCheck the interface chip on both entries on My Devices. Add the device to one of the lab's networks, or add that network to the lab. See Private networks.

SSH​

SymptomLikely causeFix
Connection timed outTunnel down or lab stoppedFix the tunnel first — see above
Asks for a passwordYour SSH key is not in the labAdd it under Account Settings → SSH Keys, make sure it is enabled, then redeploy — keys are installed at deploy time
Permission denied (publickey)Wrong user name, or the lab uses a narrower key selectionUse the user from the SSH Command row. Check the lab's Preferences → SSH keys.
REMOTE HOST IDENTIFICATION HAS CHANGEDThe lab was rebuilt, and with it its host keyRemove the old entry: ssh-keygen -R <your-lab-ip>, then connect again
Connection refusedThe lab is running but SSH is notRedeploy. If it persists, check the lab's Activity tab.
SSH is private only

Port 22 is never published to the internet. SSH always goes through the tunnel.

The lab or the browser editor​

SymptomLikely causeFix
code-server URL says Not runningThe lab is not deployed, or its editor did not startRedeploy the lab
The editor's password is rejectedYou set a custom code-server passwordUse your own password, not the generated one. Leaving the field empty generates a new one on each deploy.
Browser warns the editor's site is not secureCertificate problem on its domainSee HTTPS not secure
Lab page shows it is pausedPaused labs are frozenSelect Resume
Lab is stopped and you did not stop itIdle shutdown, expiry, CPU or memorySee Lab stopped unexpectedly
Lab never reaches deployedThe deploy failedSee Deploy failed

A published app will not load​

SymptomFix
502 or 504 error pageThe app is not listening on the port you published, or it is still starting. Check it inside the lab with curl -I http://localhost:<port>.
Your domain shows nothing newDomain and port changes apply only after a redeploy. Use Apply & Redeploy now.
Works over the tunnel, not publiclyThe port is not published. See Publishing ports.

Still stuck​

Note the lab's name, when the problem happened, and what you tried. Then ask in community chat or contact your administrator.

Do it with an AI assistant​

You can also do this by asking an AI assistant connected to your account — see Connect an AI assistant to set one up.

AskWhat the assistant does
“I can't reach my lab over the VPN”list_devices to see when your device last connected, then lab_status and lab_info
“SSH says permission denied”Checks your keys with list_ssh_keys, then redeploys with deploy_lab so they are installed
“My published app will not load”lab_status, lab_probe, then list_domains
Keys and passwords arrive at deploy

A key or password you just added reaches a lab only when it is redeployed. If you never set a sudo password, the lab uses a fixed default, shown in its connection details.

Next​