Skip to content

Error 404: "no tunnel found for host"

A request to your tunnel’s host came back 404 with plain text — not JSON:

no tunnel found for host api--acme.mcppipe.dev

Three different conditions produce a 404, and two of them share almost the same wording. Reading the message carefully is the whole diagnosis:

MessageMeaning
no tunnel found for host <host>The host does not match the expected pattern or the default subdomain was disabled
no tunnel **registered** for host <host>The host is well-formed, but no tunnel exists for it

Note found vs registered. If you are grepping logs for the exact string, you will land on the wrong case.

The host is shaped correctly and mcppipe looked it up — there is simply no tunnel behind it. Usual causes:

  • The tunnel was deleted. Deleted tunnels enter a 7-day recovery window, but they stop serving immediately.
  • The subdomain or account slug was renamed, and something is still pointing at the old host.
  • A typo in the host.

Check the tunnel list in the dashboard for the current public host.

no tunnel found for host … — malformed host

Section titled “no tunnel found for host … — malformed host”

The host does not match the <subdomain>--<account-slug>.<zone> pattern at all. The separator is two hyphens; a single hyphen is the most common mistake, and it produces exactly this error.

no tunnel found for host … — default subdomain disabled

Section titled “no tunnel found for host … — default subdomain disabled”

This one surprises people, because the tunnel is alive and working.

If a tunnel has a verified custom domain, its owner can disable the default subdomain. After that, the custom domain serves normally and the original <subdomain>--<slug>.<zone> host returns 404 on purpose — so a URL that was handed out earlier stops working while the tunnel itself is fine.

Fix. Use the custom domain. If you want both to answer, re-enable the default subdomain in Settings.

Different problem: the custom domain is probably not verified or not routable yet. Ownership is proven with a DNS TXT record at _mcppipe-challenge.<your-domain>, and the domain also needs its CNAME pointing at <subdomain>--<slug>.cname.<zone>. Until both are in place the domain does not route.

See Custom domains & TLS.

A 404 is about routing — it means mcppipe could not find a tunnel for the host, which is decided before the request ever reaches your machine. If the host is right and the tunnel exists, check that the CLI is actually connected; the tunnel’s detail page shows its state.

  • 403 — the tunnel was found, then a gate refused the request.
  • 401 — the tunnel requires a token.