====== Lemmy UI 500 Error After Version Upgrade ====== **Status:** Resolved\\ **Date:** 2026-07-21\\ **Affected service:** [[folkzone:services:lemmy|Lemmy]] ===== Symptom ===== After upgrading Lemmy from 0.19.5 to 0.19.19, the Lemmy UI container returned HTTP 500 errors for all requests. The health check showed the container as unhealthy with repeated failures. The backend API was responding correctly with valid JSON, but the UI could not render pages. ===== Diagnosis ===== Check the Lemmy UI container logs: docker logs folkzone-lemmy-ui --tail 50 The logs showed the UI starting successfully but returning 500 errors on health checks: Lemmy-ui v0.19.19 started listening on http://0.0.0.0:1234 127.0.0.1 - - [21/Jul/2026:07:13:35 +0000] "HEAD / HTTP/1.1" 500 5234 "-" "curl/8.14.1" Testing the backend API directly from within the UI container showed it was working: docker exec folkzone-lemmy-ui curl -s http://folkzone-lemmy-backend:8536/api/v3/site This returned valid JSON with site data, confirming the backend was healthy. Checking the rendered HTML from the UI showed the problem: window.isoData = {"path":"\u002F","site_res":undefined,"routeData":{},"errorPageData":{},"showAdultConsentModal":false,"lemmy_external_host":"0.0.0.0:8536"}; The ''site_res'' field was ''undefined'', indicating the UI could not fetch site data from the backend during server-side rendering. ===== Root Cause ===== Lemmy UI 0.19.x changed the environment variable naming convention. The docker-compose.yml was using the old double-underscore format: LEMMY_UI__LEMMY_EXTERNAL_HOST=lemmy.folk.zone LEMMY_UI__LEMMY_INTERNAL_HOST=folkzone-lemmy-backend:8536 LEMMY_UI__LEMMY_HTTPS=false Lemmy UI 0.19.19 expects single underscores: LEMMY_UI_LEMMY_EXTERNAL_HOST=lemmy.folk.zone LEMMY_UI_LEMMY_INTERNAL_HOST=folkzone-lemmy-backend:8536 LEMMY_UI_HTTPS=false With the incorrect variable names, the UI defaulted to ''0.0.0.0:8536'' for the external host, which caused server-side rendering to fail when fetching site data. ===== Fix ===== Update the docker-compose.yml environment variables for the Lemmy UI service to use single underscores: folkzone-lemmy-ui: image: dessalines/lemmy-ui:0.19.19 container_name: folkzone-lemmy-ui environment: TZ: America/Edmonton LEMMY_UI_LEMMY_EXTERNAL_HOST: lemmy.folk.zone LEMMY_UI_LEMMY_INTERNAL_HOST: folkzone-lemmy-backend:8536 LEMMY_UI_HTTPS: "false" Deploy the updated compose file and restart the UI: rsync -avz -e "ssh -i ~/.omg-lol-keys/id_ed25519" server/docker-compose.yml brennan@192.168.1.65:/home/brennan/homelab/ ssh -i ~/.omg-lol-keys/id_ed25519 -T -o BatchMode=yes brennan@192.168.1.65 "cd /home/brennan/homelab && docker compose up -d folkzone-lemmy-ui" After restart, verify the UI is returning HTTP 200: docker logs folkzone-lemmy-ui --tail 10 You should see successful requests: 127.0.0.1 - - [21/Jul/2026:07:16:17 +0000] "HEAD / HTTP/1.1" 200 24285 "-" "curl/8.14.1" ===== Configuration File Setup ===== The Lemmy backend configuration file at ''server/lemmy/lemmy.hjson'' must contain actual secret values, not placeholders. Update these fields with values from the server .env file: { database: { host: "folkzone-lemmy-db" port: 5432 database: "lemmy" user: "lemmy" password: "REPLACE_WITH_LEMMY_POSTGRES_PASSWORD" } hostname: "lemmy.folk.zone" email: { smtp_server: "smtp.resend.com:587" smtp_login: "resend" smtp_password: "REPLACE_WITH_RESEND_API_KEY" smtp_from_address: "noreply@folk.zone" tls_type: "starttls" } pictrs: { url: "http://folkzone-lemmy-pictrs:8080/" api_key: "REPLACE_WITH_LEMMY_PICTRS_API_KEY" } setup: { admin_username: "admin" admin_password: "REPLACE_WITH_ADMIN_PASSWORD_ON_FIRST_BOOT" admin_email: "hello@folk.zone" site_name: "folk.lemmy" } } Deploy the updated configuration: rsync -avz -e "ssh -i ~/.omg-lol-keys/id_ed25519" server/lemmy/lemmy.hjson brennan@192.168.1.65:/home/brennan/homelab/lemmy/lemmy.hjson ssh -i ~/.omg-lol-keys/id_ed25519 -T -o BatchMode=yes brennan@192.168.1.65 "cd /home/brennan/homelab && docker compose up -d folkzone-lemmy-backend" ===== Version Upgrade Notes ===== When upgrading Lemmy, always upgrade both the backend and UI to matching versions. The docker-compose.yml should use the same version tag for both services: folkzone-lemmy-backend: image: dessalines/lemmy:0.19.19 folkzone-lemmy-ui: image: dessalines/lemmy-ui:0.19.19 Check the official Lemmy documentation for the latest stable version and any breaking changes in environment variables between versions. ===== See Also ===== * [[folkzone:services:lemmy|Lemmy service page]] * [[folkzone:troubleshooting:start|Troubleshooting Index]] * [[hosting:docker:compose|Docker Compose]] * [[start|Return to wiki home]]