UX DesignUI Design

Fehlerzustände gestalten: Was dein Produkt sagt, wenn etwas schiefgeht

Jannik Noe · 5. Oktober 2026· 12 Min. Lesezeit

Warum der Fehlerfall im Product Design fast immer zuletzt gestaltet wird — und wie du Meldung, Ort, Wiederanlauf und Datensicherheit so zusammenbringst, dass Nutzer:innen weiterkommen statt stehenzubleiben

Ein hohes, dünn umrandetes Bedienfeld mit abgerundeten Ecken: oben kleine Kreise, abgerundete Balken und eine leere Kachel, darunter läuft eine waagerechte Linie quer durch das Feld, die in der Mitte abreißt und deren beide Enden versetzt übereinanderstehen; unter dem Riss zwei Schaltflächen nebeneinander, die linke türkis gefüllt, die rechte nur umrandet.

Es gibt in jedem Projekt diesen Moment: Das Feature ist durchgestaltet, die Screens liegen sortiert im Figma-File, der Flow sitzt. Dann fragt jemand aus der Entwicklung, was eigentlich passieren soll, wenn der Server nicht antwortet. Und sehr oft folgt darauf ein Schulterzucken — und zwei Tage später steht im Interface ein roter Kasten mit dem Satz, den die Schnittstelle zurückgibt: „Request failed with status code 500".

Das ist keine Nachlässigkeit der Entwicklung. Das ist eine Lücke im Design. Wir gestalten den Weg, auf dem alles klappt, in drei Varianten durch und überlassen den Weg, auf dem etwas schiefgeht, dem Zufall. Dabei entscheidet sich genau dort, ob jemand deinem Produkt traut: Niemand erinnert sich an das Speichern, das funktioniert hat. An das Speichern, nach dem die Eingaben weg waren, erinnern sich Leute jahrelang.

In der Kita-Software, an der ich mitgestalte, dokumentieren pädagogische Fachkräfte Beobachtungen zu Kindern — oft zwischen zwei Diensten, oft auf dem Tablet, oft im WLAN einer Einrichtung, das in der Mittagszeit in die Knie geht. Der Fehlerfall ist hier kein exotischer Randfall. Er ist Dienstagnachmittag. Und er hat uns mehr Gestaltungszeit gekostet als jeder Happy Path, den wir gebaut haben.

Dieser Artikel ist der dritte Teil einer Reihe, auch wenn er nicht so angekündigt war: Nach den leeren und den ladenden Zuständen fehlte noch der, der am häufigsten ungestaltet bleibt.

1. Der Fehlerfall ist kein Randfall

Der erste Schritt ist unspektakulär: Fehler sind nicht eine Kategorie, sondern mehrere. Wer sie in einen Topf wirft, bekommt zwangsläufig eine Meldung, die für alles ein bisschen und für nichts richtig passt. Diese fünf Arten begegnen mir in fast jedem Produkt:

  • Eingabefehler: Jemand hat etwas eingetragen, das so nicht verarbeitet werden kann — eine Mailadresse ohne @, ein Datum in der Zukunft, ein Pflichtfeld leer. Hier liegt die Lösung beim Menschen, und das Interface muss ihn genau dorthin führen.
  • Systemfehler: Etwas auf der anderen Seite ist kaputt. Die Nutzerin kann nichts richtig machen, sie kann nur warten oder einen anderen Weg nehmen. Jede Formulierung, die ihr Schuld zuschiebt, ist hier falsch.
  • Netzfehler: Die Verbindung ist weg oder zu langsam. Der Zustand ist vorübergehend, und das Interface sollte genau das signalisieren — nicht so tun, als wäre die Welt untergegangen.
  • Berechtigungsfehler: Die Aktion ist grundsätzlich möglich, aber nicht für diese Person oder nicht in dieser Rolle. Das ist die Art Fehler, die am häufigsten als Systemfehler verkleidet auftritt und dann maximal verwirrt.
  • Zustandskonflikte: Zwei Leute haben dasselbe Dokument bearbeitet, der Datensatz wurde zwischenzeitlich gelöscht, die Sitzung ist abgelaufen. Technisch ein Fehler, inhaltlich eine Frage: Wessen Version gilt?

