> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/feature-management-experimentation/use-fme/feature-management/setup/fallback-treatment.md).

# Fallback treatment

### Overview <a href="#overview" id="overview"></a>

Fallback treatments are returned by an FME SDK when your application requests a treatment for a feature flag but the SDK cannot determine the value through normal evaluation.

{% hint style="info" %}
This behavior is defined in the SDK itself and is not configured through the Harness FME UI.
{% endhint %}

Fallback treatments are applicable in the following scenarios:

* The SDK cannot connect to Harness services (for example, due to network failure or missing attributes)
* A feature flag or segment evaluation times out
* The flag evaluation cannot be fetched or cached locally
* The evaluation context is incomplete or invalid for targeting
* An unexpected error occurs during evaluation

### How fallback treatments differ from control treatment <a href="#how-fallback-treatments-differ-from-control-treatment" id="how-fallback-treatments-differ-from-control-treatment"></a>

The [control treatment](/feature-management-experimentation/use-fme/feature-management/setup/control-treatment.md) is a reserved treatment in FME that the SDK returns in cases such as missing flag definitions, initialization is not compete, unsupported targeting rules, or unexpected exceptions.

The fallback treatment, on the other hand, is customizable. You choose what the SDK should return if evaluation cannot be completed (for example, `"off"` or `"old-version"`).

Harness recommends providing a fallback treatment when calling the SDK to ensure a predictable user experience if Harness is unavailable, and using low-risk values (like `"off"`) as fallbacks to reduce exposure risk.

### Global vs. flag-level fallback treatments <a href="#global-vs-flag-level-fallback-treatments" id="global-vs-flag-level-fallback-treatments"></a>

Fallback treatments can be defined **globally** for the entire SDK or **per flag** for more granular control:

* **Global fallback**: Returned whenever any flag cannot be evaluated, unless a flag-level fallback is defined.
* **Flag-level fallback**: Overrides the global fallback for that specific flag, taking precedence when both are defined. This allows you to customize behavior for individual flags without affecting the global default.

For example:

```java
// Global fallback treatment

FallbackTreatmentsConfiguration fallbackTreatmentsConfiguration = new FallbackTreatmentsConfiguration(
    new FallbackTreatment("on-fallback", "{\"prop1\":\"val1\"}"),
    null
);

SplitClientConfig config = SplitClientConfig.builder()
    .fallbackTreatments(fallbackTreatmentsConfiguration)
    .build();

SplitFactory factory = SplitFactoryBuilder.build("YOUR_API_KEY", config);
SplitClient client = factory.client();

// Flag-level fallback treatment
// Overrides the global fallback for the specified flag
FallbackTreatmentsConfiguration flagFallbackConfig = new FallbackTreatmentsConfiguration(
    null,
    new HashMap<String, FallbackTreatment>() {{
        put("FEATURE_FLAG_NAME", new FallbackTreatment("off", "{\"prop2\":\"val2\"}"));
    }}
);

SplitClientConfig clientConfigWithFlagFallback = SplitClientConfig.builder()
    .fallbackTreatments(flagFallbackConfig)
    .build();

SplitFactory factoryWithFlagFallback = SplitFactoryBuilder.build("YOUR_API_KEY", clientConfigWithFlagFallback);
SplitClient clientWithFlagFallback = factoryWithFlagFallback.client();
```

### Supported SDKs for fallback treatments <a href="#supported-sdks-for-fallback-treatments" id="supported-sdks-for-fallback-treatments"></a>

Select an SDK to configure fallback treatments for both client and server applications.

