Häufige Fehler & Lösungen
500 Internal Server Error (PATCH /users/@me)
Problem: Profilspeicherung schlägt fehl.
Ursachen und Fixes:
// ❌ Problem: Leeres remove-Array
const changes = { remove: [] };
// Stoat API akzeptiert kein leeres Array
// ✅ Fix: remove weglassen wenn leer
if (changes.remove?.length === 0) delete changes.remove;
await user.edit(changes);
// ❌ Problem: display_name ist leerer String
changes.display_name = "".trim(); // = ""
// ✅ Fix: Nur setzen wenn nicht leer
const dn = name.trim();
if (dn) changes.display_name = dn;
// ❌ Problem: Ungültiger FieldsUser-Wert in remove
changes.remove = ["DisplayName"]; // existiert nicht!
// ✅ Gültige Werte:
// "Avatar", "StatusText", "StatusPresence",
// "ProfileContent", "ProfileBackground"
Profile API: 401 Unauthorized
# Token-Problem - prüfen:
curl -H "X-Session-Token: TOKEN" https://chat.dreylo.com/profile-api/api/profile/me
Mögliche Ursachen:
1. STOAT_API_URL falsch konfiguriert
docker exec dreylo-profile-api env | grep STOAT
2. Stoat API nicht erreichbar
docker exec dreylo-profile-api wget -qO- http://api:14702/users/@me -H "X-Session-Token: TOKEN" 2>&1
3. Token abgelaufen → Neu einloggen
Profile API: "Auth service unavailable" (500)
# STOAT_API_URL prüfen
docker exec dreylo-profile-api env | grep STOAT_API_URL
Sollte sein: http://api:14702
Nicht: http://api:8000 (falscher Port!)
Fix in compose.yml:
STOAT_API_URL: http://api:14702
Container neu erstellen:
docker compose stop dreylo-profile-api
docker compose rm -f dreylo-profile-api
docker compose up -d dreylo-profile-api
Frontend Build-Fehler
# Vollständige Fehler anzeigen
cd /home/dreylo-web && docker build --no-cache -t dreylo-web . 2>&1 | grep -E "Could not|error TS|Error" | head -20
Häufig: Falscher Import-Pfad
Lösung: Pfad relativ zum Ziel berechnen
Häufig: Lingui <Trans> ohne Übersetzung
Lösung: Plain-Text statt <Trans>My Text</Trans>
Einfach: My Text (ohne Trans-Tag)
Container läuft, aber Änderungen nicht sichtbar
# 1. Prüfen ob neues Image gebaut wurde
docker images | grep dreylo-web
2. Prüfen ob Container neues Image nutzt
docker inspect stoat-web-1 | grep Image
3. Container hart neu starten
docker compose stop web && docker compose rm -f web && docker compose up -d web
Mailcow/E-Mail-Probleme
# DKIM Record prüfen
dig TXT mail._domainkey.dreylo.com
SPF prüfen
dig TXT dreylo.com | grep spf
DMARC prüfen
dig TXT _dmarc.dreylo.com
Mail-Test (direkt von Server)
echo "Test" | mail -s "Test" deine@email.com
Bot verbindet sich nicht
# Logs prüfen
docker logs dreylo-bot -f
ENV prüfen
docker exec dreylo-bot env | grep TOKEN
Häufige Fehler:
- TOKEN nicht gesetzt
- API_URL falsch (muss https://chat.dreylo.com/api sein)
- Bot wurde von Server gebannt