Troubleshooting
Debug route attachments, tunnel connectivity, and common failure modes.
This guide helps you diagnose common issues with route attachments, tunnel connectivity, and Kubernetes mirroring.
Routes not attaching
When a route doesn't show up in apoxy gateway get, work through this checklist:
- Confirm the right project — check your Apoxy config has the correct project selected.
- Confirm the Gateway exists — run
apoxy gateway listand verify the Gateway name. - Check
parentRefs— the route must reference an existing Gateway by the correct name. - Check the route type — an HTTPRoute won't attach to a TCP-only listener, and vice versa.
- Check hostnames — if the Gateway listener restricts hostnames, the route's hostnames must overlap.
- Check
sectionName— if specified, it must match a listener name on the Gateway.
Inspect both sides:
apoxy gateway get default
apoxy gateway routes get http/my-routeCompare the route's parentRefs against the Gateway's listener names and protocols.
Tunnel not connecting
If apoxy tunnel run starts but traffic isn't flowing:
- Check the TunnelNode exists — run
apoxy tunnel listand verify the name matches what your route references. - Check the tunnel is running — the tunnel client must be actively connected. Look for connection status in the TUI or logs.
- Check the local service — verify the service is actually listening on the port you specified. Try
curl localhost:<port>from the same machine. - Check the route backend — the HTTPRoute's
backendRefsmust usekind: Backendand reference a Backend that exists. - Check the Backend exists — run
apoxy backend get <name>and verify its endpoint FQDN matches{tunnelNodeName}.tun.apoxy.net.
Kubernetes mirroring not working
If you're using apoxy k8s install and resources aren't appearing in Apoxy:
- Check the controller is running — look for the Apoxy controller pod in your cluster.
- Check the mirror mode —
--mirror gatewayonly mirrors Gateway API resources. Use--mirror allif you need Ingress as well. - Check cluster connectivity — the controller needs outbound access to the Apoxy API.
- Check resource types — the controller mirrors Gateway, HTTPRoute, and related types. Custom resources won't be mirrored automatically.
Common error patterns
"no matching parent"
The route's parentRefs don't match any Gateway. Double-check the Gateway name and that it exists in the same project.
Traffic reaches the Gateway but returns 404
The Gateway is accepting the connection but no route matches the request. Check:
- The route's
hostnamesmatch the request'sHostheader. - The route's path matchers (if any) match the request path.
- The route is actually attached — verify with
apoxy gateway get.
Traffic reaches the tunnel but the backend is unreachable
The tunnel is working but the local service isn't responding. Check:
- The port in the route's
backendRefsmatches where the service is actually listening. - The service is bound to an address the tunnel can reach (e.g.,
0.0.0.0orlocalhost, not just127.0.0.1if the tunnel is in a container).
Getting more information
apoxy gateway list # see all Gateways
apoxy gateway get <name> # Gateway details with attached routes
apoxy gateway routes list # see all routes
apoxy tunnel list # see all TunnelNodes
apoxy tunnel get <name> # TunnelNode detailsIf the problem is cluster registration or controller installation, see Kubernetes Install.