From 3c8f8212208758768db3c04a04666637559a0ddc Mon Sep 17 00:00:00 2001 From: Md Junaed Hossain <169046794+junaed-optimizely@users.noreply.github.com> Date: Thu, 4 Sep 2025 01:18:01 +0600 Subject: [PATCH 1/2] [FSSDK-11837] legacy api adjustment with key null support in deccide --- .../OptimizelyUserContextTest.cs | 17 +++++++++++++++++ OptimizelySDK/Optimizely.cs | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/OptimizelySDK.Tests/OptimizelyUserContextTest.cs b/OptimizelySDK.Tests/OptimizelyUserContextTest.cs index 21ae10db..49b3a903 100644 --- a/OptimizelySDK.Tests/OptimizelyUserContextTest.cs +++ b/OptimizelySDK.Tests/OptimizelyUserContextTest.cs @@ -405,6 +405,23 @@ public void DecideInvalidFlagKey() Assert.IsTrue(TestData.CompareObjects(decision, decisionExpected)); } + [Test] + public void DecideNullFlagKey() + { + var user = Optimizely.CreateUserContext(UserID); + user.SetAttribute("browser_type", "chrome"); + + var decisionExpected = OptimizelyDecision.NewErrorDecision( + null, + user, + DecisionMessage.Reason(DecisionMessage.FLAG_KEY_INVALID, "null"), + ErrorHandlerMock.Object, + LoggerMock.Object); + var decision = user.Decide(null); + + Assert.IsTrue(TestData.CompareObjects(decision, decisionExpected)); + } + [Test] public void DecideWhenConfigIsNull() { diff --git a/OptimizelySDK/Optimizely.cs b/OptimizelySDK/Optimizely.cs index 23483360..56fd2d0c 100644 --- a/OptimizelySDK/Optimizely.cs +++ b/OptimizelySDK/Optimizely.cs @@ -870,6 +870,13 @@ OptimizelyDecideOption[] options ErrorHandler, Logger); } + if (key == null) + { + return OptimizelyDecision.NewErrorDecision(key, user, + DecisionMessage.Reason(DecisionMessage.FLAG_KEY_INVALID, "null"), + ErrorHandler, Logger); + } + var allOptions = GetAllOptions(options). Where(opt => opt != OptimizelyDecideOption.ENABLED_FLAGS_ONLY). ToArray(); @@ -930,6 +937,7 @@ internal Dictionary DecideForKeys(OptimizelyUserCont foreach (var key in keys) { var flag = projectConfig.GetFeatureFlagFromKey(key); + if (flag.Key == null) { decisionDictionary.Add(key, From d9e48e032de16616d96b71cb325f09ca7a1f630e Mon Sep 17 00:00:00 2001 From: Md Junaed Hossain <169046794+junaed-optimizely@users.noreply.github.com> Date: Thu, 4 Sep 2025 01:23:13 +0600 Subject: [PATCH 2/2] [FSSDK-11837] space removal --- OptimizelySDK/Optimizely.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/OptimizelySDK/Optimizely.cs b/OptimizelySDK/Optimizely.cs index 56fd2d0c..bf70dafb 100644 --- a/OptimizelySDK/Optimizely.cs +++ b/OptimizelySDK/Optimizely.cs @@ -937,7 +937,6 @@ internal Dictionary DecideForKeys(OptimizelyUserCont foreach (var key in keys) { var flag = projectConfig.GetFeatureFlagFromKey(key); - if (flag.Key == null) { decisionDictionary.Add(key,