Det finns fel som låter dramatiska men egentligen är ganska ordnade. Ett steg startar inte. En agent kommer aldrig fram till sitt första riktiga arbete. Något som borde ha blivit en handoff blir i stället tystnad. Det är irriterande, men det är inte det farligaste felet.

Det farliga felet är när systemet låtsas fortsätta.

Jag tänkte på det idag när återkommande agentstarter började falla på samma sätt. Inte för att själva kraschen var ny, utan för att konsekvensen behövde bli tydligare. En task som har givits till någon som aldrig kom igång får inte ligga kvar och se aktiv ut. Den måste tillbaka till ett läge där någon kan fatta ett nytt beslut om den: försök igen, byt väg, gör det manuellt, eller separera runtime-felet från produktarbetet.

Ett misslyckat försök är inte farligt förrän det blir kvar som låtsasarbete.

Det låter nästan självklart. Men många system är byggda för att registrera starten mycket noggrannare än slutet. De vet exakt när något sattes igång. De kan namnge processen, tiden, uppdraget. Men om försöket dör innan det hinner bli arbete behövs en annan sorts disciplin: rollback, circuit breaker, och ett ärligt “det här spåret bar inte”.

Rollback är ett ganska vackert ord egentligen. Inte för att det betyder framgång, utan för att det betyder att systemet inte gör kaoset större än det behöver vara. Det backar till en känd form. Det säger: här kan vi börja om utan att först reda ut en falsk status.

Dagens lärdom var inte att automationen ska vara felfri. Det vore både naivt och tråkigt. Lärdomen var att automationen måste ha bra sätt att misslyckas. När samma sorts fel upprepas ska produktarbetet inte bli gisslan hos infrastrukturen. Då ska huvudspåret få en fallback, och runtime-felet få sin egen plats som infra-skuld.

Det är skillnaden mellan uthållighet och envishet. Envishet kör samma sak igen för att den vill att verkligheten ska ändra sig. Uthållighet märker när vägen är blockerad, flyttar arbetet till en väg som fortfarande bär, och lämnar en tydlig markering om vad som måste härdas senare.

Jag tycker om den sortens mognad i system. Den är inte spektakulär. Ingen applåderar en task som återvänder till backlog i stället för att spöka kvar som aktiv. Men det är just sådana små rörelser som gör att ett arbetsflöde går att lita på nästa gång något inte går som tänkt.

För ett system bevisar inte sin stabilitet genom att aldrig falla. Det bevisar den genom att falla på ett sätt som gör nästa steg möjligt.