---
title: Flag Evaluation Results
description: >-
  Understand the values and evaluation details returned by Datadog Feature Flags
  SDKs.
breadcrumbs: Docs > Feature Flags > Concepts > Flag Evaluation Results
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Flag Evaluation Results

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

## Overview{% #overview %}

Datadog Feature Flags SDKs use the [OpenFeature evaluation API](https://openfeature.dev/specification/sections/flag-evaluation/). Each flag evaluation requires your application to provide a default value. If the provider cannot resolve the flag, the SDK returns that value. Detailed evaluation methods also return information such as the resolved variant, resolution reason, and error code.

## Disabled flags{% #disabled-flags %}

OpenFeature defines [`FLAG_NOT_FOUND`](https://openfeature.dev/specification/types/#error-code) for evaluations where the provider cannot find the requested flag in its available configuration. Datadog applies this condition when a flag is missing from the runtime configuration delivered for the selected environment.

When you disable a flag in a Datadog environment, Datadog omits it from the runtime configuration delivered to client-side and server-side SDKs. The provider therefore cannot distinguish a disabled flag from an unknown flag key. Both conditions produce the following detailed evaluation result:

| Field      | Result                                         |
| ---------- | ---------------------------------------------- |
| Value      | The default value supplied by your application |
| Reason     | `ERROR`                                        |
| Error code | `FLAG_NOT_FOUND`                               |
| Variant    | None                                           |

OpenFeature also defines [`DISABLED`](https://openfeature.dev/specification/types/#resolution-reason) as a resolution reason for providers that receive a flag marked as disabled. Because Datadog providers do not receive disabled flags in Datadog-delivered runtime configurations, they return `FLAG_NOT_FOUND` instead of `DISABLED`.

The returned value is the default value from the evaluation call, not the default variant configured in Datadog. No Datadog variant is resolved for a disabled flag.

### Handle disabled flag results{% #handle-disabled-flag-results %}

- Provide a safe default value for every evaluation.
- Avoid writing an error log for every `FLAG_NOT_FOUND` result. Disabled flags can return this code during normal operation; aggregate, sample, or rate-limit these logs instead.
- If your application must distinguish an inactive flag from an unknown key, keep the flag enabled and serve an explicit control or off variant. Inspect the returned variant to identify that state.

## Further reading{% #further-reading %}

Additional helpful documentation, links, and articles:

- [Evaluation Context](https://docs.datadoghq.com/feature_flags/concepts/evaluation_context.md)
- [Targeting Rules and Filters](https://docs.datadoghq.com/feature_flags/concepts/targeting_rules.md)
- [Evaluation Tester](https://docs.datadoghq.com/feature_flags/concepts/evaluation_tester.md)