Die Unterscheidung ist kein Selbstzweck. Sie bestimmt drei Dinge auf einmal: den Ton der Meldung, den Ort, an dem sie erscheint, und die Aktion, die danebensteht. Ein Eingabefehler gehört ans Feld und braucht keine Schaltfläche. Ein Netzfehler gehört in die Nähe des betroffenen Bereichs und braucht genau eine: „Erneut versuchen".

Faustregel: Wenn du eine Fehlermeldung schreibst und nicht benennen kannst, welche der fünf Arten sie behandelt, ist sie noch nicht fertig gedacht. Eine Meldung, die für alle fünf Fälle funktionieren soll, hilft in keinem.

Dazu kommt ein sechster Zustand, der häufig mit Fehlern verwechselt wird: Leere. Eine Ergebnisliste ohne Treffer ist kein Fehler, sondern ein leerer Zustand mit eigener Gestaltungslogik — und wer beides gleich behandelt, erschreckt Leute grundlos. Umgekehrt ist es genauso heikel: Ein fehlgeschlagener Abruf, der stillschweigend als „Keine Einträge vorhanden" gerendert wird, ist die gefährlichere Verwechslung. Da glaubt jemand, seine Daten seien weg.

2. Vier Fragen, die jede Fehlermeldung beantworten muss

Eine brauchbare Fehlermeldung ist kein Satz, sondern eine kleine Informationsarchitektur. Sie beantwortet vier Fragen, und zwar in dieser Reihenfolge:

  • Was ist passiert? In Worten des Nutzers, nicht des Systems. Nicht „Validation Error", sondern „Die Beobachtung konnte nicht gespeichert werden".
  • Warum, soweit es hilft? Nur, wenn die Antwort eine Handlung ermöglicht. „Weil die Verbindung unterbrochen war" hilft. „Weil der Dienst mit Code 503 geantwortet hat" hilft nicht — das gehört ins Protokoll.
  • Was kann ich jetzt tun? Die konkrete nächste Handlung, als Schaltfläche, nicht als Prosa. Gibt es keine, sag das ehrlich und nenne, wann es sich lohnt, wiederzukommen.
  • Was ist mit meinen Daten? Die wichtigste und am seltensten beantwortete Frage. „Deine Eingaben sind erhalten" ist in neunzig Prozent der Fälle die entscheidende Information — und sie fehlt fast immer.

Diese vierte Frage ist der Punkt, an dem Fehlermeldungen von höflich zu nützlich kippen. In der Kita-Software hieß unsere Meldung ursprünglich „Speichern fehlgeschlagen. Bitte versuche es erneut." Freundlich, korrekt, komplett nutzlos: Niemand wusste, ob „erneut versuchen" bedeutet, den ganzen Bogen noch einmal auszufüllen. Also sind Leute auf Nummer sicher gegangen und haben ihre Texte vorsichtshalber in eine Notiz-App kopiert, bevor sie gespeichert haben. Ein Interface, das seine Nutzer zu Backups außerhalb des Produkts erzieht, hat verloren.

Zwei nebeneinanderliegende Bedienfelder mit dunkler Kopfleiste: links drei kurze, kräftige Balken unterschiedlicher Länge und ein koralleroter Punkt auf dem mittleren, rechts rund fünfzehn sehr feine, gleich lange Linien dicht untereinander, von denen zwei türkis hervorgehoben sind.

Die neue Fassung lautete: „Die Beobachtung konnte nicht gespeichert werden — die Verbindung war unterbrochen. Dein Text ist erhalten geblieben." Darunter zwei Schaltflächen: „Erneut speichern" und „Als Entwurf behalten". Dieselbe Technik dahinter, dieselbe Fehlersituation, ein völlig anderes Erlebnis. Die Notiz-App-Kopien hörten auf.

Zwei Dinge gehören ausdrücklich nicht in die Meldung: die Entschuldigung und der Witz. „Ups, da ist wohl etwas schiefgelaufen!" kostet Platz, liefert keine der vier Antworten und wirkt bei der dritten Wiederholung herablassend. Und der technische Code gehört nicht in den Fließtext, sondern klein darunter, kopierbar — für den Fall, dass jemand den Support kontaktiert.

