From fb0b0d14f832a632bc7f98d61d7b4893225e8017 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 09:56:57 +0000 Subject: [PATCH 1/2] Fix crash when invited proposal query returns no rows --- apps/backend/src/datasources/postgres/ProposalDataSource.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/backend/src/datasources/postgres/ProposalDataSource.ts b/apps/backend/src/datasources/postgres/ProposalDataSource.ts index de29890a80..99810afa23 100644 --- a/apps/backend/src/datasources/postgres/ProposalDataSource.ts +++ b/apps/backend/src/datasources/postgres/ProposalDataSource.ts @@ -1435,6 +1435,6 @@ export default class PostgresProposalDataSource implements ProposalDataSource { }) .where('invite_id', inviteId); - return proposals ? createInvitedProposalObject(proposals[0]) : null; + return proposals?.[0] ? createInvitedProposalObject(proposals[0]) : null; } } From 33426ebf9065bf4491695a05cdc2ebda4fa35bc6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 11:52:10 +0000 Subject: [PATCH 2/2] Refactor getInvitedProposal to use .first() per review suggestion --- .../src/datasources/postgres/ProposalDataSource.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/backend/src/datasources/postgres/ProposalDataSource.ts b/apps/backend/src/datasources/postgres/ProposalDataSource.ts index 99810afa23..fa940b486f 100644 --- a/apps/backend/src/datasources/postgres/ProposalDataSource.ts +++ b/apps/backend/src/datasources/postgres/ProposalDataSource.ts @@ -1419,7 +1419,7 @@ export default class PostgresProposalDataSource implements ProposalDataSource { } async getInvitedProposal(inviteId: number): Promise { - const proposals: InvitedProposalRecord[] | undefined = await database + return await database .select( 'proposals.proposal_id', 'proposer.firstname as proposer_name', @@ -1433,8 +1433,10 @@ export default class PostgresProposalDataSource implements ProposalDataSource { .join('users as proposer', { 'proposals.proposer_id': 'proposer.user_id', }) - .where('invite_id', inviteId); - - return proposals?.[0] ? createInvitedProposalObject(proposals[0]) : null; + .where('invite_id', inviteId) + .first() + .then((proposal: InvitedProposalRecord | undefined) => + proposal ? createInvitedProposalObject(proposal) : null + ); } }