LocalTunnel 503 Tunnel Unavailable: What It Means and How to Fix It
Learn what the LocalTunnel 503 tunnel unavailable error means, how to tell if loca.lt is down or your client dropped, and how to fix it step by step.
The localtunnel 503 tunnel unavailable error means the public loca.lt address cannot currently
forward a request through an active tunnel to your local application. This usually happens because
the LocalTunnel client has disconnected or the loca.lt service is experiencing an outage.
Start by checking the LocalTunnel status page. If an incident is reported, the problem is server-side, so restarting your application will not fix it. If the service is operational, confirm that your local application and the LocalTunnel client are still running.
LocalTunnel remains convenient for quick development tests, but recurring 503 errors can become disruptive when you need a public URL to stay available. For longer-running tunnels, a managed tunneling service such as LocalXpose may be a better fit. First, though, you need to identify what caused the current error.
LocalTunnel 503 Tunnel Unavailable: Quick Overview
The localtunnel 503 tunnel unavailable message appears when the loca.lt endpoint exists but
cannot find a working tunnel connection to your machine. It does not automatically mean there is a
problem with your application.
Check the LocalTunnel status page first. If the service is working normally, test your application
directly on localhost, confirm that the lt process is still running, and restart the tunnel once
if necessary.
The rest of this guide explains how to tell whether the error is coming from your LocalTunnel client
or the loca.lt service, then apply the correct fix.
What ā503 Tunnel Unavailableā Actually Means
A 503 status code means a service is temporarily unable to handle a request. In LocalTunnel, the
message appears when the public loca.lt endpoint cannot find a usable tunnel connection for the
requested URL.
A LocalTunnel request normally follows this path:
Browser ā loca.lt server ā LocalTunnel client ā Local application
The browser first connects to the public loca.lt address. LocalTunnel then forwards the request
through the active client on your computer and finally to the application running on a local port.
When the tunnel connection is missing, disconnected or unavailable, the loca.lt server has nowhere
to forward the request. It responds with 503 Tunnel Unavailable instead.
This differs from a 404 Not Found response. A 404 usually means the requested page or route could
not be found. A 503 means the service needed to complete the request is temporarily unavailable.
The error also does not automatically mean your application contains a bug. Your app may still be
working correctly on localhost, while the connection between your LocalTunnel client and the
public service has dropped. It can also happen when the LocalTunnel infrastructure itself is
experiencing an outage or degraded performance.
The 503 message alone does not reveal which side caused the failure. The next step is to separate
server-side loca.lt problems from issues affecting your LocalTunnel client.
Why Youāre Getting the Error: Client Side vs Server Side
The LocalTunnel 503 tunnel unavailable error usually comes from one of two places:
- The public
loca.ltservice is having a problem. - The LocalTunnel connection on your computer has stopped working.
The easiest way to narrow it down is to check the LocalTunnel status page first. If there is an active incident, the problem is probably not on your side. If everything looks normal, you can start checking your local setup.
The problem may be on LocalTunnelās side
Sometimes, the loca.lt service experiences an outage or becomes overloaded. When this happens,
your tunnel may stop working even though your local application and LocalTunnel client are still
running.
In one reported case, users said their tunnels worked for about a minute before returning the 503 error. You can read the discussion in GitHub issue #726.
The problem is likely server-side when:
- The LocalTunnel status page reports an incident.
- Several tunnel URLs stop working at the same time.
- A new tunnel URL also returns the same error.
- The tunnel works briefly and then drops again.
When loca.lt is down, restarting your application repeatedly will not help. You will need to wait
for the service to recover or use another tunneling service for the time being.
The problem may be on your side
If LocalTunnelās service appears to be working normally, check the connection on your computer.
The LocalTunnel client must remain open and connected for the public URL to work. Closing the terminal, losing your internet connection or putting your computer to sleep can break the tunnel.
Other common causes include:
- The LocalTunnel process has stopped.
- Your application is running on a different port.
- Your local application is no longer running.
- A firewall or network rule is blocking the connection.
- A script is starting LocalTunnel incorrectly.
Wrapper scripts can be especially confusing. A script may close the LocalTunnel process too early, pass the wrong port or start several tunnel connections at once.
To rule this out, run LocalTunnel directly from your terminal instead of using the script. If the manual command works, the issue is likely inside the script rather than LocalTunnel itself.
This type of script-related behaviour has also been discussed in GitHub issue #699.
Avoid using a script that restarts LocalTunnel every few seconds. Constant reconnect attempts can make the connection less stable and may trigger rate limiting. Restart the client once, check the terminal output and give it time to reconnect before trying again.
Once you know whether the issue is coming from loca.lt or your computer, the correct fix becomes
much easier to find.
The Tunnel Password Page Is Not the 503 Error
LocalTunnel may show visitors a password reminder page before allowing them to open a loca.lt URL.
This page is a separate access check and does not mean the tunnel itself is broken.
Entering the correct password only gets you past the reminder page. LocalTunnel still needs an active connection to the client running on the tunnel ownerās computer.
So, if you enter the password and then see 503 Tunnel Unavailable, the password is not the problem. The tunnel likely disconnected, expired or became unavailable while LocalTunnel was trying to forward the request.
The request flow looks like this:
Password page ā loca.lt server ā Active tunnel ā Local application
Passing the password page completes only the first step. A 503 appears when LocalTunnel cannot complete the remaining connection to the active tunnel.
This behaviour was reported by users in GitHub issue #726, where tunnels returned a 503 shortly after visitors passed the password page.
When this happens, check the LocalTunnel status page and confirm that the lt process is still
running. There is usually no need to keep re-entering the password.
How to Fix LocalTunnel 503 Tunnel Unavailable
Work through these steps in order. Starting with the status page saves time because there is little
you can fix on your computer during a wider loca.lt outage.
1. Check the LocalTunnel status page
Open the LocalTunnel status page and look for an active incident or degraded service.
The LocalTunnel maintainer recommends checking this page when tunnels start failing. If an outage is listed, wait for the service to recover or use another tunneling service temporarily. Restarting your app repeatedly will not solve a server-side problem.
2. Make sure your application works locally
Open your application directly in the browser using its localhost address. For example:
http://localhost:8000
If the page does not load locally, fix the application before troubleshooting LocalTunnel. The tunnel cannot forward traffic to an app that is not responding.
Also confirm that you are using the correct port. Your application may have restarted on a different port without you noticing.
3. Confirm that the LocalTunnel client is still running
Return to the terminal where you started LocalTunnel. The process should still be open.
Closing the terminal, losing your internet connection or putting your computer to sleep can disconnect the tunnel. LocalTunnel URLs remain active only while the client session is running.
Restart the client once using the official command:
npx localtunnel --port 8000
If LocalTunnel is installed globally, you can use:
lt --port 8000
Use the same port as your local application. The terminal should return a new public loca.lt URL.
4. Run LocalTunnel without your wrapper script
If you normally start LocalTunnel through a script, task runner or process manager, run it directly from the terminal instead.
This helps remove the script from the test. A wrapper script may be using the wrong port, closing the process too early or starting more than one client.
If the manual command works, LocalTunnel is probably not the main problem. Check how your script starts and manages the process.
5. Stop rapid restart loops
Do not configure a script to restart LocalTunnel every few seconds.
Rapid retries can create several connections, hide the original error and make troubleshooting harder. Stop any duplicate LocalTunnel processes, start one client manually and allow it time to connect.
A single controlled restart is more useful than repeatedly creating new tunnels.
6. Try a fresh tunnel URL
If you requested a specific subdomain, temporarily remove it and let LocalTunnel generate a random one:
npx localtunnel --port 8000
LocalTunnel uses a randomly generated subdomain by default. If the new address works, the problem may be limited to the previous tunnel URL or session.
7. Check your network and firewall
If the status page is clear and the client still cannot connect, try another network or temporarily check whether a firewall, VPN or proxy is blocking the connection.
You should now have narrowed the problem down:
- If localhost does not work, fix the local application.
- If the manual command works, check your wrapper script.
- If every new tunnel fails while the status page reports an incident, the issue is server-side.
- If the problem keeps returning, it may be time to consider a more reliable way to expose your local server.
When LocalTunnel Keeps Doing This: Switch to a More Reliable Option
LocalTunnel is convenient for quick tests, but recurring 503 errors can interrupt webhook
development, client demos and integrations that depend on a stable public URL. Restarting the client
may restore the tunnel temporarily, but it cannot fix an outage or reliability problem affecting the
public loca.lt service.
When you need a tunnel that is built for longer-running development work, LocalXpose is the more reliable option.
LocalXpose provides a managed local tunnel with persistent URLs, so you do not have to keep replacing your webhook endpoint or sharing a new link whenever the tunnel restarts. You can also run tunnels in the background instead of keeping a terminal window open throughout your testing session.
It is especially useful when testing webhooks locally. LocalXpose lets you inspect incoming requests, view headers and payloads, identify errors and replay webhook requests without waiting for the external service to send them again.
LocalXpose also supports more than basic HTTP tunneling. Depending on your plan, you can expose HTTP, HTTPS, TCP, TLS and UDP services, making it suitable for APIs, databases, game servers, SSH connections and other local services. If you are weighing LocalTunnel against other options before switching, how LocalTunnel and ngrok compare is a useful reference point.
The free plan supports two HTTP tunnels, which is enough to start testing LocalXpose without paying. Paid plans unlock additional tunnels and features for developers and teams that need a more permanent setup.
If LocalTunnel 503 errors keep interrupting your workflow, moving to a managed tunneling service gives you a more stable tunnel, better visibility into incoming traffic and tools designed for ongoing development.
Frequently Asked Questions
What does ā503 Tunnel Unavailableā mean in LocalTunnel?
It means the public loca.lt address cannot connect to an active tunnel on your computer. This may
happen because the LocalTunnel client disconnected or because the loca.lt service is having a
problem.
Is the 503 my fault, or is loca.lt down?
Check the LocalTunnel status page first. If it reports an incident, the problem is server-side. If the service is working normally, check your local app, internet connection and LocalTunnel process.
Why does my tunnel return 503 after about a minute?
The tunnel may be losing its connection shortly after it starts. This can happen during a LocalTunnel service incident or when the client process stops unexpectedly.
Check the status page and watch the LocalTunnel terminal for connection errors. Similar behaviour was reported in GitHub issue #726.
Why do I still get a 503 after entering the tunnel password?
The password page and the tunnel connection are separate. Entering the password allows you to continue, but LocalTunnel still needs an active tunnel to reach the local application.
A 503 after the password page usually means the tunnel disconnected or became unavailable. Re-entering the password will not fix the connection.
Can running LocalTunnel from a script cause 503 errors?
Yes, if the script closes the LocalTunnel process too early, uses the wrong port or starts several clients at once.
Run LocalTunnel manually from the terminal to test it. If the manual command works, review how the script starts and manages the process. Script-related connection problems were also discussed in GitHub issue #699.
How do I make my tunnel stay up reliably?
Keep the LocalTunnel client running, avoid aggressive restart loops and make sure your computer
remains online. However, these steps cannot prevent outages affecting the public loca.lt service.
For webhook testing, demos and integrations that need a stable public address, LocalXpose provides persistent URLs, background tunnels and request inspection tools that are better suited to ongoing development.
Conclusion
The LocalTunnel 503 tunnel unavailable error means the public loca.lt address cannot find a
working tunnel connection to your computer. The problem may be on LocalTunnelās servers, or it may
come from a disconnected client, an incorrect port or a script that is not keeping the tunnel alive.
Start with the LocalTunnel status page. If there is an outage, wait for the service to recover or switch to another tunnel. If the service is healthy, test your app on localhost, confirm that the LocalTunnel client is still running and try the command manually outside any wrapper script.
For quick tests, LocalTunnel may still be useful. But when you need a stable URL, background tunnels and better visibility into incoming requests, LocalXpose gives you a more reliable setup for webhook development, demos and ongoing testing.