[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. 馃珫 Status page with uptime monitoring & API monitoring as code 馃珫 openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor

Add timeouts to checker requests to prevent hanging (#2379) master

* fix(server): prevent unhandled fetch rejections from crashing instances The no-wait monitor run path left its checker fetches unawaited with no rejection handler; on Deno an unhandled rejection terminates the process, which killed instances mid-request (fly-proxy 'connection closed before message completed'), triggered a restart storm, and hit the Fly machines API rate limit during the 07/13 incident. - attach .catch to the fire-and-forget checker fetches in the no-wait run path - add a global unhandledrejection handler in serve.ts as a safety net - bound every checker fetch with AbortSignal.timeout so slow checks can't pin API request concurrency - remove unused random-promise.ts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0194CxKUxCoK3AgrUaqCLi9Y * fix(db): align selectMonitorSchema timeout prefault with ms column default The column stores milliseconds (default 45000) but the schema prefault was 45, so any monitor object exercising the fallback got a ~45ms budget. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0194CxKUxCoK3AgrUaqCLi9Y * chore: re-run CI (flaky ListStatusPages offset test) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0194CxKUxCoK3AgrUaqCLi9Y --------- Co-authored-by: Claude <noreply@anthropic.com>


+52 -17
8 changed files