3. Drei Ebenen: wo der Fehler erscheint

Der Ort einer Meldung ist genauso Gestaltung wie ihr Text. Ich arbeite mit drei Ebenen, und die Zuordnung ist fast immer eindeutig, wenn man eine einzige Frage stellt: Was genau ist von dem Fehler betroffen?

Drei Elemente untereinander: oben ein schmales, leeres Band über die volle Breite, in der Mitte ein kleineres, türkis gefülltes Bedienfeld mit zwei umrandeten Balken darin, unten ein breiter heller Rahmen mit einem langen türkisen und einem kürzeren korallenfarbenen Balken.

  • Feldebene: Betroffen ist eine einzelne Eingabe. Die Meldung steht direkt unter dem Feld, bleibt stehen, bis der Fehler behoben ist, und verschwindet nicht beim nächsten Tastendruck. Alles Weitere dazu steht im Artikel über Formulare in Web und App.
  • Bereichsebene: Betroffen ist ein Abschnitt der Seite — eine Liste, ein Diagramm, ein Widget im Dashboard. Die Meldung ersetzt genau diesen Bereich und lässt den Rest der Seite in Ruhe. Das ist die Ebene, die am häufigsten vergessen wird, und zugleich die, die am meisten rettet: Wenn drei von vier Kacheln laden, ist das kein kaputtes Dashboard, sondern ein Dashboard mit einer kaputten Kachel.
  • Systemebene: Betroffen ist alles. Die Sitzung ist abgelaufen, das Produkt ist im Wartungsmodus, die Verbindung ist komplett weg. Hier ist ein durchgehendes Band am oberen Rand richtig — und nur hier.

Ein Sonderfall der Systemebene ist die ganze Seite: die klassische 404, der Serverfehler, die abgelaufene Einladung. Diese Seiten werden gern als Spielwiese behandelt — eine nette Illustration, ein Wortspiel, fertig. Dabei sind sie fast immer ein Navigationsproblem: Jemand wollte irgendwohin und ist nicht angekommen. Was dort hilft, ist nicht Humor, sondern ein Weg zurück, der zum Kontext passt — die Suche, die übergeordnete Ebene, der zuletzt besuchte Bereich. Bei einer Festival-Website, bei der nach dem Jahreswechsel reihenweise alte Programmlinks ins Leere liefen, hat genau das den Unterschied gemacht: Statt einer allgemeinen Fehlerseite kam der Hinweis, dass dieser Programmpunkt aus dem Vorjahr stammt, samt Link auf das aktuelle Programm. Dieselbe 404, ein anderes Ergebnis.

Der häufigste Fehler in dieser Dimension ist der Toast. Eine Meldung, die nach vier Sekunden von selbst verschwindet, ist für Bestätigungen gebaut, nicht für Probleme. Sie trifft jeden, der in dem Moment gerade woanders hinschaut, und sie ist für Screenreader-Nutzende und für alle, die langsamer lesen, systematisch benachteiligend. Meine Regel ist hart und hat sich bewährt: Was eine Handlung erfordert, verschwindet nicht von selbst. Ein Toast darf sagen „Gespeichert". Er darf nicht sagen „Speichern fehlgeschlagen".

Beispiel aus der Praxis: In einem Bildungsportal hatten wir alle Fehler über ein zentrales Toast-System ausgegeben, weil es praktisch war — ein Aufruf aus jeder Komponente. Im Nutzungstest hat eine Teilnehmerin dreimal hintereinander auf dieselbe Schaltfläche geklickt und jedes Mal den Toast verpasst, weil ihr Blick beim Klicken unten am Knopf war und die Meldung oben rechts erschien. Sie dachte, der Knopf sei kaputt. Technisch funktionierte alles wie entworfen.

4. Ein Fehler darf keine Arbeit kosten

Das ist für mich die eigentliche Trennlinie zwischen einem Produkt, das man ernst nehmen kann, und einem, das man meidet. Ein Fehler darf Zeit kosten. Er darf Nerven kosten. Er darf niemals Eingaben kosten.

