[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"problem-detail-warning-health-error-page":3},{"stack":4,"error":5,"seoName":6,"seoStack":7,"seo":8,"breadcrumb":10,"titlePrefix":18,"titleAccent":19,"lead":20,"facts":23,"why":40,"log":54,"fix":79,"engine":95,"related":103,"pitch":139},"compose","health-error-page","Compose app containers restart because PostgreSQL authentication fails","Docker Compose, Dockerfile, ASP.NET and more",{"description":9},"The application started but did not answer on any port it publishes. The deploy log has the per-port result; a worker or queue-only app can ignore this. | The a",[11,14,17],{"label":12,"href":13},"App Installations","\u002Fapps",{"label":15,"href":16},"Docker Compose","\u002Fapps\u002Fstacks\u002Fcompose",{"label":6},"Compose app containers restart because ","PostgreSQL authentication fails",[21],{"text":22},"The application started but did not answer on any port it publishes. The deploy log has the per-port result; a worker or queue-only app can ignore this. | The application is running but failing: it answered 502. Read the application log — the container is up, so this is the code inside it. | The application is restarting, not running. Docker reports windmill_server (Restarting (1) 48 seconds ago), windmill_worker (Restarting (1) 47 seconds ago), windmill_worker (Restarting (1) 47 seconds ago),…",[24,29,32,36],{"label":25,"value":26,"tone":27,"tooltip":28},"Type","Warning","warn","An issue PanelAlpha Engine catches around a deploy that does not break it. It tells you, before or after, that you may need to do something.",{"label":30,"value":31},"Seen","168 times · 8 variants",{"label":33,"value":34,"tooltip":35},"Where","Docker Compose, Dockerfile, ASP.NET +5 more","Docker Compose, Dockerfile, ASP.NET, Go, Laravel, Nextjs, Php, Tanstack Start",{"label":37,"value":38,"tooltip":39},"Status","Observed","Our team will look into this soon, verify the cause and try to fix it in an upcoming release.",{"heading":41,"body":42},"Why it happens",[43,45,48,50,52],{"text":44},"The Compose services start, but workers cannot authenticate to PostgreSQL with the configured ",{"text":46,"code":47},"postgres",true,{"text":49}," password. The affected containers restart, leaving Caddy unable to resolve ",{"text":51,"code":47},"windmill_server",{"text":53},"; the health check then returns 502. The rustls message appears incidental to the database failure.",{"heading":55,"block":56},"What the log looks like",{"header":57,"lines":58},"Deploy log",[59,63,67,71,75],{"segments":60},[61],{"text":62},"windmill_worker_native-1  | Connecting to database...",{"segments":64},[65],{"text":66},"windmill_worker_native-1  | Error: Connecting to database: error returned from database: password authentication failed for user \"postgres\"",{"segments":68},[69],{"text":70},"windmill_server           | Restarting (1)",{"segments":72},[73],{"text":74},"caddy-1                   | error: dial tcp: lookup windmill_server: no such host",{"segments":76},[77],{"text":78},"Health check: port 80 returned 502",{"heading":80,"steps":81,"block":92},"How to fix it",[82],[83,85,87,89,90],{"text":84},"Check the PostgreSQL username, password, and connection variables in the Compose environment and configured secrets. Ensure the values match the database's initialized credentials; if the database volume already exists, changing environment values alone may not change its password. Review ",{"text":86,"code":47},"docker compose ps",{"text":88}," and service logs, then restart the stack after correcting the configuration. Confirm that ",{"text":51,"code":47},{"text":91}," stays running before retrying the health check.",{"header":93,"lines":94},"Fix by hand",[],{"heading":96,"body":97,"block":100},"How PanelAlpha Engine solves it",[98],{"text":99},"The health failure is correctly associated with a restart loop, but Engine could surface the database authentication error as the primary cause. It could also detect repeated dependency-resolution failures and suggest checking Compose environment variables and persisted database credentials.",{"header":101,"lines":102},"",[],{"heading":104,"items":105},"Apps affected",[106,111,115,119,123,127,131,135],{"title":107,"badge":108,"tone":109,"href":110},"plex-rewind","21 occurrences","err","\u002Fapps\u002Fraunot\u002Fplex-rewind",{"title":112,"badge":113,"tone":109,"href":114},"pingvin-share-x","14 occurrences","\u002Fapps\u002Fsmp46\u002Fpingvin-share-x",{"title":116,"badge":117,"tone":109,"href":118},"Docker Unms","11 occurrences","\u002Fapps\u002Fnico640\u002Fdocker-unms",{"title":120,"badge":121,"tone":109,"href":122},"grumpydictator\u002Ffirefly-iii","10 occurrences","\u002Fapps\u002Ffirefly-iii\u002Ffirefly-iii",{"title":124,"badge":125,"tone":109,"href":126},"legit","9 occurrences","\u002Fapps\u002Ficyphox\u002Flegit",{"title":128,"badge":129,"tone":109,"href":130},"WordPress","7 occurrences","\u002Fapps\u002Fwordpress\u002Fwordpress",{"title":132,"badge":133,"tone":109,"href":134},"wallabag","6 occurrences","\u002Fapps\u002Fwallabag\u002Fwallabag",{"title":136,"badge":137,"tone":109,"href":138},"Tabby Web","4 occurrences","\u002Fapps\u002Feugeny\u002Ftabby-web",{"heading":140,"body":141,"footNote":142,"docsLabel":143,"docsHref":144},"Try PanelAlpha Engine yourself.","The easiest way to turn your server into a safe, controlled environment for your AI agent. Deploy, manage and maintain any project from Claude Code, Cursor, Codex or any other MCP client. Open source under Apache 2.0, free to run.","Requires Ubuntu 24.04 or 26.04 · 2 GB RAM · 1 CPU","Read the documentation","https:\u002F\u002Fpanelalpha.com\u002Fdocs"]