← Übersicht

F15 Fehlerklassifikation, Logging und Betriebsnachweis belastbar machen

Fehlerklassifikation, Logging und Betriebsnachweis belastbar machen

Finding: F15 Priorität: P1 Status: IN UMSETZUNG Stand: 2026-07-16

Problembeschreibung

  • Unerwarteter Throwable wird pauschal ERROR_POSTING/PERSISTENCE (IngestInvoicesUseCase.php:149).
  • Lexware-Fehlerbody kann in State/Log gelangen.
  • Logger ignoriert Schreibfehler (JsonLineLogger.php:34).
  • Korrelation, Metrik, Alarm und Redaction fehlen.

Ziel

Jeder Fehler ist ursachentreu, redigiert, korreliert und sichtbar; fehlender Auditnachweis bleibt nie still.

Aufgabe

  1. Phasen-/Retry-Taxonomie.
  2. Remote-Exceptions redigiert übersetzen.
  3. Loggerausfall fail-closed.
  4. Run-ID und Metriken/Alarme durchgängig.

Scope

  • In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
  • Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.

Harte Spezifikation

  • MUST: Code bezeichnet echte Phase.
  • MUST: keine Secrets/Bodies/PDF-Text/PII.
  • MUST: jeder Remote-Request korreliert.
  • MUST: Audit-Ausfall blockiert Mutation/durable Fallback.

Harte Quality Gateways

  • Fehlerinjektion je Phase exakter Code.
  • Canary-Secrets nirgends.
  • Read-only FS stoppt vor Posting.
  • Run korrelierbar, Alarme für Unknown/Auth.
  • Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.

Code Blast

  • Direkt: ErrorCode/Exception, Ingest, Logger, Remoteadapter, Node.
  • Daten: versioniertes Fehler-/Logformat; Betrieb: Alarme.

Code-Impact-Analyse

  • Bessere Root Cause.
  • Korrekte Taxonomie blockiert gefährliche Retries.

Risikoanalyse

| Risiko | Eintritt | Schaden | |---|---|---| | Falscher Retry | mittel | kritisch | | Secret/PII oder fehlendes Audit | hoch | kritisch |

Strategie zur Risikonullierung

  1. Prevent: Typen/Redaction.
  2. Detect: Canary/Failure.
  3. Contain: fail-closed.
  4. Recover: Korrelation/Original.

Abschlussnachweis

Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.

Supervisionsfortschritt 2026-07-16

  • Phasenbasierte Fehlercodes, korrelierte JSONL-Logs, rekursive Redaction und fail-closed Schreiben implementiert; Logger-Tests ohne Notice gruen. Betriebsalarmierung steht aus.

Supervisionsfortschritt 2026-07-16 (Betriebsalarm)

  • `InvoiceLogAlertChecker` und CLI alarmieren `AUTH`, `UNKNOWN` und defektes Auditformat fail-closed.
  • Ausgabe ist strikt auf Run-ID, Fehlercode und Phase begrenzt; ein Canary-Secret bleibt nachweislich aus dem Ergebnis entfernt.

Supervisionsfortschritt 2026-07-16 (Symbolnachweis)

  • Alarmklassifikation: [InvoiceLogAlertChecker](/code/194).
  • Betriebsaufruf: [rechnung-alert-check.php](/code/192).

Frühere Versionen

VersionZeitpunktOperation
55 2026-07-16 20:21:22.333171+02 UPDATE
50 2026-07-16 20:11:22.768266+02 UPDATE
42 2026-07-16 19:53:19.687713+02 UPDATE