-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Osotechie edited this page Jun 22, 2026
·
1 revision
Common issues and how to resolve them.
Cause: Too many simultaneous SSH channels. Docker Compose tries to run container operations in parallel, and each opens multiple SSH channels. The NAS's sshd MaxSessions=10 gets exceeded.
Fix: The workflow sets COMPOSE_PARALLEL_LIMIT=3. If you're seeing this again (e.g. after adding many services to a single stack), either:
- Reduce the limit further
- Or increase
MaxSessionsin the NAS's/etc/ssh/sshd_config
The deployment loop continues past failures — one broken stack won't block others. Check:
- The GitHub Actions log — expand the failing stack's group
- Common causes:
- Image pull failure — is the image name/tag correct? Is Docker Hub rate-limiting?
- Port conflict — is another container already using that port?
- Volume mount error — does the host path exist?
- Network doesn't exist — external networks must be created first
-
Check Traefik labels — is
traefik.enable=trueset? Is the rule correct? -
Check DNS — does
myapp.${DOMAIN}resolve to your Cloudflare-proxied IP? - Check network — is the container on the right Docker network?
- Check Cloudflare-Companion — is it creating the DNS record automatically?
If containers start but have literal #{TOKEN}# values in their config:
- Verify the secret exists in KeyVault:
az keyvault secret list --vault-name <name> - Check the naming convention —
my-secretin KeyVault becomesMY_SECRETas an env var - Ensure the
.envfile uses the correct token format:#{MY_SECRET}#(with the#{}#wrapper)
See Network & Connectivity — Troubleshooting in the nas-as-code wiki.
Common causes:
- Home internet IP changed (update WireGuard endpoint or dynamic DNS)
- Router/firewall dropped the WireGuard port forward
- WireGuard peer config secret is stale
-
Host key mismatch — NAS was rebuilt or SSH keys regenerated. Update
HOST_FINGERPRINTsecret. -
Key authentication failed — wrong SSH key. Verify
SSH_PRIVATE_KEYmatches what's in the NAS'sauthorized_keys. - Timeout — WireGuard tunnel may not be up. Check the WireGuard step logs.
-
SPN credentials expired — Azure SPN secrets have a default 1-year lifetime. Regenerate and update
AZURE_SPN_CREDENTIALSin GitHub. -
RBAC removed — verify the SPN still has
Key Vault Secrets Useron the vault.
- Check logs: via Portainer or Dozzle
- Common causes:
- Missing environment variable (secret not injected properly)
- Corrupt config directory (restore from backup or delete and let container recreate)
- Image version incompatibility (pin to a specific tag instead of
latest)
Overview
How-To