Technisch ist das selten das Problem, über das in der Entwicklung diskutiert wird — es ist ein Designthema, weil es im Entwurf auftauchen muss, sonst baut es niemand. Vier Muster tragen dabei den Großteil:

  • Lokaler Entwurf bei jeder Pause: Was in einem Feld steht, wird nach kurzer Tippruhe lokal gesichert — nicht beim Absenden. Kommt die Person nach einem Absturz zurück, steht ihr Text da, mit einem sichtbaren Hinweis darauf, woher er kommt.
  • Optimistische Aktualisierung mit ehrlicher Rücknahme: Die Oberfläche zeigt das Ergebnis sofort und nimmt es zurück, wenn der Server widerspricht. Das funktioniert nur, wenn die Rücknahme gestaltet ist und nicht einfach die Zeile verschwinden lässt — mehr dazu bei der gefühlten Performance und ihren Ladezuständen.
  • Wiederholbare Aufträge: Jede schreibende Aktion bekommt eine Kennung mit, damit ein zweiter Versuch nicht zu einem zweiten Datensatz führt. Ohne das traut sich niemand, „Erneut versuchen" zu drücken — zu Recht.
  • Kein Verlust durch Navigation: Wer versehentlich zurück navigiert, bekommt eine Rückfrage. Wer sie bestätigt, verliert trotzdem nichts, weil der Entwurf bleibt.

In einer Publishing-Oberfläche, an der ich gearbeitet habe, war das der größte Einzelgewinn des Projekts. Vorher gab es einen Speichern-Knopf und eine Fehlermeldung. Nachher gab es einen fortlaufenden Entwurfsstand, einen sichtbaren Zeitstempel der letzten Sicherung und eine Fehlermeldung, die auf diesen Zeitstempel verwies. Die Zahl der Support-Anfragen zum Thema „Text weg" ging auf null. Nicht nahezu null — null.

5. Wiederanlauf gestalten: Retry, Offline, Teilausfall

Fast jeder Fehler endet mit einer Frage: Und jetzt? Die Antwort darauf ist selten „Lade die Seite neu", auch wenn sie oft so lautet. Der Wiederanlauf ist ein eigenes kleines Interaktionsmuster, und er hat drei Ausprägungen.

Ein Kreis aus zwei bogenförmigen Pfeilen, die einander hinterherlaufen — der obere korallenrot, der untere türkis, dazwischen zwei helle Bogenstücke; in der Mitte ein kleiner türkiser Punkt, rechts daneben drei kleine Kreise in größer werdendem Abstand, oben links ein teilweise gefüllter Fortschrittsbalken.

Der stille Wiederanlauf läuft automatisch und in wachsenden Abständen: nach einer Sekunde, nach drei, nach zehn. Er braucht keine Meldung, solange er plausibel kurz bleibt — aber er braucht ein sichtbares Zeichen, dass etwas passiert, sonst fühlt sich die Oberfläche eingefroren an. Und er braucht ein Ende: Nach dem dritten oder vierten Versuch übernimmt der Mensch. Eine Anwendung, die ewig im Hintergrund weiterprobiert, während im Vordergrund nichts passiert, ist die unehrlichste Variante von allen.

Der angebotene Wiederanlauf ist die Schaltfläche neben der Meldung. Wichtig ist, dass sie wiederholt, was fehlgeschlagen ist — nicht die ganze Seite. Ein „Erneut laden", das den gesamten Zustand verwirft und die Person wieder oben in einer langen Liste absetzt, ist kein Wiederanlauf, sondern ein Neuanfang. Und die Schaltfläche braucht selbst einen Ladezustand, sonst klicken Leute dreimal.

Der Offline-Zustand ist der ehrlichste Fall und der, in dem Produkte am meisten gewinnen können. Er ist kein Fehler, sondern ein Betriebsmodus. In der Kita-Software bedeutet das: Dokumentieren geht weiter, die Eingaben sammeln sich lokal, ein ruhiger Hinweis zeigt „Nicht verbunden — 3 Änderungen warten", und sobald die Verbindung zurück ist, synchronisiert sich das im Hintergrund. Was dabei zählt, ist die Grenze: Was offline möglich ist, muss offline auch sichtbar möglich aussehen. Eine Schaltfläche, die sich drücken lässt und dann nichts tut, ist schlimmer als eine deaktivierte.

