Markus Michalski FAQ

LeaveFlow: Fehlerbehebung

Fehlerbehebung für LeaveFlow: Einrichtung, E-Mails, geplante Aufgaben, Anmeldung, Urlaubsanträge, Integrationen, API und bekannte Einschränkungen.

English Version

Zurück zur Übersicht

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:

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:

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:

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