From df41f81bb6d2db323c23ba3e6183fa9ee5d69cc1 Mon Sep 17 00:00:00 2001 From: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:49:49 -0700 Subject: [PATCH] Add error handling for single poll. --- .../sdk/browser/src/BrowserDataManager.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/sdk/browser/src/BrowserDataManager.ts b/packages/sdk/browser/src/BrowserDataManager.ts index 8bb8aede1..2e535c1ee 100644 --- a/packages/sdk/browser/src/BrowserDataManager.ts +++ b/packages/sdk/browser/src/BrowserDataManager.ts @@ -2,6 +2,7 @@ import { BaseDataManager, Configuration, Context, + DataSourceErrorKind, DataSourcePaths, DataSourceState, FlagManager, @@ -83,10 +84,22 @@ export default class BrowserDataManager extends BaseDataManager { try { this.dataSourceStatusManager.requestStateUpdate(DataSourceState.Initializing); const payload = await requestor.requestPayload(); - const listeners = this.createStreamListeners(context, identifyResolve); - const putListener = listeners.get('put'); - putListener!.processJson(putListener!.deserializeData(payload)); + try { + const listeners = this.createStreamListeners(context, identifyResolve); + const putListener = listeners.get('put'); + putListener!.processJson(putListener!.deserializeData(payload)); + } catch (e: any) { + this.dataSourceStatusManager.reportError( + DataSourceErrorKind.InvalidData, + e.message ?? 'Could not parse poll response', + ); + } } catch (e: any) { + this.dataSourceStatusManager.reportError( + DataSourceErrorKind.NetworkError, + e.message ?? 'unexpected network error', + e.status, + ); identifyReject(e); }