Source code Stability Performance Code quality Security & compliance

Error handling & resilience

What your app does when a dependency stops answering.

Overview

Every outbound call is a place your app can hang or fail silently. lumioguard reads your fetches, database calls, and async boundaries for missing timeouts, swallowed exceptions, and error paths that end nowhere.

What it looks for

  • Exceptions caught and discarded on critical paths
  • Unhandled promise rejections, and awaits with no try/catch
  • No timeout on fetch, HTTP, or database calls
  • No retry, backoff, or circuit breaker around external dependencies
  • process.exit in library code, thrown string literals, and unvalidated route input

Why it matters

A fetch with no timeout does not fail — it holds a worker until the whole pool is gone, which is how one slow third party becomes your outage. A caught-and-ignored exception in a payment path means the money moved and the record did not.

Rules in this check

How the fixes arrive

Pull requestLow-risk changes arrive as a pull request on a lumioguard branch, with a breakage analysis attached. You review and merge it.
GuideChanges only you can make safely arrive as a step-by-step guide you can follow yourself or hand to your coding agent.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.