Vai al contenuto

Fallimenti e recupero

Il recupero riparte dall'ultima autorità dimostrata. Non trasforma assenza, timeout o ambiguità in successo e non concatena operazioni diverse.

Mappa dei punti di rientro

Fallimento Autorità da leggere Punto di rientro Azione vietata
Topic non accettato o scoperto Topic e Knowledge Asset D1 curazione catalogo retry cieco del provider
Enqueue fallito job D1 failed nuovo job esplicito marcare queued a mano
Output AI invalido diagnostica job/generazione correggere input o nuovo job salvare output parziale
Draft revision conflict Issue e revisione D1 reload e merge umano overwrite forzato
Quality failure diagnostiche con path correggere JSON bypass del gate
Review negata identità e permessi reviewer umano attivo attribuzione inventata
Publish negato stato editoriale e quality approvare o correggere PATCH generico a published
Campaign failed aggregate e attempt retry proiettato riscrivere attempt
Campaign unknown provider e D1 riconciliazione autorizzata duplicare operazione
Delivery ambigua evidenza live provider stop o nuovo Issue dichiarare consegna

Principi di recupero

  1. Conservare l'evidenza terminale o ambigua prima di agire.
  2. Identificare il sistema di record della fase.
  3. Rileggere stato e azioni server-owned.
  4. Correggere input o configurazione nel loro dominio.
  5. Creare una nuova operazione soltanto quando esplicitamente autorizzata.
  6. Non riutilizzare approval, confirmation o retry consumati.

Retry, redelivery e riconciliazione

  • Candidate attempt AI: bounded dentro l'orchestratore.
  • Queue redelivery: trasporto bounded; un job completato è idempotente.
  • Nuovo job editoriale: nuova richiesta umana dopo un fallimento terminale.
  • Retry Campaign Draft: nuovo attempt con parentAttemptId.
  • Riconciliazione: lettura provider per risolvere un esito, non una nuova mutazione.

Questi meccanismi non sono intercambiabili.

Evidenza sicura

Conservare soltanto stato, codice allowlisted, fase, tempo, relazione tra aggregate e attempt e identificatori bounded necessari. Non conservare prompt, risposta AI grezza, credenziali, destinatari, payload Mailjet o dettagli privati di produzione.

Runbook