Skip to content

Commit 2fab4e3

Browse files
committed
fix: variant existence logic for no default value
Signed-off-by: Rahul Baradol <[email protected]>
1 parent 1da834f commit 2fab4e3

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import dev.openfeature.sdk.ProviderEvent;
2323
import dev.openfeature.sdk.Reason;
2424
import dev.openfeature.sdk.Value;
25-
import dev.openfeature.sdk.exceptions.FlagNotFoundError;
2625
import dev.openfeature.sdk.exceptions.GeneralError;
2726
import dev.openfeature.sdk.exceptions.ParseError;
2827
import dev.openfeature.sdk.exceptions.TypeMismatchError;
@@ -205,10 +204,13 @@ private <T> ProviderEvaluation<T> resolve(Class<T> type, String key, EvaluationC
205204
// check variant existence
206205
Object value = flag.getVariants().get(resolvedVariant);
207206
if (value == null) {
208-
if (resolvedVariant.isEmpty()) {
209-
String message = String.format("no default variant found in flag with key %s", key);
210-
log.debug(message);
211-
throw new FlagNotFoundError(message);
207+
if (resolvedVariant.isEmpty() && flag.getDefaultVariant().isEmpty()) {
208+
return ProviderEvaluation.<T>builder()
209+
.reason(Reason.ERROR.toString())
210+
.errorCode(ErrorCode.FLAG_NOT_FOUND)
211+
.errorMessage("Flag '" + key + "' has no default variant defined, will use code default")
212+
.flagMetadata(getFlagMetadata(storageQueryResult))
213+
.build();
212214
}
213215

214216
String message = String.format("variant %s not found in flag with key %s", resolvedVariant, key);

0 commit comments

Comments
 (0)