diff --git a/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts b/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts index 7e78eb9693..a9a4e5fddf 100644 --- a/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts +++ b/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts @@ -20,9 +20,16 @@ export async function processInputBBReferences( } for (const id of result) { - const user = await cache.user.getUser(id) - if (!user) { - throw new InvalidBBRefError(id, FieldSubtype.USER) + try { + const user = await cache.user.getUser(id) + if (!user) { + throw new InvalidBBRefError(id, FieldSubtype.USER) + } + } catch (err: any) { + if (err != null && err.status === 404 && err.error === "not_found") { + throw new InvalidBBRefError(id, FieldSubtype.USER) + } + throw err } } break diff --git a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts index efc9805ef3..748bc7efb6 100644 --- a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts +++ b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts @@ -43,6 +43,11 @@ describe("bbReferenceProcessor", () => { it("throws an error given an invalid id", async () => { const userId = generator.guid() + mockedCacheGetUser.mockRejectedValue({ + status: 404, + error: "not_found", + }) + await expect( processInputBBReferences(userId, FieldSubtype.USER) ).rejects.toThrowError(new InvalidBBRefError(userId, FieldSubtype.USER))