@@ -3,13 +3,15 @@ package dev.openfeature.kotlin.sdk.multiprovider
33import dev.openfeature.kotlin.sdk.EvaluationContext
44import dev.openfeature.kotlin.sdk.FeatureProvider
55import dev.openfeature.kotlin.sdk.ProviderEvaluation
6+ import dev.openfeature.kotlin.sdk.Reason
7+ import dev.openfeature.kotlin.sdk.exceptions.ErrorCode
68import dev.openfeature.kotlin.sdk.exceptions.OpenFeatureError
79
810/* *
911 * A [MultiProvider.Strategy] similar to the [FirstMatchStrategy], except that errors from evaluated
1012 * providers do not halt execution.
1113 *
12- * If no provider successfully responds, it throws an error result.
14+ * If no provider successfully responds, it returns an error result.
1315 */
1416class FirstSuccessfulStrategy : MultiProvider .Strategy {
1517 override fun <T > evaluate (
@@ -40,6 +42,11 @@ class FirstSuccessfulStrategy : MultiProvider.Strategy {
4042
4143 // No provider returned a successful result, throw an error
4244 // This indicates that all providers either failed or had errors
43- throw OpenFeatureError .GeneralError (" No provider returned a successful evaluation for the requested flag." )
45+ return ProviderEvaluation (
46+ value = defaultValue,
47+ reason = Reason .DEFAULT .toString(),
48+ errorCode = ErrorCode .FLAG_NOT_FOUND ,
49+ errorMessage = " No provider returned a successful evaluation for the requested flag."
50+ )
4451 }
4552}
0 commit comments