@@ -17,13 +17,25 @@ import * as EmailClient from "./init/email-client";
1717import { init as initFirebaseAdmin } from "./init/firebase-admin" ;
1818import { createIndicies as leaderboardDbSetup } from "./dal/leaderboards" ;
1919import { createIndicies as blocklistDbSetup } from "./dal/blocklist" ;
20- import { createIndicies as connectionsDbSetup } from "./dal/connections" ;
2120import { getErrorMessage } from "./utils/error" ;
21+ import { exit } from "process" ;
2222
2323async function bootServer ( port : number ) : Promise < Server > {
2424 try {
2525 Logger . info ( `Starting server version ${ version } ` ) ;
2626 Logger . info ( `Starting server in ${ process . env [ "MODE" ] } mode` ) ;
27+
28+ process . on ( "unhandledRejection" , ( err ) => {
29+ const isDbError =
30+ err instanceof Error && / E C O N N R E F U S E D .* 2 7 0 1 7 / i. test ( err . message ) ;
31+ if ( isDbError ) {
32+ Logger . error ( "Failed to connect to database, ignore error" ) ;
33+ } else {
34+ Logger . error ( "Unhandled rejection: " + getErrorMessage ( err ) ) ;
35+ exit ( - 1 ) ;
36+ }
37+ } ) ;
38+
2739 Logger . info ( `Connecting to database ${ process . env [ "DB_NAME" ] } ...` ) ;
2840 await db . connect ( ) ;
2941 Logger . success ( "Connected to database" ) ;
@@ -77,9 +89,6 @@ async function bootServer(port: number): Promise<Server> {
7789 Logger . info ( "Setting up blocklist indicies..." ) ;
7890 await blocklistDbSetup ( ) ;
7991
80- Logger . info ( "Setting up connections indicies..." ) ;
81- await connectionsDbSetup ( ) ;
82-
8392 recordServerVersion ( version ) ;
8493 } catch ( error ) {
8594 Logger . error ( "Failed to boot server" ) ;
0 commit comments