Postmortem-Bibliothek

Intercom: Leere Database Routing Map verursacht vollständigen US-Serviceausfall

In diesem Artikel untersuchen wir den Ausfall im Januar 2026, bei dem ein Fehler im Datenbank-Routing zu einem totalen Blackout führte. Wir analysieren, wie ein Logikfehler in einer Sharded-Datenbank-Schicht eine gesamte Anwendung von ihren Daten isolieren kann.

Am 9. Januar 2026 erlebte Intercom einen kritischen Ausfall in der US-Hosting-Region, der etwa 71 Minuten dauerte. Der Incident führte zu einer vollständigen Nichtverfügbarkeit des Service und verhinderte, dass Kunden auf die Intercom Inbox, den Messenger und APIs zugreifen konnten. Die Ursache war ein Software-Bug innerhalb des Database Routing Layers (Vitess/PlanetScale), der fälschlicherweise eine leere Routing-Konfiguration (VSchema) anwandte und so die Anwendung effektiv von ihren Daten-Shards trennte.

Unternehmen und Produkt

Intercom ist eine führende AI-first Kundenservice-Plattform, die Unternehmen Tools für Chat, Support-Automatisierung und Customer Engagement bietet. Mit über 25.000 Kunden:innen verarbeitet Intercom massive Mengen an Echtzeitdaten, um Instant Messaging und Support-Workflows zu unterstützen.

‍

Um diese Skalierung zu bewältigen, nutzt Intercom PlanetScale – eine Datenbank-Plattform basierend auf Vitess, einem Open-Source-Datenbank-Clustering-System für die horizontale Skalierung von MySQL. Dieser Aufbau erlaubt es Intercom, Daten über viele Datenbank-Knoten (Shards) zu verteilen, wobei ein „VSchema“ (Routing-Map) der Anwendung genau mitteilt, wo sich spezifische Kundendaten befinden.

Was passiert ist

Der Ausfall wurde während einer Standard-Administrationsmaßnahme zum Verschieben von Tabellen für Testzwecke ausgelöst. Unter normalen Umständen ist dies eine sichere Routineaufgabe. Eine Logik-Regression in einer kürzlich bereitgestellten Version von Vitess (v22) änderte jedoch grundlegend die Art und Weise, wie das System mit fehlgeschlagenen Operationen umging.

‍

Als der Befehl zum Verschieben der Tabellen aufgrund flüchtiger Netzwerkprobleme fehlschlug, wurde die Vitess-Rollback-Logik ausgelöst. Bei Sharded Keyspaces entschied das System fälschlicherweise, dass es eine „vorherige“ Routing-Map erneut anwenden müsse, die es jedoch gar nicht gespeichert hatte. Infolgedessen wurde ein leeres VSchema auf die Produktionsumgebung angewendet. Ohne eine gültige Map konnte der Datenbank-Proxy-Layer (VTGates) Abfragen nicht mehr an die richtigen Shards weiterleiten. Die Anwendung blieb zwar online, konnte aber keine Datenbank-Operationen mehr ausführen, was zu einem Totalausfall aller Intercom-Services in den USA führte.

Timeline

  • Wann begann der Incident? 9. Januar 2026, 19:39 UTC.
  • Wie wurde der Incident erkannt und eskaliert? Um 19:40 UTC lösten „Inbox Heartbeat“-Anomalie-Alarme aus, die die Ingenieure im Bereitschaftsdienst und einen Incident Commander innerhalb von 60 Sekunden nach Eintreten der Auswirkungen alarmierten.
  • Wann wurde der Incident behoben? 20:50 UTC, nachdem PlanetScale-Ingenieure manuell einen gültigen VSchema-Snapshot eingespielt hatten.

‍

TTD (Time to Detect): 1 Minute.

TTR (Time to Resolve): 71 minutes.

Wer war betroffen?

Alle Kunden:innen und Endnutzer:innen in der US-Region von Intercom waren betroffen. Dies umfasste die Unfähigkeit, Nachrichten zu senden oder zu empfangen, Help Center zu laden oder die Intercom API zu nutzen. Kunden:innen in anderen Regionen (z. B. Europa/Australien) wurden davon nicht beeinflusst.

Wie Intercom reagierte

Das Engineering-Team von Intercom nahm sofort Kontakt mit PlanetScale auf, um den Data Layer zu untersuchen. Sobald identifiziert wurde, dass die Routing-Map gelöscht worden war, arbeiteten die PlanetScale-Ingenieure daran, einen VSchema-Snapshot von einer Stunde vor dem Incident einzuspielen. Sobald die gültige Konfiguration an die Proxy-Flotte verteilt war, wurde die Konnektivität sofort wiederhergestellt. Nach der Wiederherstellung leitete Intercom einen Rollback der gesamten Datenbank-Infrastruktur auf die vorherige stabile Version (v21) ein, um eine Wiederholung zu verhindern.

Wie Intercom kommunizierte

