Skip to guide

ERR_NGROK_8012 and ERR_NGROK_3200: connection checks

Seeing ERR_NGROK_8012 or ERR_NGROK_3200?

ERR_NGROK_8012 means the request reached your ngrok agent, but the agent couldn’t reach your local app: check the app is running and the port and scheme are right. ERR_NGROK_3200 means the endpoint is offline: the agent isn’t running or the address is wrong.

What does ERR_NGROK_8012 mean?

Traffic reached the agent, but it could not connect to the upstream app. Open the exact local target from the agent’s environment. Check its listener, port and HTTP or HTTPS scheme.

If the agent runs in a container, check the network path to the app. Its localhost may not refer to your host machine. Correct the target and retry a small request.

What does ERR_NGROK_3200 mean?

ngrok describes an offline endpoint. Check that the serving agent is running and the public URL is exact. This differs from 8012, where traffic reached an agent.

Does a free ngrok address always change?

No. Current documentation includes an assigned dev domain and says free endpoints have no automatic timeout. A persistent address still needs a running agent and reachable app.

Check the assigned domain and current agent configuration before changing registered webhook or OAuth addresses. If you deliberately migrate, update the full callback address and test the integration. A stable domain does not remove usage limits or keep a stopped app online.

Would a different tunnel fix an unreachable app?

It will not start the app or correct its local target. Groundhog also requires a connected agent and reachable local HTTP app. Fix the local request, then verify the public request with your chosen service.

Sources

Sources reviewed . Provider behavior and limits can change.

Try Groundhog for your local HTTP app

Use a named public HTTPS address with the CLI or Aspire. There’s no monthly data cap; per-minute and concurrent-request limits apply.