Skip to content

Troubleshooting

Check service status

cd ~/walter-selfhost
bin/selfhost-compose --mode internal-tls ps
bin/selfhost-compose --mode internal-tls logs -f setup walter

Swap the mode flag if you are using public-tls.

Common issues

The image pull is unauthorized

Validate the provided credentials explicitly:

echo "<provided-token>" | docker login ghcr.io -u <provided-username> --password-stdin
docker pull ghcr.io/matchylabs/walter:0.1.0

Walter shows the migration-required page

Run the migration job for the current release, then restart Walter:

bin/selfhost-compose --mode public-tls run --rm setup
bin/selfhost-compose --mode public-tls up -d

The browser setup flow does not appear

With AUTH_MODE=password, first boot should land on the admin setup flow when no users exist. Check the walter container logs and confirm the app can reach PostgreSQL.

License or LLM fields were not preseeded

That is expected unless you passed them to bin/selfhost-install. Walter can accept those values in the browser after the stack starts.

Agents cannot connect

Verify that:

  • PHX_HOST matches the hostname agents can reach
  • public-tls and internal-tls clients trust the certificate chain

The built-in database is not reachable

Wait a few seconds for PostgreSQL to finish its first start, then re-run:

bin/selfhost-compose --mode internal-tls ps
bin/selfhost-compose --mode internal-tls logs -f db