Tipp: Der am häufigsten übersehene Fall ist der Teilausfall. Von zwölf Zeilen in einer Tabelle konnten neun gespeichert werden und drei nicht. Wer dafür eine globale Meldung ausgibt, zwingt alle zur Suche. Richtig ist: Die drei betroffenen Zeilen markieren, oben zusammenfassen, wie viele es sind, und einen Wiederanlauf anbieten, der nur diese drei betrifft.

6. Fehler, die niemand hört

Eine Fehlermeldung, die nur zu sehen ist, erreicht einen Teil der Nutzerschaft gar nicht. Das ist der Bereich, in dem sich am schnellsten echte Mängel finden lassen — und beheben.

  • Die Meldung muss angekündigt werden. Ein Bereich, der dynamisch eine Fehlermeldung bekommt, braucht role="alert" oder eine entsprechende Live-Region, sonst erfährt ein Screenreader nichts davon. Kommt die Meldung bereits beim Laden der Seite mit, reicht die normale Lesereihenfolge — Live-Regionen melden nur, was sich ändert.
  • Der Fokus muss mitgehen. Nach einem fehlgeschlagenen Absenden gehört der Fokus auf die Fehlerzusammenfassung oder auf das erste betroffene Feld. Er darf nicht am abgesendeten Knopf kleben bleiben, unter dem inzwischen etwas völlig anderes steht.
  • Farbe darf nie allein tragen. Rot ist eine Verstärkung, kein Signal. Dazu gehören ein Symbol, eine Beschriftung oder beides. Das gilt auch für den dunklen Modus, in dem sattes Rot auf dunklem Grund oft unter jedem brauchbaren Kontrast liegt.
  • Die Meldung muss erreichbar bleiben. Ein Fehler, der ganz oben steht, während die betroffene Eingabe ganz unten liegt, ist bei Tastaturbedienung eine Zumutung. Entweder die Zusammenfassung verlinkt auf die Felder, oder sie steht bei ihnen.

Dazu kommt die Sprache, und die ist hier kein Stilthema, sondern Zugänglichkeit im Wortsinn. Formulierungen wie „Ungültige Eingabe" setzen voraus, dass jemand errät, was gültig gewesen wäre. Was Microcopy im Produkt leisten kann, zeigt sich im Fehlerfall am deutlichsten: Ein Satz, der die erwartete Form beschreibt — „Bitte im Format TT.MM.JJJJ" — erspart eine Supportanfrage, und zwar jedes Mal.

Noch ein Punkt, der selten ausgesprochen wird: Fehlertexte müssen genauso übersetzt, gepflegt und versioniert werden wie der Rest der Oberfläche. In mehr als einem Projekt habe ich deutsche Interfaces gesehen, in denen ausgerechnet die Fehlermeldungen englisch blieben — weil sie aus einer Bibliothek kamen, die niemand angefasst hat. Für die Person davor sieht das aus, als hätte sie etwas kaputtgemacht, das sie nicht verstehen soll.

7. Die Zustandsmatrix: Fehler ins Design-System holen

Alles bisher Beschriebene zerfällt wieder, wenn es Einzelfallarbeit bleibt. Die Lösung ist unspektakulär und wirkt sofort: eine kleine Matrix, die für jede relevante Ansicht die Zustände durchgeht, bevor sie gebaut wird.

  • Leer: Es gibt noch nichts. Was steht da, und was ist der nächste Schritt?
  • Lädt: Woran sieht man das, und wie lange ist es glaubwürdig?
  • Teilweise geladen: Was ist da, was fehlt, und was passiert mit dem Rest?
  • Fehler: Welche der fünf Arten, auf welcher Ebene, mit welcher Handlung daneben?
  • Erfolg: Woran erkennt man, dass es geklappt hat — auch ohne Toast?

