fix(server): add global error handlers for uncaught exceptions and unhandled promise rejections (#575)

This commit is contained in:
Corentin Thomasset
2025-10-24 16:05:21 +02:00
committed by GitHub
parent e85403f9a1
commit be25de7721
2 changed files with 50 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
---
"@papra/docker": patch
---
Added global errors handlers

View File

@@ -49,9 +49,52 @@ await registerTaskDefinitions({ taskServices, db, config, documentsStorageServic
taskServices.start();
// Global error handlers
process.on('uncaughtException', (error) => {
logger.error({ error }, 'Uncaught exception');
// Give the logger time to flush before exiting
setTimeout(() => {
process.exit(1);
}, 1000);
});
process.on('unhandledRejection', (error) => {
logger.error({
error,
}, 'Unhandled promise rejection');
// Give the logger time to flush before exiting
setTimeout(() => {
process.exit(1);
}, 1000);
});
// Graceful shutdown handler
process.on('SIGINT', async () => {
server.close();
client.close();
logger.info('Received SIGINT, shutting down gracefully...');
try {
server.close();
client.close();
logger.info('Server shut down successfully');
} catch (error) {
logger.error({ error }, 'Error during shutdown');
}
process.exit(0);
});
process.on('SIGTERM', async () => {
logger.info('Received SIGTERM, shutting down gracefully...');
try {
server.close();
client.close();
logger.info('Server shut down successfully');
} catch (error) {
logger.error({ error }, 'Error during shutdown');
}
process.exit(0);
});