LeaveFlow: Fehlerbehebung
Fehlerbehebung für LeaveFlow: Einrichtung, E-Mails, geplante Aufgaben, Anmeldung, Urlaubsanträge, Integrationen, API und bekannte Einschränkungen.
LeaveFlow: Fehlerbehebung
Installation und Konfiguration
Der Einrichtungsassistent lässt sich nicht absenden
Ursache: Mindestens eine Systemprüfung ist rot. Lösung: Lies den Hinweis beim jeweiligen Eintrag. Offene Migrationen spielst du mit docker compose exec -u app app php bin/console doctrine:migrations:migrate --no-interaction ein. Eine nicht erreichbare Datenbank liegt meist an DATABASE_URL oder daran, dass der Datenbank-Container noch nicht bereit ist. Beschreibbare Verzeichnisse müssen var/ und public/uploads/ sein.
Einstellungen aus .env.local greifen nicht
Ursache: compose.yaml setzt DATABASE_URL und MAILER_DSN fest als Umgebungsvariablen des Containers, und diese haben Vorrang. Lösung: Passe die Werte in compose.yaml an (siehe Installation).
Slack-Token oder LDAP-Bind-Passwort lassen sich nicht speichern
Ursache: APP_LDAP_ENCRYPTION_KEY ist leer oder kein gültiger 32-Byte-Base64-Schlüssel. Lösung: Schlüssel erzeugen und setzen (Befehl auf der Seite Installation). Hast du den Schlüssel geändert, nachdem Werte gespeichert wurden, schlägt der LDAP-Login mit einem Verbindungsfehler fehl, und du musst Bind-Passwort, Slack-Token und Signing Secret neu eintragen.
Anmeldung klappt über HTTP nicht
Ursache: Die PHP-Konfiguration setzt Session-Cookies mit dem Secure-Flag. Lösung: Betreibe die Instanz außerhalb von localhost über HTTPS.
E-Mails und geplante Aufgaben
Es kommen keine E-Mails an
Prüfen:
- Im Compose-Stack gehen alle Mails an Mailpit (
http://localhost:8025), weilMAILER_DSNaufsmtp://mailer:1025steht. - Außerhalb von
APP_ENV=devlaufen Mails über die Warteschlange und brauchen den Workermessenger:consume async. - Der Absender
no-reply@leaveflow.testist fest im Code hinterlegt, manche SMTP-Server weisen ihn ab. - Unter Einstellungen der Benachrichtigungen kann der Empfänger die E-Mail für das Ereignis abgeschaltet haben.
Warnungen, Eskalationen und Krankheits-Alarme bleiben aus
Ursache: Es läuft kein Messenger-Worker für scheduler_notifications, oder der Job ist deaktiviert. Lösung: Worker einrichten (Betrieb) und unter /admin/scheduled-jobs den Status prüfen. Die Eskalation trifft nur Anträge im Status „Offen“ und läuft einmal pro Antrag.
Der Jahresübergang ist ausgeblieben
Ursache: Der Worker scheduler_maintenance lief am 1. Januar um 01:00 nicht. Verpasste Ticks holt der Scheduler nicht nach. Lösung: Führe app:entitlement:year-transition --year=<Vorjahr> manuell aus. Bereits vorhandene Einträge überspringt der Befehl.
Anmeldung
„Mit Google anmelden“ oder „Mit Microsoft anmelden“ wird abgelehnt
Mögliche Ursachen:
- Die E-Mail-Adresse gehört bereits zu einem anderen Konto (zum Beispiel einem lokalen). Konten werden nicht automatisch zusammengeführt.
- Die Google-Domain passt nicht zur Einschränkung, oder die Tenant-ID stimmt nicht.
- Die Anmeldeart ist in den Firmen-Einstellungen nicht aktiviert.
Nach dem Login steht „kein Mitarbeiterprofil“
Ursache: Das Benutzerkonto ist mit keinem Mitarbeiter verknüpft. Lösung: Im Admin unter Mitarbeiter den Datensatz bearbeiten und im Feld „Verknüpfter Benutzer“ das Konto auswählen.
Ein Benutzer hat sein 2FA-Gerät verloren
Lösung: Er nutzt einen Backup-Code. Sind keine mehr da, setzt ein Admin unter Benutzer die 2FA mit „2FA zurücksetzen“ zurück.
Urlaubsanträge
„Für wurde noch kein Urlaubsanspruch angelegt“
Ursache: Für das Jahr existiert kein Urlaubskonto des Mitarbeiters. Lösung: Der Admin legt unter Urlaubskonten einen Eintrag an. Die Meldung betrifft nur Urlaubsarten, die vom Urlaubskonto abziehen.
„Dein Urlaubskonto ist nicht ausreichend“
Ursache: Die beantragten Stunden übersteigen den verfügbaren Saldo einschließlich der Stunden offener Anträge, in der Probezeit zählen nur anteilig erworbene Stunden. Lösung: Antrag verkürzen oder Konto prüfen lassen.
Der Antrag lässt sich nicht stellen: Sperrfrist oder rückwirkend
Ursache: Der Zeitraum überschneidet eine Sperrfrist, oder das Startdatum liegt in der Vergangenheit. Lösung: Anderen Zeitraum wählen. Eine Korrektur für die Vergangenheit erledigt der Admin.
Manager sieht einen Antrag nicht
Prüfen:
- Hat das Benutzerkonto mindestens die Rolle Manager?
- Ist die Person unter Teams als Teamleitung oder Vertretung des aktiven Teams des Antragstellers eingetragen?
- Ist der Antragsteller einem Team zugeordnet? Ohne Team entscheiden nur Admins.
- Eigene Anträge entscheidet niemand selbst.
Niemand wurde über einen neuen Antrag informiert
Ursache: Es gibt keine aktive Teamleitung oder Vertretung, die nicht der Antragsteller ist. Die Anträge sehen die Admins in der Genehmigungsliste, die Eskalation meldet sie nach der Eskalations-Schwelle.
Integrationen und API
Slack meldet „Dein Slack-Account ist nicht mit LeaveFlow verknüpft“
Ursache: Am Benutzer ist keine Slack-Benutzer-ID gespeichert. Die Oberfläche bietet dafür kein Feld, siehe Anmeldung und Integrationen.
Slack-Befehle antworten mit 503 oder 403
Ursache: 503 heißt, die Integration ist nicht aktiv oder das Signing Secret fehlt. 403 heißt, die Signatur ist ungültig oder die Anfrage älter als fünf Minuten. Lösung: Signing Secret prüfen und die Serverzeit abgleichen.
Die API antwortet mit 401
Ursache: Der Token ist ungültig, widerrufen oder abgelaufen, oder der Header verwendet nicht das Schema Bearer. Lösung: Neuen Token unter API-Zugriffstoken erzeugen.
Bekannte Einschränkungen
- Eine Installation verwaltet genau ein Unternehmen.
- Feiertage sind nur für die 16 deutschen Bundesländer berechnet.
- Die Slack-Benutzer-ID lässt sich nicht in der Oberfläche pflegen.
- Der Absender der System-E-Mails ist nicht konfigurierbar.
- Mitarbeiter und Benutzer lassen sich nicht löschen, nur austreten lassen und anonymisieren.
- Die Anonymisierung läuft nur manuell.