Ledtråden var skivan, inte inloggningen

De första rapporterna kom runt 23:10 amerikansk östkusttid den 26 juli enligt Microsofts egen registrering, och på måndagsmorgonen markerade Xbox statussida fyra tjänsteområden som allvarligt avbrott: konto och profil, butik och abonnemang, spel, samt appar och mobil. Xbox Support meddelade på sin officiella kanal att användare mötte fel när de försökte logga in, se sitt spelbibliotek eller starta spel, och att ingenjörerna aktivt arbetade med att lindra problemet. Klockan 9:43 östkusttid uppgav bolaget att det hade identifierat orsaken på alla fyra områden, med en lösning som fortfarande saknades.

Downdetector satte toppen till 3 296 rapporter runt midnatt, fallande till omkring 700 vid nio på morgonen, där 67 procent av klagomålen uttryckligen nämnde spelstart och inte inloggning eller butiken. Den fördelningen är den första ledtråden. Hade detta varit ett vanligt nät- eller inloggningsfel skulle inloggning ha dominerat rapporterna.

Den avgörande detaljen är vad som också slutade fungera. Berörda spelare kunde inte starta hämtade titlar, och de kunde inte heller spela skivspel eller bakåtkompatibla titlar. En skiva i luckan är så lokal som programvara kan bli. Den föll eftersom servrarna inte kunde slutföra den licenskontroll en skiva kräver innan den startar. Detta var inte ett nätavbrott som råkade störa spelare. Det var ett avbrott i rättighetstjänsten, och skivan är beviset.

Din tillgänglighet är den lägsta av två siffror

Varje produkt som kontrollerar en licens vid start ärver tillgängligheten hos den som kontrollerar. Det ger dig en faktisk tillgänglighet lika med det minsta av två tal: din applikations och din rättighetstjänsts. Det är enkel räkning och den står nästan aldrig på en instrumentpanel, eftersom rättighetslogik oftast byggs en gång, tidigt, av ett litet lag, och därefter behandlas som rördragning.

Mönstret sträcker sig långt utanför konsoler. Skrivbordsprogram med ett aktiveringsanrop, system i egen drift som frågar efter antal licenser, inbyggda enheter som validerar vid uppstart, industrimaskiner med funktioner bakom ett abonnement, och varje lösning vars inloggningsväg beror på en separat licenstjänst: alla har samma form. Kunden har filerna. Vad kunden saknar under ett avbrott är tillståndet att köra dem.

Felläget är dessutom ovanligt skadligt för tilliten, eftersom det motsäger vad kunden tror sig ha köpt. Driftstopp hos en strömningstjänst är irriterande men begripligt. Att inte kunna starta ett spel från en skiva som är din, på en konsol som står framför dig, känns närmare ett brutet löfte. Den reaktionen är inte orimlig, och i Europa är den inte bara en reaktion.

I EU upphör ett återkommande avbrott att vara en olägenhet

EU-direktivet om avtal om tillhandahållande av digitalt innehåll och digitala tjänster sätter normen här, och den är strängare än de flesta produktlag antar. Föreskriver ett avtal löpande tillhandahållande under en period ska det digitala innehållet eller tjänsten vara avtalsenlig under hela den perioden. Näringsidkaren svarar för varje bristande avtalsenlighet som framträder under leveransperioden, och inte bara för skicket vid försäljningstillfället.

Direktivet tar sedan upp avbrott direkt. Korta avbrott i tillhandahållandet ska behandlas som fall av bristande avtalsenlighet när dessa avbrott är mer än obetydliga eller när de återkommer. Läs den bestämmelsen med den här helgen i minnet: det var det andra Xbox-avbrottet på två dagar, och några dagar tidigare hade det varit ett avbrott i PlayStation Network. Tröskeln handlar inte enbart om hur länge en enskild händelse varade. Upprepning är en självständig väg till samma slutsats, och det är just fällan för en tjänst med korta, frekventa skakningar i stället för ett långt fel.

Är bristande avtalsenlighet fastställd har konsumenten rätt att få tjänsten bringad i avtalsenligt skick och, om det uteblir, till ett proportionerligt prisavdrag eller till att häva avtalet. Om ett visst avbrott passerar den linjen är en fråga om de konkreta omständigheterna, och en stor plattform absorberar det. Det väsentliga för en mindre aktör är att den bedömningen finns, och att det är din abonnemangsintäkt som är utsatt för den.

Provet du bör köra på din egen produkt den här veckan

Börja med en förteckning i stället för en arkitekturdebatt. Lista varje punkt i din produkt där en kundhandling väntar på ett anrop till din infrastruktur efter ett tillstånd och inte efter data: aktivering, validering av platser, funktionsflaggor, uppdatering av rättigheter, licenspuls. Skriv för var och en i klarspråk vad kunden ser när det anropet faller. Lag blir ofta förvånade, eftersom felvägen skrevs för år sedan av någon som sedan har slutat.

Åtgärda därefter de två saker som är billiga att åtgärda. Ge varje licenskontroll en respitperiod utan uppkoppling, så att ett tillfälligt fel faller tillbaka till en fördröjning och inte till ett lås, och gör perioden lång nog att täcka en dålig natt och inte en dålig minut. Bevaka för det andra rättighetstjänsten som ett eget, kundvänt beroende med egen larmväg, och publicera dess status där kunder kan se den, för under ett avbrott är avsaknaden av information det som förvandlar irritation till uppsägningar.

Microsoft är på fötter före lunch och förlorar ingenting bestående. Ett medelstort svenskt mjukvarubolag med en abonnemangsbas och en kontroll vid start har inte den kudden. Den arkitektoniska lärdomen är gratis den här veckan, vilket är det billigaste sättet att lära sig den.