Skip to main content

Demo 52

Next.js server action missing await

A server action can return success before persistence finishes if async work is started but not awaited.

fully simulatedcurated scenariodoes not execute real code
Short answer

The key output order is revalidate profile -> return ok. The mutation promise is created, but the action does not wait for it before returning.

Real-world bug this helps solve

A production symptom appears first: flaky tests, stale state, slow UI, late cleanup, or growing memory. This causes stale pages, early success toasts, lost errors, and confusing production logs in Next.js apps.

Common wrong assumption

Forgetting that server actions still need await for real dependencies.

Fix direction

Fix the root scheduling, cleanup, or concurrency pattern instead of adding arbitrary waits.

Fixed code pattern
try {
  await operation();
} finally {
  cleanup();
}
Visual proof

The console lane proves the visible order: revalidate profile -> return ok. The active line and queues show why source order changed.

How to verify in a real app

Reproduce the symptom with a small test, apply the safer pattern, then verify the flaky, slow, or leaking behavior disappears.

Share
Loading visual timeline...

Related cases

Continue with nearby confusion while the mental model is fresh.

Recommended next

Was this clear?

This stays local for now. It helps you track where the product still needs sharper cases.

Send detail