---
schema_version: "1"
id: 0a2ed18a786804f379955a02bd1ae302156e677d6459cd67f8e2336391ba5740
title: Controlling Version Propagation
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-sdk/latest/forward-compatibility-enforcement.md
canonical_url: https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-enforcement
source_site: docs.mulesoft.com
content_type: documentation
content_hash: bd9ecd896c9c4b8a64dec0d6cbcf53e94d419cd9addde71b160de706be427883
description: MuleSoft Documentation Site
release: "1.13"
latest: true
---
---
product: Mule SDK
version: 1.13
is-latest-version: true
keywords: mule, sdk, forward compatibility, DoNotEnforceMinMuleVersion, version propagation
---

# Controlling Version Propagation

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

By default, when a component uses an SDK API, it inherits that API’s minimum Mule version
requirement. However, some APIs are designed to enhance functionality without affecting runtime
compatibility, and in some cases you can override this inheritance behavior using the
`@DoNotEnforceMinMuleVersion` annotation.

## APIs That Don’t Affect Minimum Mule Version

Some SDK APIs are annotated with `@DoNotEnforceMinMuleVersion`, which means using them doesn’t raise
your component’s minimum Mule version. These are typically APIs that:

- Provide design-time enhancements (sample data, metadata)

- Add semantic information for tooling (semantic terms, display annotations)

- Enable optional features that degrade on earlier Mule runtime versions

For example, annotations like `@SampleData`, `@DisplayName`, and semantic annotations such as `@Url`
or `@Password` don’t affect your component’s minimum Mule version, even though they were introduced
in specific runtime versions.

## Prevent Version Propagation

Consider using `@DoNotEnforceMinMuleVersion` to prevent version propagation if:

- You use a newer API but provide equivalent fallback behavior for earlier Mule runtime versions

- You use runtime version checking to conditionally enable features (see
  [Forward Compatibility Patterns](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-patterns))

- The API you’re using is optional and its absence doesn’t break core functionality

Do not use this annotation to lower your component’s minimum Mule version without implementing
proper fallback behavior. Doing so can cause runtime errors when users deploy to earlier Mule
runtime versions.

### Prevent Version Propagation With @DoNotEnforceMinMuleVersion

Some SDK APIs automatically raise your component’s minimum Mule version when used. If you’ve
implemented fallback behavior for earlier Mule runtime versions, use `@DoNotEnforceMinMuleVersion`
to prevent version propagation.

```java
import org.mule.sdk.api.annotation.DoNotEnforceMinMuleVersion;
import org.mule.sdk.api.annotation.param.Parameter;

public class MyOperations {

  public void myOperation(@DoNotEnforceMinMuleVersion @Parameter SomeNewType input) {
    // This parameter type requires Mule 4.12.0, but we have fallback logic
    // so we don't want it to raise the operation's Minimum Mule Version
  }
}
```

> [!IMPORTANT] Don’t use this annotation if you haven’t verified that your component works correctly
> on earlier Mule runtime versions. If the component depends on the API being fully functional,
> don’t suppress version propagation.

## See Also

- [Working with Minimum Mule Versions](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-min-mule-version)

- [Forward Compatibility Patterns](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility-patterns)

- [SDK Forward Compatibility](https://docs.mulesoft.com/mule-sdk/latest/forward-compatibility)
