---
title: Major Incidents & Eskalation
sidebar_label: Major Incidents
---

Diese Seite beschreibt, wie du bei größeren Störungen (SEV‑1/SEV‑2) vorgehst. Sie ergänzt die spezifischen Runbooks (Public API, Medien‑Pipeline, Photobooth) um einen einheitlichen Rahmen.

## 1. Incident-Klassifikation

- **SEV‑1 (kritisch)**
  - Gäste können nicht mehr hochladen ODER keine Events/Galerien mehr öffnen.
  - Tenant Admins können sich nicht einloggen oder keine Kernaktionen ausführen (Events verwalten, Medien moderieren).
  - Datenverlust oder potenzieller Datenverlust (z.B. Löschjob auf falscher Storage‑Ebene).
- **SEV‑2 (hoch)**
  - Teilweise Degradation (z.B. Photobooth‑Uploads hängen, Public‑API stark verlangsamt, eine Region betroffen).
  - Kritische Background‑Jobs (Archivierung, AV/EXIF‑Scans, Zahlungs‑Webhooks) stauen sich, ohne dass Gäste sofort komplett blockiert sind.
- **SEV‑3 (mittel)**
  - Einzelne Features gestört (Notification‑Center, Join‑Token‑Analytics, einzelne Admin‑Views).
  - Workaround möglich (z.B. manuelle Nacharbeit durch Support).

> Wichtig: Jede Störung, die einen zahlenden Eventkunden am Tag des Events blockiert, sollte mindestens als SEV‑2, ggf. als SEV‑1 eingeordnet werden.

## 2. Erstmaßnahmen (Triage)

1. **Scope bestimmen**
  - Welche Benutzer sind betroffen? (Alle Gäste, einzelne Tenants, nur Photobooth, nur Admins?)
  - Betrifft es nur eine Umgebung (staging vs. production)?
2. **Schnell-Checks**
   - Status von App, Queue, Redis, DB (Docker/Dokploy‑Übersicht prüfen).
   - Horizon/Queues: sind relevante Queues leer, wachsend, „stuck“? Gibt es viele Failed Jobs?
   - Logs für relevante Kanäle: `storage/logs/laravel.log`, spezielle Channels wie `storage-jobs`, `notifications`, `billing`, Nginx/Proxy‑Logs.
   - Monitoring: externe Uptime‑Checks / Dashboards (z.B. Public‑API Latenz, Error‑Rate).
3. **Einordnung & Eskalation**
  - SEV‑1/2: On‑Call informieren (Pager/Chat), Incident‑Kanal im Teamchat eröffnen.
  - SEV‑3: Im Issue‑Tracker erfassen, ggf. gebündelt mit anderen Findings.

Nutze bei Public‑API‑Problems zusätzlich das `docs/ops/deployment/public-api-incident-playbook.md`.

## 3. Standard-Runbooks nach Bereich

- **Public API / Gast-Zugriff**
  - Siehe `docs/ops/deployment/public-api-incident-playbook.md`.
  - Typische Auslöser: Peaks, Abuse, externe Integrationen, Ratenlimits.
- **Medien-Pipeline / Uploads**
  - Siehe `docs/ops/media-storage-spec.md` und `docs/ops/guest-notification-ops.md`.
  - Fälle: Uploads bleiben im Pending, Archivjobs laufen nicht, Speicherkapazität erreicht, Gäste bekommen „Uploads hängen noch…“.
- **Photobooth**
  - Siehe `docs/ops/photobooth/ops_playbook.md`.
  - Fälle: FTP nicht erreichbar, Ingest nicht laufend, falsche Credentials, Security‑Vorfälle.
- **Abrechnung & Billing**
  - Siehe `docs/ops/billing-ops.md`.
  - Fälle: Paddle/RevenueCat‑Webhook‑Fehler, falsche Paket‑Zustände, doppelte/fehlende Buchungen.

Dieses Dokument verweist immer nur auf die jeweils tieferen Runbooks – bei konkreten Problemen gehst du dort in die Details.

## 4. Kommunikation

- **Intern (Team)**
  - Eröffne einen dedizierten Incident‑Thread im Chat (mit Zeitstempel, SEV‑Level, Kurzbeschreibung).
  - Halte dort Statusupdates fest (z.B. „17:05 – Upload‑Queue entstaut, weitere Beobachtung 30 min“).
  - Notiere bewusst Entscheidungen (z.B. „19:10 – Feature X temporär deaktiviert“, „19:25 – Rollback auf vorheriges Release“).
- **Extern (Kunden)**
  - Ab SEV‑2: Überlege einen kurzen Statushinweis (Status‑Seite oder manuelle Kommunikation an direkt betroffene Tenants).
  - Bei Incidents während Events: Koordiniere mit Success/Support, um proaktiv auf Tenant Admins zuzugehen.

> TODO: Falls du eine Status‑Seite oder automatisierte E‑Mails hast, dokumentiere hier, wie und wann sie ausgelöst werden.

## 5. Nachbereitung (Postmortem)

Nach einem SEV‑1/2 Incident:

1. **Fakten sammeln** (Timeline, betroffene Tenants/Events, konkrete Auswirkungen).
2. **Ursache** (Root Cause) möglichst präzise identifizieren – auch dann, wenn direkt „nur“ Symptome gefixt wurden.
3. **Kurzfristige Maßnahmen** (Hotfixes, Konfig‑Anpassungen, zusätzliche Checks).
4. **Langfristige Maßnahmen** – sollten als Epics/Tasks in `docs/process/todo/*` bzw. `docs/process/changes/*` landen (inkl. Link zum Incident).
5. **Dokumentation aktualisieren**
  - Relevante Runbooks (dieses Dokument, Public‑API‑Runbook, Storage‑Spec, Billing‑Ops, etc.) mit neuen Learnings ergänzen.

Ziel ist, dass die Time‑to‑Detect und Time‑to‑Resolve für ähnliche Probleme in Zukunft sinkt.
