====== 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]]