!

Springer Nature · Identity Team

Designing failure as a first-class experience

The first cross platform error messaging framework for an identity suite used by millions of researchers globally.

Senior UX Design Systems Thinking UX Strategy Design Systems
16+
Error states
audited & redesigned
3
Identity journeys
auth · linking · account flows
1
Scalable framework
for all auth errors
5+
Cross-functional
collaborators

At a glance

Problem

Identity flows used by millions of researchers had no error strategy. Messages were written ad hoc by developers, with no shared structure and no way out of a failure.

My role

Audited every error state across the identity journeys, then built the framework, the content system, and the reusable components handed to the design system team.

Key decisions
  1. Agreed the success metrics with the Product Owner before proposing anything, which kept the work measurable instead of a content polish.
  2. Fixed one message structure, what happened plus why plus what to do next, so any team could write an error without guessing.
  3. Treated the drift from the design system as part of the same problem, and rebuilt the authentication screens rather than patching copy on top.
Outcome

The first cross platform error messaging framework for the identity suite, shipped across the authentication journeys and credited with cutting drop off in auth flows. I changed roles before the full validation data landed, so the figures in the strip above are scope rather than measured result.

Context & Challenge

Millions of users, zero error strategy.

Identity flows power access, registration, and account management for millions of users at Springer Nature. When they fail, people drop off or call support.

One area had been consistently overlooked: error handling. Messages were written ad hoc by developers. No framework, no consistency, no recovery paths. Users hit a wall with no idea what happened or what to do next.

Something went wrong. But I don't know what, why, or what to do next.

Why this work mattered

Access to research

Errors block access to research. High intent users fail at the moment that matters most.

Account abandonment

Users who fail at registration do not retry. Every dead end is a lost account.

Support costs

Unclear errors generate tickets. Every message without a next step becomes a support call.

User trust

Technical jargon and inconsistent tone erode confidence in the platform itself.

Scope of Ownership

Full audit of error states across login, registration, and account linking
The framework itself: structure, types, tone, and placement
Content system with tone categories mapped to context
Reusable error components handed to the design system team
Before and after redesigns for every critical error flow
Success metrics and the measurement framework behind them
Alignment with PO, QA, Engineering, and Content Design
Realignment of the authentication UI with design system standards

Discovery

This wasn't a content problem.

I audited the error states across the identity journeys and mapped trigger, UI pattern, severity, and recovery gap for each one. What surfaced went well beyond wording.

Screen audit board
Screen audit with UX annotations across authentication journeys. Every error state mapped with trigger conditions, severity, and recovery gaps.

What the audit uncovered

System Logic
Errors exposed system logic, not user intent. "Linked to a different account" is accurate from a database perspective. For a user trying to access a paper at 11pm, it's meaningless.
Prevention
Preventable errors weren't prevented. Users reached failure states the system could have caught earlier with inline validation or pre-checks.
Dead Ends
No recovery paths. No next steps, no links, no guidance. Errors were walls, not decision points.
Consistency
No consistent patterns, and forms had drifted from the design system. Errors appeared as inline text, banners, dialogs, or silent redirects. Several screens were built before the design system matured, creating fragmented UI and brand representation.
Error audit table
Error audit table. Each row documents a specific error with trigger, current UI, severity, preventability, and proposed recommendation.
How do we design a system that helps users recover from errors, not just encounter them?

Solution

A scalable error handling framework.

Before proposing anything I agreed success metrics with the Product Owner: error frequency, form abandonment, recovery rate, and support ticket volume. That tied the work to outcomes from the start, and it is the reason this was never treated as a copy exercise.

[What happened] + [Why it happened] + [What to do next]
Type 01
Inline Validation
Field level errors caught in real time. Directive tone. Prevents submission of bad data before it happens.
Type 02
In-Page Status
Banner or callout within the page. Used for system issues, session problems, or errors that span multiple fields.
Type 03
Full Page Error
Complete failure states. Used sparingly. Always includes a recovery path and a clear next action.
Before and after: analysing a bad error message and proposing an improved structure
Analysing an existing error message: why it fails, and the proposed content structure with clear headline, explanation, and recovery actions.

Tone matched to context

ScenarioDirectiveNeutralEmpathetic
Empty fieldPlease fill out this field to continue.This field is required.Looks like this one was missed.
Server errorTry again in a few minutes or contact support.We're unable to process your request right now.Something went wrong on our end. We're on it.
Login failureCheck your email and password, then try again.We couldn't log you in.That didn't work. Let's try again.

Guidelines established

Error UI Components

Clear rules for when to use inline validation, in-page banners, or full page error states.

Illustration Usage

When illustrations add value (empty states, major errors) and when they distract from the message.

Dismissible Banners

When banners should be dismissible, when they shouldn't, and how to handle user dismissal.

Multiple Banners

How multiple error messages coexist on one page. Priority, visual hierarchy, and stacking rules.

Visual Consistency

Standardised colours, icons, font styles, and message tone across all error states.

Prevention Patterns

Opportunities to catch issues before they become errors. Inline guidance, pre-checks, and smart defaults.

Transformation

From dead ends to guided flows.

The biggest shift was not better words. It was turning passive errors into active recovery, so every dead end became a decision point.

Before and after: login error recovery
Login error: vague system message → clear recovery with password reset
Before and after: service error page
Service error: technical jargon and mascot → human explanation with next step
Before and after: email validation
Email validation: cryptic system syntax → simple, actionable field error
Before and after: account conflict resolution
Account conflict: opaque dead end → guided resolution with context

Collaboration

Built with the team, not in isolation.

This was not a solo exercise. Product prioritised by frequency and support impact, QA surfaced real scenarios, engineers flagged constraints, and Content Design refined the tone.

Product
Priorities & Metrics
Which errors to fix first, based on frequency and support ticket volume.
QA & Engineering
Real Scenarios
Edge cases, technical constraints, and trigger conditions that don't show up in design tools.
Content & Design System
Clarity & Scale
Content Design sharpened the tone. The Design System team made fixes reusable.

Realigning with the Design System

The audit showed that many authentication flows had drifted from the design system, so I used the work to realign forms, components, and layouts, adding patterns where they were missing. The error handling did not ship as isolated fixes. It shipped inside authentication journeys that finally represented the brand consistently.

Outcome

What we shipped

The framework shipped across the identity suite with tracking in place from day one, and it cut drop off in the auth flows. I changed roles before the full validation set came in, so what follows is what shipped rather than a final measured result.

Standardised error system
One framework covering message structure, error types, tone, and placement, applicable across every authentication journey.
Recovery over dead ends
Errors became guided flows. Users always have a next step, not just a red message.
Design system contribution
Reusable error components, banner hierarchy rules, and dismissible pattern specs handed to the system team. Authentication screens were rebuilt to match the current system, bringing brand representation into line for the first time.
Measurement framework
Recovery rate, form abandonment, error frequency, and support ticket correlation, defined and instrumented before launch.
Content tone system
Directive, neutral, and empathetic tone mapped to context, so teams can write an error without guessing the voice.

Learnings

What I carried forward

Errors are core journeys, not edge cases

A confusing error seen by a million users is a million moments of frustration. Treat error states with the same care as success states.

Good UX is recovery design

What happens when things break is where trust is built or lost.

Systems thinking scales

A framework any team can apply beats a one-off redesign. This didn't fix 16 errors. It gave the team a way to handle every future error consistently.

Measure before you design

Defining success metrics before proposing solutions made the work defensible. Without that, this would have been seen as a content polish.

Designing for failure isn't about handling errors. It's about making sure users can still succeed.