01 · Before and afterThe pattern
// before: logs failure, then carries on (later steps still run)
try { await Promise.all(steps); } catch { report('failed'); }
// after: let every parallel step finish, then fail loudly
const results = await Promise.allSettled(steps);
const bad = results.find(r => r.status === 'rejected') as PromiseRejectedResult | undefined;
if (bad) { report('failed'); throw bad.reason; }
report('succeeded');02 · Run it on your appThe check
In your error-handling refactors, does every catch that reports a failure also rethrow or return an error?
If the honest answer is no or not sure, this is worth a look before it reaches production.