Runbook: Incident-Response
PRX-26. Owner (provisorisch): Mia Roth (QA Lead) für Erstbewertung, Eskalation an Elena Weiss
(DevOps/Platform Lead) bei Infrastrukturbezug (siehe Confluence Seite 02).
Bekannte Fehlerbilder
Backend startet nicht / /actuator/health antwortet nicht
- Logs prüfen:
docker logs procurex-app - Häufigste Ursache:
shared-postgresläuft nicht oderprocurex_db/procurex_userfehlen
noch → docker exec shared-postgres pg_isready -U admin, dann procurex-app/README.md,
Abschnitt "Voraussetzung: enterprise-infrastructure" befolgen.
- Zweithäufigste Ursache:
.envfehlt oder Passwort stimmt nicht mit dem inenterprise-infrastructure
registrierten Passwort überein.
Frontend lädt, aber jede Aktion zeigt "Server nicht erreichbar"
- Prüfen, ob
procurex-apperreichbar ist:curl http://procurex-api.localhost/actuator/health - CORS-Fehler in der Browser-Konsole? →
PROCUREX_CORS_ALLOWED_ORIGINSindocker-compose.yml/
application.yml muss den tatsächlichen Frontend-Origin enthalten.
- Traefik nicht gestartet:
docker ps | grep shared-traefik, ggf.
cd ..\..\shared\enterprise-infrastructure; docker compose up -d traefik.
net::ERR_NAME_NOT_RESOLVED für *.localhost-Hostnamen
Browser/OS löst .localhost normalerweise automatisch auf (RFC 6761). Falls nicht: Traefik-
Dashboard-Alternative über direkte Container-IPs prüfen, oder Hosts-Datei-Eintrag als Workaround
(nicht dauerhaft empfohlen).
Doppelte Genehmigungsentscheidung / Konflikt-Fehler (409) bei PRX-5/PRX-8
Erwartetes Verhalten, kein Bug: eine Bestellung wurde bereits entschieden. Siehe
Eskalation
- Erstbewertung: reproduzierbar? Betrifft es nur PROCUREX oder auch andere
enterprise-infrastructure-Projekte? - Bei Verdacht auf
enterprise-infrastructure-weite Auswirkung (z.B. Postgres nicht erreichbar für alle
Projekte): sofort stoppen, keine destruktiven Befehle (down -v), Rücksprache mit den in
Confluence Seite 02 genannten provisorischen Verantwortlichen.
- Bei reinem PROCUREX-Fehler: Rollback-Runbook (
rollback.md) anwenden.
Testnachweis: Diese Fehlerbilder sind aus der tatsächlichen Fehlerbehandlung im Code abgeleitet
(GlobalExceptionHandler, httpErrorInterceptor, siehe procurex-common/procurex-frontend),
nicht aus einem durchgeführten Incident-Drill — es gab bislang keinen echten Incident.