Troubleshooting¶
Docker Cannot Connect To Engine¶
On Windows, this usually means Docker Desktop is not running or the current shell cannot access the Docker pipe.
Check:
docker version
docker context ls
Start Docker Desktop and use the correct context, commonly default or
desktop-linux.
Backend Cannot Connect To Postgres¶
For local Python execution, the backend expects:
postgresql://triton:tritonpw@localhost:5433/triton_backend
Start the backend PostgreSQL container:
cd triton-backend/postgresql
docker compose up -d
Verify the port mapping:
docker compose ps
Expected:
127.0.0.1:5433->5432
App Container Cannot Resolve postgres¶
Use the root Compose file:
docker compose up --build
Both triton-control and postgres must be on the same Compose network. The
default network is named:
triton-control
Triton Instance URL Does Not Work From Docker¶
Do not use 127.0.0.1 for a Triton instance when Triton Control runs in Docker.
Use:
http://host.docker.internal:<published-triton-http-port>
or connect the Triton container to the triton-control network:
docker network connect triton-control tritonserver-explicit
Then use:
http://tritonserver-explicit:8000
Minikube Ingress Host Does Not Resolve From Triton Control¶
The Triton instance URL is checked by the Triton Control backend, not by the
browser. A Windows hosts file entry only helps processes that use that hosts
file. It does not automatically help a Docker container or a Kubernetes Pod.
First make sure the hostname is exactly the same everywhere. For example, this instance URL:
http://triton11-test.localtest.me
needs this exact hosts entry:
192.168.49.2 triton11-test.localtest.me
test11-triton.localtest.me is a different hostname and will not match.
If Triton Control runs in Docker Compose, add the same host mapping to the
triton-control service, or use a DNS name that resolves without a local hosts
file:
extra_hosts:
- "triton11-test.localtest.me:192.168.49.2"
If Triton Control runs inside Kubernetes, the Windows hosts file is irrelevant to the backend Pod. Use an internal Kubernetes Service URL when possible, or use cluster DNS/CoreDNS/a real DNS record that resolves from inside the cluster.
If Triton Control runs directly on the Windows host and the hosts entry is
correct but the backend still cannot reach the Triton ingress, check proxy
environment variables. Direct Triton HTTP clients ignore HTTP_PROXY and
HTTPS_PROXY by default via TRITON_HTTP_TRUST_ENV=false, because local
Minikube ingress names usually need to use the Windows hosts file directly. Set
TRITON_HTTP_TRUST_ENV=true only when Triton must be reached through a proxy.
For Minikube ingress, wildcard DNS services such as sslip.io or nip.io can
avoid local hosts-file drift:
http://triton11-test.192.168.49.2.sslip.io
Deployment Logs Show PodInitializing¶
If logs fail with an error like:
container "s3-model-sync" in pod "<pod>" is waiting to start: PodInitializing
the deployment is usually still starting. Kubernetes may still be pulling the Triton image, running init containers, or starting the repository sync sidecar.
Check the pod state:
kubectl -n <namespace> get pod <pod> -w
kubectl -n <namespace> describe pod <pod>
When the pod leaves PodInitializing, retry the logs or inference request. If
it stays there, inspect the events in describe pod for image pull, volume, or
S3 sync errors.
code-server Plugin Window Does Not Open¶
If the Development workspace loads but the Triton Control Deploy plugin window stays blank or the browser console shows this error:
'crypto.subtle' is not available so webviews will not work
then code-server is running in a browser context that is not secure. VS Code webviews need a secure context. These origins work:
https://triton-control.example.com
http://localhost:<port>
These origins do not work for webviews:
http://triton-control.test
http://<minikube-ip>
If the browser console shows a service worker certificate error instead:
Could not register service worker ... An SSL certificate error occurred when fetching the script
then the browser reached Triton Control over HTTPS, but it does not trust the certificate. Opening the page through the browser warning is not enough for code-server webviews, because service workers require a trusted certificate.
Use one of these fixes:
- expose Triton Control through an HTTPS ingress with a trusted certificate
- or port-forward the Triton Control service and open it through localhost:
- or run
Triton Control: Upload Model Repository (Simple Wizard)from code-server. This native wizard does not use webviews. It uploads the repository and prints the values to finish deployment in Add Deployment.
kubectl -n triton-control port-forward svc/triton-control 8080:8080
Then open:
http://localhost:8080
When using mkcert, install or import the mkcert root CA into the same OS and
browser profile that opens Triton Control. For example, if the certificate was
created in WSL or a Linux VM but the browser runs on Windows, import this CA
into Windows or the browser trust store:
cat "$(mkcert -CAROOT)/rootCA.pem"
The api/auth/me 401 Unauthorized message during page load is normally only
the frontend checking whether a user is already signed in. It is not the
code-server webview failure.
Metrics URL Missing /metrics¶
The backend automatically appends /metrics when the configured metrics URL has
no path.
Examples:
http://triton:8002 -> http://triton:8002/metrics
triton:8002/ -> http://triton:8002/metrics