Fünf Zeilen pro Ansicht. In der Praxis dauert das pro Screen keine zehn Minuten und verhindert verlässlich den Satz „Daran haben wir nicht gedacht" im Review. Wenn ihr ein Design-System pflegt, gehören die dazugehörigen Bausteine mit hinein: eine Fehlerkachel für Bereiche, ein Band für die Systemebene, ein Feldfehler, ein Offline-Hinweis. Dazu die Farbrollen — nicht „Rot 600", sondern eine semantische Rolle für Fehler, die im hellen und im dunklen Modus eigene Werte hat.

Praxisnotiz: Lege im Design-System zu jedem Fehlerbaustein ein Textbeispiel ab, das die vier Fragen aus Abschnitt 2 beantwortet. Bausteine ohne Beispieltext werden mit „Fehler beim Laden" befüllt, und zwar von allen, immer.

Der letzte Baustein ist organisatorisch: Fehlerzustände gehören in die Abnahme. Nicht als Nachtrag, sondern als Punkt auf derselben Liste wie der Hauptweg. Ich schalte dafür im Test das Netz ab, lasse die Schnittstelle absichtlich mit einem Fehler antworten und schaue mir an, was passiert. Das dauert zehn Minuten pro Flow und findet mehr als jedes Review der Screens — weil der Fehlerfall im Figma-File eben nicht passiert, sondern im Browser.

Fazit

Fehlerzustände sind kein Detail am Rand des Produkts, sondern die Stelle, an der sich Vertrauen entscheidet. Die wichtigsten Punkte:

  • Fehler sind nicht gleich Fehler. Eingabe, System, Netz, Berechtigung, Konflikt — jede Art braucht einen anderen Ton, einen anderen Ort und eine andere Handlung daneben.
  • Vier Fragen pro Meldung: Was ist passiert, warum (soweit es hilft), was kann ich tun, und was ist mit meinen Daten. Die letzte ist die wichtigste und fehlt am häufigsten.
  • Der Ort ist Gestaltung. Feld, Bereich, System — und was eine Handlung erfordert, verschwindet nicht nach vier Sekunden von selbst.
  • Nichts darf verlorengehen. Lokale Entwürfe, wiederholbare Aufträge und eine ehrliche Rücknahme sind der Unterschied zwischen Ärger und Schaden.
  • Wiederanlauf ist ein eigenes Muster. Automatisch mit Ende, angeboten mit Zustand, offline als Betriebsmodus — und Teilausfälle genau dort markiert, wo sie passiert sind.
  • Fehler müssen hörbar sein. Live-Region, Fokusführung, nicht nur Farbe, und Texte in der Sprache des Produkts.

Wenn du nur eine Sache aus diesem Artikel mitnimmst, dann die Zustandsmatrix. Fünf Zeilen pro Ansicht, ausgefüllt bevor gebaut wird. Der Rest folgt daraus fast von selbst — und der rote Kasten mit „Request failed with status code 500" kommt gar nicht erst zustande.

Transparenzhinweis: Die Bilder in diesem Artikel wurden mit KI erstellt. Die redaktionelle Verantwortung liegt bei Jannik Noe.

Jannik Noe

Jannik Noe

Product & UI/UX Designer aus Hamburg. Ich gestalte und baue Websites, Web-Apps und Software — von der Konzeption bis zum Launch — und zeige Teams im Workshop, wie KI in echte Designprozesse passt.

Mehr über mich →

Product Design

Euer Produkt braucht genau das — aber niemand hat Zeit dafür?

Ich übernehme UX-Konzeption, UI Design und Prototyping für Web-Apps und Software — als Projekt oder als Verstärkung in eurem Team. Ab 4.000 €.

Weiterlesen
Alle Artikel →

Lass uns sprechen

Du planst eine Website, eine App, ein Redesign — oder möchtest euer Team mit einem AI-UX Workshop voranbringen?

Ich unterstütze Unternehmen dabei, komplexe Anforderungen in klare, nutzerfreundliche Lösungen zu übersetzen.

Schritt 01 / 04

Wie kann ich helfen?

Dauert ca. 1 Minute. Bitte wähle eine Option