From 098b771747e8f9f5a79537384ecde4aae2f5a502 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 17 Nov 2025 13:20:26 -0800 Subject: [PATCH 1/2] fix: throw error instead of exiting process --- packages/db-d1-sqlite/src/connect.ts | 2 +- packages/db-mongodb/src/connect.ts | 2 +- packages/db-postgres/src/connect.ts | 2 +- packages/db-sqlite/src/connect.ts | 2 +- packages/db-vercel-postgres/src/connect.ts | 2 +- packages/drizzle/src/transactions/beginTransaction.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/db-d1-sqlite/src/connect.ts b/packages/db-d1-sqlite/src/connect.ts index 753b075a97c..4fbe9f9f0f7 100644 --- a/packages/db-d1-sqlite/src/connect.ts +++ b/packages/db-d1-sqlite/src/connect.ts @@ -51,7 +51,7 @@ export const connect: Connect = async function connect( this.rejectInitializing() } console.error(err) - process.exit(1) + throw new Error(`Error: cannot connect to SQLite: ${message}`) } // Only push schema if not in production diff --git a/packages/db-mongodb/src/connect.ts b/packages/db-mongodb/src/connect.ts index e9b02a6bff9..25d15cf4610 100644 --- a/packages/db-mongodb/src/connect.ts +++ b/packages/db-mongodb/src/connect.ts @@ -108,6 +108,6 @@ export const connect: Connect = async function connect( err, msg, }) - process.exit(1) + throw new Error(`Error: cannot connect to MongoDB: ${msg}`) } } diff --git a/packages/db-postgres/src/connect.ts b/packages/db-postgres/src/connect.ts index 49236862492..3a16d3045e4 100644 --- a/packages/db-postgres/src/connect.ts +++ b/packages/db-postgres/src/connect.ts @@ -108,7 +108,7 @@ export const connect: Connect = async function connect( if (typeof this.rejectInitializing === 'function') { this.rejectInitializing() } - process.exit(1) + throw new Error(`Error: cannot connect to Postgres: ${err.message}`) } await this.createExtensions() diff --git a/packages/db-sqlite/src/connect.ts b/packages/db-sqlite/src/connect.ts index e56e16dfc75..aa439d8e316 100644 --- a/packages/db-sqlite/src/connect.ts +++ b/packages/db-sqlite/src/connect.ts @@ -36,7 +36,7 @@ export const connect: Connect = async function connect( if (typeof this.rejectInitializing === 'function') { this.rejectInitializing() } - process.exit(1) + throw new Error(`Error: cannot connect to SQLite: ${message}`) } // Only push schema if not in production diff --git a/packages/db-vercel-postgres/src/connect.ts b/packages/db-vercel-postgres/src/connect.ts index d74f00c265b..42ef76fa867 100644 --- a/packages/db-vercel-postgres/src/connect.ts +++ b/packages/db-vercel-postgres/src/connect.ts @@ -90,7 +90,7 @@ export const connect: Connect = async function connect( if (typeof this.rejectInitializing === 'function') { this.rejectInitializing() } - process.exit(1) + throw new Error(`Error: cannot connect to Postgres: ${err.message}`) } await this.createExtensions() diff --git a/packages/drizzle/src/transactions/beginTransaction.ts b/packages/drizzle/src/transactions/beginTransaction.ts index 8a0ad8deeb6..7aa8b0a4ccd 100644 --- a/packages/drizzle/src/transactions/beginTransaction.ts +++ b/packages/drizzle/src/transactions/beginTransaction.ts @@ -59,7 +59,7 @@ export const beginTransaction: BeginTransaction = async function beginTransactio } } catch (err) { this.payload.logger.error({ err, msg: `Error: cannot begin transaction: ${err.message}` }) - process.exit(1) + throw new Error(`Error: cannot begin transaction: ${err.message}`) } return id From 0337106056031ab15f599ebe51ed72c3d0eee09e Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 17 Nov 2025 14:20:28 -0800 Subject: [PATCH 2/2] safety --- packages/payload/src/index.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/payload/src/index.ts b/packages/payload/src/index.ts index 840efd11a5b..39d82b8a1e8 100644 --- a/packages/payload/src/index.ts +++ b/packages/payload/src/index.ts @@ -1127,12 +1127,12 @@ export const getPayload = async ( return cached.payload } - if (!cached.promise) { - // no need to await options.config here, as it's already awaited in the BasePayload.init - cached.promise = new BasePayload().init(options) - } - try { + if (!cached.promise) { + // no need to await options.config here, as it's already awaited in the BasePayload.init + cached.promise = new BasePayload().init(options) + } + cached.payload = await cached.promise if (