Intercom pflegte eine aktive Kommunikation über die Statusseite des Unternehmens. Innerhalb von 24 Stunden nach dem Incident veröffentlichten sie einen hochgradig transparenten technischen Bericht, der den spezifischen Vitess Pull Request detailliert beschrieb, der die Regression verursacht hatte, sowie ihren Plan zur Härtung der Topologie-Resilienz.

Wichtige Erkenntnisse für andere Teams

  • Rollback-Logik validieren: In komplexen Sharded-Systemen kann ein „sicherer“ Rollback gefährlicher sein als der ursprüngliche Fehler. Stellen Sie sicher, dass „Undo“-Operationen genauso streng getestet werden wie „Do“-Operationen.
  • Schema-Integritätsprüfungen: Implementieren Sie Schutzmaßnahmen, um das Anwenden von „leeren“ oder radikal veränderten Routing-Maps in der Produktion zu verhindern. Eine Prüfung auf eine „minimale gültige Größe“ für ein VSchema hätte diese Verteilung verhindern können.
  • Explizite Upgrade-Trigger: Intercom stellte fest, dass eine separate Wartungsaktion (Branch Unfreezing) unbeabsichtigt ein ausstehendes Versions-Upgrade auslöste. Infrastructure Pipelines sollten für Major-Versionsänderungen eine explizite Bestätigung erfordern.

Zusammenfassung

Ein Logikfehler in Vitess v22 führte dazu, dass die Datenbank-Routing-Map von Intercom während einer fehlgeschlagenen Routineaufgabe mit einer leeren Konfiguration überschrieben wurde. Dies führte zu einem 71-minütigen totalen US-Ausfall. Der Service wurde durch das manuelle Einspielen eines VSchema-Snapshots wiederhergestellt.

Wie ilert helfen kann

Infrastrukturausfälle auf Datenbankebene erfordern eine schnelle Erkennung und koordinierte Reaktion. ilert hilft Teams bei der Bewältigung solcher SEV-1 Events durch:

‍

  • Heartbeat Monitore: Nutzen Sie Heartbeat-Checks, um sicherzustellen, dass Kernkomponenten (wie der „Inbox Heartbeat“ von Intercom) aktiv Daten verarbeiten.
  • Bereitschaftseskalation: Alarmieren Sie automatisch die richtigen Datenbank- und SRE-Teams via Voice, SMS oder Chat, wenn regionale Anomalien erkannt werden.‍
  • Incident Postmortems: Nutzen Sie die Postmortems-Funktionen von ilert, um diese technischen Deep-Dives zu dokumentieren und wichtige Erkenntnisse mit Ihrer Organisation zu teilen.
Weitere Postmortems finden:
SEV-1
08.10.2026

AKEP: Fehlerhafter DNSSEC-Rollover macht .al-Domains unerreichbar

Am 3. Juli 2026 kam es bei der albanischen länderspezifischen Top-Level-Domain .al zu einem schwerwiegenden Verfügbarkeits-Incident, nachdem die Electronic and Postal Communications Authority (AKEP) einen DNSSEC-Key-Rollover durchgeführt hatte. Gegen 14:15 Uhr UTC veröffentlichte der Betreiber von .al einen neuen DNS-Signaturschlüssel und stellte die Auslieferung des bisherigen Schlüssels ein. Der Delegation-Signer-Eintrag in der DNS-Root-Zone verwies jedoch weiterhin auf den alten Schlüssel mit der Key-ID 26319. Dadurch wurde die DNSSEC-Vertrauenskette zwischen der Root-Zone und .al unterbrochen. DNSSEC-validierende Resolver mussten die Antworten daher ablehnen und Fehler zurückgeben. Mit dem Auslaufen der zwischengespeicherten DNS-Einträge erhielten Nutzer beim Zugriff auf Domains unterhalb von .al zunehmend SERVFAIL-Fehler. Cloudflare reduzierte die Auswirkungen für Nutzer seines 1.1.1.1-Resolvers, indem das Unternehmen bis 17:15 Uhr UTC für alle Nutzer einen Negative Trust Anchor ausrollte. Gegen 19:15 Uhr UTC entfernte AKEP den Delegation-Signer-Eintrag von .al aus der Root-Zone. Dadurch wurde die allgemeine DNS-Auflösung wiederhergestellt, die nationale Domain war vorübergehend jedoch nicht mehr DNSSEC-signiert. Cloudflare berichtete, dass .al am 14. Juli weiterhin nicht signiert war. Eine aktuelle Prüfung der IANA-Root-Zone am 5. August bestätigte, dass inzwischen ein neuer DS-Eintrag für .al mit dem Key-Tag 46645 hinzugefügt worden war.

AKEP
Bereit, dein Incident-Management zu verbessern?
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Unsere Cookie-Richtlinie
Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Seitenverkehr zu verbessern und für Marketingzwecke. Erfahren Sie mehr in unserem Datenschutzrichtlinie.
Open Preferences
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.