| Android | iOS    | Browser | Flutter | JavaScript | React  | React Native | Java    | Python  | Ruby   | .NET    | Node.js  | Go     |
| ------- | ------ | ------- | ------- | ---------- | ------ | ------------ | ------- | ------- | ------ | ------- | -------- | ------ |
| 5.4.1+  | 3.4.0+ | 1.6.0+  | 1.2.0+  | 11.8.0+    | 2.6.0+ | 1.5.0+       | 4.18.0+ | 10.5.1+ | 8.9.0+ | 7.12.0+ | 11.8.0 + | 6.9.0+ |

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><img src="/files/oWRKBcvYbKBZJMMRBmwI" alt="" data-size="original"></td><td align="center"><strong>Android SDK</strong></td><td><a href="/pages/8AF59NZ2aqPq17XR8ugB#configure-fallback-treatments">/pages/8AF59NZ2aqPq17XR8ugB#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/pL4DiVOsgdh4w7jQ2Txe" alt="" data-size="original"></td><td align="center"><strong>iOS SDK</strong></td><td><a href="/pages/7GUS0j7lBbffwUUTAgvq#configure-fallback-treatments">/pages/7GUS0j7lBbffwUUTAgvq#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/CqaWt0Uy93H5vJ0nFmtJ" alt="" data-size="original"></td><td align="center"><strong>Browser SDK</strong></td><td><a href="/pages/1cFJyht3YZXhzQfQQwLe#configure-fallback-treatments">/pages/1cFJyht3YZXhzQfQQwLe#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/D01mpEtmTHjfjToJj0KA" alt="" data-size="original"></td><td align="center"><strong>Flutter Plugin</strong></td><td><a href="/pages/snGwWXajHlfJW7GDuFNF#configure-fallback-treatments">/pages/snGwWXajHlfJW7GDuFNF#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/pQNKS701qi00prXBdB5T" alt="" data-size="original"></td><td align="center"><strong>JavaScript SDK</strong></td><td><a href="/pages/2W8f1cXqxHpZb3xLL5je#configure-fallback-treatments">/pages/2W8f1cXqxHpZb3xLL5je#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/PliXZnKOzH0SvzaaLkPP" alt="" data-size="original"></td><td align="center"><strong>React SDK</strong></td><td><a href="/pages/avzO8zntoEWOK5ZVqkA3#configure-fallback-treatments">/pages/avzO8zntoEWOK5ZVqkA3#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/PliXZnKOzH0SvzaaLkPP" alt="" data-size="original"></td><td align="center"><strong>React Native SDK</strong></td><td><a href="/pages/foy1cK0LEZ2lp8QguIuf#configure-fallback-treatments">/pages/foy1cK0LEZ2lp8QguIuf#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/enkqAOrD5JqaMZnSLNTI" alt="" data-size="original"></td><td align="center"><strong>Java SDK</strong></td><td><a href="/pages/uwrbv211wAgmTIdyenQD#configure-fallback-treatments">/pages/uwrbv211wAgmTIdyenQD#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="https://developer.harness.io/provider-logos/python-logo.svg" alt="Python SDK"></td><td align="center"><strong>Python SDK</strong></td><td><a href="/pages/sLjI7D2F7J7Fvg1ZKE9g#configure-fallback-treatments">/pages/sLjI7D2F7J7Fvg1ZKE9g#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="https://developer.harness.io/provider-logos/ruby-logo.svg" alt="Ruby SDK"></td><td align="center"><strong>Ruby SDK</strong></td><td><a href="/pages/ZRyRRi2ra4rGRlie7iRQ#configure-fallback-treatments">/pages/ZRyRRi2ra4rGRlie7iRQ#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/pSnfLIeCWIbUqYGIboFk" alt="" data-size="original"></td><td align="center"><strong>.NET SDK</strong></td><td><a href="/pages/AogFQGSeilYEy4E1M6nj#configure-fallback-treatments">/pages/AogFQGSeilYEy4E1M6nj#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/c3dmHQ3MdySv5gHgoLer" alt="" data-size="original"></td><td align="center"><strong>Node.js SDK</strong></td><td><a href="/pages/Ffpw4KXywnonGdBt79yQ#configure-fallback-treatments">/pages/Ffpw4KXywnonGdBt79yQ#configure-fallback-treatments</a></td></tr><tr><td align="center"><img src="/files/iV8qoC0fhM7nzwYPv0W2" alt="" data-size="original"></td><td align="center"><strong>Go SDK</strong></td><td><a href="/pages/9S5EdLJQSGskpM0SkLxH#configure-fallback-treatments">/pages/9S5EdLJQSGskpM0SkLxH#configure-fallback-treatments</a></td></tr></tbody></table>
