From dc66c6c1ee709496cd491df42e50f311c9ddd640 Mon Sep 17 00:00:00 2001 From: pulak-opti Date: Mon, 3 Jun 2024 17:07:44 +0600 Subject: [PATCH] recover from panic in CreateUserContext method --- pkg/client/client.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 8c411b23..9f29beda 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -115,7 +115,14 @@ type OptimizelyClient struct { // CreateUserContext creates a context of the user for which decision APIs will be called. // A user context will be created successfully even when the SDK is not fully configured yet. -func (o *OptimizelyClient) CreateUserContext(userID string, attributes map[string]interface{}) OptimizelyUserContext { +func (o *OptimizelyClient) CreateUserContext(userID string, attributes map[string]interface{}) (userContext OptimizelyUserContext) { + defer func() { + if r := recover(); r != nil { + o.logger.Error("recovered panic in CreateUserContext: %v", r) + userContext = OptimizelyUserContext{} + } + }() + if o.OdpManager != nil { // Identify user to odp server o.OdpManager.IdentifyUser(userID)