Back to articles
Graceful Shutdown in Node.js: Stop Dropping Requests During Deploys (2026 Guide)

Graceful Shutdown in Node.js: Stop Dropping Requests During Deploys (2026 Guide)

via Dev.to JavaScriptYoung Gao

Graceful Shutdown in Node.js: Stop Dropping Requests Your server gets a SIGTERM. It dies immediately. In-flight requests get 502s. Here is how to shut down properly. The Basic Pattern import http from " http " ; let isShuttingDown = false ; const server = http . createServer ( app ); async function gracefulShutdown ( signal : string ) { isShuttingDown = true ; server . close (); const timeout = setTimeout (() => process . exit ( 1 ), 30000 ); await Promise . all ([ closeDatabase (), closeRedis (), flushLogs ()]); clearTimeout ( timeout ); process . exit ( 0 ); } process . on ( " SIGTERM " , () => gracefulShutdown ( " SIGTERM " )); process . on ( " SIGINT " , () => gracefulShutdown ( " SIGINT " )); Health Check During Shutdown app . get ( " /health " , ( req , res ) => { if ( isShuttingDown ) return res . status ( 503 ). json ({ status : " shutting_down " }); res . json ({ status : " healthy " }); }); Returning 503 tells the load balancer to stop sending new traffic. What to Clean Up St

Continue reading on Dev.to JavaScript

Opens in a new tab

Read Full Article
2 views

Related Articles