Router missing from config when exposedByDefault is false without explicit enable
criticalconfigurationUpdated Jan 7, 2026(via Exa)
How to detect:
When Traefik Docker provider has exposedByDefault=false, containers without traefik.enable=true label are completely ignored. Router never appears in Traefik's dynamic config, causing 404s. This is the intended behavior but frequently misunderstood during migrations or when copying label examples that assume exposedByDefault=true.
Recommended action:
Check Traefik startup flags with 'docker inspect traefik --format {{json .Config.Cmd}}' for exposedbydefault setting. Query Traefik API to confirm router is missing, not just failing to match. Add traefik.enable=true label to container. Redeploy container and verify router appears in API. In production, set exposedByDefault=false and explicitly enable per service to prevent accidental exposure.