From 02da9b1d34690535f51ed86370972e522047741d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Thu, 16 Nov 2023 12:03:27 +0100 Subject: [PATCH] fix: handle concurrent service account updates (#5349) --- src/lib/db/access-store.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/lib/db/access-store.ts b/src/lib/db/access-store.ts index 28ed039973..e4ed66c868 100644 --- a/src/lib/db/access-store.ts +++ b/src/lib/db/access-store.ts @@ -468,11 +468,14 @@ export class AccessStore implements IAccessStore { roleId: number, projectId?: string, ): Promise { - return this.db(T.ROLE_USER).insert({ - user_id: userId, - role_id: roleId, - project: projectId, - }); + await this.db(T.ROLE_USER) + .insert({ + user_id: userId, + role_id: roleId, + project: projectId, + }) + .onConflict(['user_id', 'role_id', 'project']) + .ignore(); } async removeUserFromRole(