From 8799e6e05086805cfe0d415649eae2b23e9eff67 Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Fri, 13 Mar 2026 08:40:36 +0100 Subject: [PATCH 1/2] fix(browser-sdk): lower bulk queue failure logging --- packages/browser-sdk/package.json | 2 +- packages/browser-sdk/src/bulkQueue.ts | 4 ++-- packages/browser-sdk/test/bulkQueue.test.ts | 20 ++++++++++++++++++- .../openfeature-browser-provider/package.json | 4 ++-- packages/react-sdk/package.json | 4 ++-- packages/vue-sdk/package.json | 4 ++-- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/browser-sdk/package.json b/packages/browser-sdk/package.json index 06ad9048..1ea8b94e 100644 --- a/packages/browser-sdk/package.json +++ b/packages/browser-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@reflag/browser-sdk", - "version": "1.4.6", + "version": "1.4.7", "packageManager": "yarn@4.1.1", "license": "MIT", "repository": { diff --git a/packages/browser-sdk/src/bulkQueue.ts b/packages/browser-sdk/src/bulkQueue.ts index 3c605319..df95bbd9 100644 --- a/packages/browser-sdk/src/bulkQueue.ts +++ b/packages/browser-sdk/src/bulkQueue.ts @@ -151,7 +151,7 @@ export class BulkQueue { try { res = await this.sendBulk(batch); } catch (error) { - this.logger?.error("bulk request failed; dropping batch", { + this.logger?.debug("bulk request failed; dropping batch", { error, batchSize: batch.length, }); @@ -190,7 +190,7 @@ export class BulkQueue { !this.lastDropErrorAt || now - this.lastDropErrorAt >= DROP_ERROR_THROTTLE_MS ) { - this.logger?.error("bulk queue dropped events due to max size", { + this.logger?.debug("bulk queue dropped events due to max size", { droppedEvents: this.droppedSinceLastError, totalDroppedEvents: this.totalDroppedEvents, queueSize: this.queue.length + this.getInFlightBatchSize(), diff --git a/packages/browser-sdk/test/bulkQueue.test.ts b/packages/browser-sdk/test/bulkQueue.test.ts index 5b878859..6a1c4d3f 100644 --- a/packages/browser-sdk/test/bulkQueue.test.ts +++ b/packages/browser-sdk/test/bulkQueue.test.ts @@ -82,13 +82,14 @@ describe("BulkQueue", () => { await vi.advanceTimersByTimeAsync(10); expect(sendBulk).toHaveBeenCalledTimes(1); expect(await queue.size()).toBe(0); - expect(logger.error).toHaveBeenCalledWith( + expect(logger.debug).toHaveBeenCalledWith( "bulk request failed; dropping batch", expect.objectContaining({ error: expect.any(Error), batchSize: 1, }), ); + expect(logger.error).not.toHaveBeenCalled(); }); it("drops 4xx responses, logs error, and does not retry", async () => { @@ -237,9 +238,16 @@ describe("BulkQueue", () => { resolveSend = resolve; }), ); + const logger = { + debug: vi.fn(), + info: vi.fn(), + warn: vi.fn(), + error: vi.fn(), + }; const queue = new BulkQueue(sendBulk, { flushDelayMs: 10_000, maxSize: 2, + logger, }); await queue.enqueue(userEvent); @@ -249,6 +257,16 @@ describe("BulkQueue", () => { expect(await queue.size()).toBe(2); expect(sendBulk).toHaveBeenCalledTimes(1); expect(sendBulk).toHaveBeenCalledWith([userEvent, companyEvent]); + expect(logger.debug).toHaveBeenCalledWith( + "bulk queue dropped events due to max size", + expect.objectContaining({ + droppedEvents: 1, + totalDroppedEvents: 1, + queueSize: 2, + maxSize: 2, + }), + ); + expect(logger.error).not.toHaveBeenCalled(); resolveSend?.(new Response("", { status: 200 })); }); diff --git a/packages/openfeature-browser-provider/package.json b/packages/openfeature-browser-provider/package.json index 9c3da16c..6b21e125 100644 --- a/packages/openfeature-browser-provider/package.json +++ b/packages/openfeature-browser-provider/package.json @@ -1,6 +1,6 @@ { "name": "@reflag/openfeature-browser-provider", - "version": "1.3.4", + "version": "1.3.5", "packageManager": "yarn@4.1.1", "license": "MIT", "repository": { @@ -35,7 +35,7 @@ } }, "dependencies": { - "@reflag/browser-sdk": "1.4.6" + "@reflag/browser-sdk": "1.4.7" }, "devDependencies": { "@openfeature/core": "1.5.0", diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json index 8301639b..3587dedc 100644 --- a/packages/react-sdk/package.json +++ b/packages/react-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@reflag/react-sdk", - "version": "1.4.6", + "version": "1.4.7", "license": "MIT", "repository": { "type": "git", @@ -37,7 +37,7 @@ } }, "dependencies": { - "@reflag/browser-sdk": "1.4.6" + "@reflag/browser-sdk": "1.4.7" }, "peerDependencies": { "react": "*", diff --git a/packages/vue-sdk/package.json b/packages/vue-sdk/package.json index d94a6090..98a0b591 100644 --- a/packages/vue-sdk/package.json +++ b/packages/vue-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@reflag/vue-sdk", - "version": "1.3.4", + "version": "1.3.5", "license": "MIT", "repository": { "type": "git", @@ -35,7 +35,7 @@ } }, "dependencies": { - "@reflag/browser-sdk": "1.4.6" + "@reflag/browser-sdk": "1.4.7" }, "peerDependencies": { "vue": "^3.0.0" From a9cb284acca46d279b7f08d4f7e22fbf40225c08 Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Fri, 13 Mar 2026 08:43:45 +0100 Subject: [PATCH 2/2] chore: update lockfile for browser SDK version bumps --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index cd8c368f..28ae735e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5688,7 +5688,7 @@ __metadata: languageName: node linkType: hard -"@reflag/browser-sdk@npm:1.4.6, @reflag/browser-sdk@workspace:packages/browser-sdk": +"@reflag/browser-sdk@npm:1.4.7, @reflag/browser-sdk@workspace:packages/browser-sdk": version: 0.0.0-use.local resolution: "@reflag/browser-sdk@workspace:packages/browser-sdk" dependencies: @@ -5829,7 +5829,7 @@ __metadata: dependencies: "@openfeature/core": "npm:1.5.0" "@openfeature/web-sdk": "npm:^1.3.0" - "@reflag/browser-sdk": "npm:1.4.6" + "@reflag/browser-sdk": "npm:1.4.7" "@reflag/eslint-config": "npm:0.0.2" "@reflag/tsconfig": "npm:0.0.2" "@types/node": "npm:^22.12.0" @@ -5906,7 +5906,7 @@ __metadata: version: 0.0.0-use.local resolution: "@reflag/react-sdk@workspace:packages/react-sdk" dependencies: - "@reflag/browser-sdk": "npm:1.4.6" + "@reflag/browser-sdk": "npm:1.4.7" "@reflag/eslint-config": "npm:^0.0.2" "@reflag/tsconfig": "npm:^0.0.2" "@testing-library/react": "npm:^15.0.7" @@ -5966,7 +5966,7 @@ __metadata: version: 0.0.0-use.local resolution: "@reflag/vue-sdk@workspace:packages/vue-sdk" dependencies: - "@reflag/browser-sdk": "npm:1.4.6" + "@reflag/browser-sdk": "npm:1.4.7" "@reflag/eslint-config": "npm:^0.0.2" "@reflag/tsconfig": "npm:^0.0.2" "@types/jsdom": "npm:^21.1.6"