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