---
schema_version: "1"
id: 888f639972f6987d72ccd7601646a3bd610d0ceefd42c8c261eeaf47c121b2ba
title: Mule Runtime Engine 4.12.0 Release Notes
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/release-notes/mule-runtime/mule-4.12.0-release-notes.md
canonical_url: https://docs.mulesoft.com/release-notes/mule-runtime/mule-4.12.0-release-notes
source_site: docs.mulesoft.com
content_type: documentation
content_hash: f4c2bb83f2f256a171f6d2becc5639c2876d3ba6eaf94f5c21cf715337656195
description: MuleSoft Documentation Site
latest: true
---
---
product: Release Notes
version: master
---

# Mule Runtime Engine 4.12.0 Release Notes

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

Mule runtime engine (Mule) is a lightweight integration engine that runs Mule applications and
supports domains and policies.

This version of Mule provides important enhancements and fixes. Deploy all your new and existing
applications to the latest version to benefit from the improvements.

For guidance with the patching process, see
[Apply Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions#apply_patch_updates).

## October 2026

### Fixed Issues

### Patch 4.12.5

The October patch update 4.12.5 addresses regressions in the October patch update 4.12.4.

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><th colspan="2"><p>Mule</p></th></tr><tr><td><div><div><p>A JMS connection that doesn’t use XA transactions no longer logs an error, or fails application initialization, when the application doesn’t declare a bti:transaction-manager.</p></div></div></td><td><div><div><p>W-24443844</p></div></div></td></tr><tr><td><div><div><p>Configuring the DELTA aggregation temporality for metrics export now works when running on CloudHub, CloudHub 2.0, and Runtime Fabric.</p></div></div></td><td><div><div><p>W-24492022</p></div></div></td></tr><tr><td><div><div><p>SLA-based rate limiting policies no longer reject valid client requests because the client is validated twice.</p></div></div></td><td><div><div><p>W-24447995</p></div></div></td></tr></tbody></table>

### Patch 4.12.4

### What’s New

Runtime Manager agent:

- This release of Mule runtime 4.12.4 includes Runtime Manager agent 2.8.5. See
  [Runtime Manager Agent 2.8.5 Release Notes](https://docs.mulesoft.com/release-notes/runtime-manager-agent/runtime-manager-agent-2.8.x-release-notes#2-8-5).

### Fixed Issues

Patch release version: 4.12.4

This patch update addresses these Mule issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>The Log4j library is upgraded to 2.26.1.</p></div></div></td><td><div><div><p>W-24061648</p></div></div></td></tr><tr><td><div><div><p>The Jackson library is upgraded to 2.22.3.</p></div></div></td><td><div><div><p>W-24335732</p></div></div></td></tr><tr><td><div><div><p>The Netty library is upgraded to 4.2.18.Final.</p></div></div></td><td><div><div><p>W-24336011</p></div></div></td></tr><tr><td><div><div><p>The Apache Neethi library is upgraded to 3.2.4.</p></div></div></td><td><div><div><p>W-24335736</p></div></div></td></tr><tr><td><div><div><p>The Spring Framework library is upgraded to 7.0.9.</p></div></div></td><td><div><div><p>W-24232049</p></div></div></td></tr><tr><td><div><div><p>Configuration property placeholder resolution now stops once it exceeds a maximum nesting depth, instead of continuing to recurse through a cyclic or excessively deep reference chain. You can configure the depth limit through the <code>mule.properties.resolution.maxDepth</code> system property, which defaults to 10.</p></div></div></td><td><div><div><p>W-23650198</p></div></div></td></tr><tr><td><div><div><p>Reads from the repeatable streaming buffer are now lock-free when data is already available, reducing thread contention. You can control this behavior by using the <code>mule.repeatableStreaming.lockFreeRead</code> system property.</p></div></div></td><td><div><div><p>W-24012839</p></div></div></td></tr><tr><td><div><div><p>Error-mapping preservation during error propagation can now be enabled through the <code>mule.honourErrorMappingsOnErrorPropagation</code> system property. When enabled, an error whose type was already resolved inside a scope, including any remapping by an error mapping, keeps that resolved type as it propagates out of the scope, instead of reverting to the raw connector error type.</p></div></div></td><td><div><div><p>W-23955755</p></div></div></td></tr><tr><td><div><div><p>OpenTelemetry flow-statistics counters now emit one datapoint per flow, labeled with the <code>mule.flow.name</code> dimension, instead of a single artifact-level total. You can disable this behavior by setting the <code>mule.enable.otel.flow.statistics.detailed</code> system property to <code>false</code>.</p></div></div></td><td><div><div><p>W-23616483</p></div></div></td></tr><tr><td><div><div><p>You can now configure a full request timeout for the HTTP server by using the <code>mule.http.server.fullRequestTimeout</code> system property, in milliseconds. This property is disabled by default.</p></div></div></td><td><div><div><p>W-22040113</p></div></div></td></tr><tr><td><div><div><p>Network information listening ports are now scoped to the Mule process.</p></div></div></td><td><div><div><p>W-24043880</p></div></div></td></tr><tr><td><div><div><p>OpenTelemetry metrics export now supports delta aggregation temporality.</p></div></div></td><td><div><div><p>W-23448781</p></div></div></td></tr><tr><td><div><div><p><code>NullPointerException</code> errors no longer occur when loading the extension model of a connector whose connection provider uses the <code>@ClientCredentials</code> or <code>@AuthorizationCode</code> OAuth annotation with <code>credentialsPlacement</code> configured.</p></div></div></td><td><div><div><p>W-24086656</p></div></div></td></tr><tr><td><div><div><p>Policy logging context is no longer lost when a dynamic Flow Reference resolves to a subflow.</p></div></div></td><td><div><div><p>W-24026465</p></div></div></td></tr><tr><td><div><div><p>The new <code>loggingConfiguration</code> troubleshooting operation helps you diagnose logging configuration issues.</p></div></div></td><td><div><div><p>W-23998256</p></div></div></td></tr><tr><td><div><div><p>The log level for <code>disallowConcurrentExecution</code> messages is changed from WARN to DEBUG, reducing log noise.</p></div></div></td><td><div><div><p>W-24164028</p></div></div></td></tr><tr><td><div><div><p>The OpenTelemetry exporter TLS property <code>mule.openTelemetry.exporter.tls.certificatesStrategy</code> is now properly resolved.</p></div></div></td><td><div><div><p>W-24009827</p></div></div></td></tr><tr><td><div><div><p>On CloudHub 2.0 and Runtime Fabric deployments, container logs exported through OpenTelemetry now correctly use the deployed application’s configured service name, instead of the generic <code>mule-container</code> name.</p></div></div></td><td><div><div><p>W-23734353</p></div></div></td></tr><tr><td><div><div><p>OpenTelemetry flow statistics counters now report total flow counts as well as per-flow totals.</p></div></div></td><td><div><div><p>W-23232729</p></div></div></td></tr><tr><td><div><div><p>The new on-demand <code>connectionCount</code> troubleshooting operation is now available.</p></div></div></td><td><div><div><p>W-23716301</p></div></div></td></tr><tr><td><div><div><p>Client-side read backpressure is now applied to streamed HTTP responses, preventing out-of-memory errors when consuming large response bodies.</p></div></div></td><td><div><div><p>W-24103497</p></div></div></td></tr><tr><td><div><div><p>HTTP/1-only HTTPS listeners backed by the Netty HTTP service no longer fail to establish TLS connections when an application loads the Bouncy Castle JSSE provider from a shared library outside the runtime’s classloader.</p></div></div></td><td><div><div><p>W-23355657</p></div></div></td></tr><tr><td><div><div><p>The Netty-based HTTP client now defers DNS resolution of the target host to the proxy when a proxy is configured, regardless of the configured scheme.</p></div></div></td><td><div><div><p>W-24010245</p></div></div></td></tr><tr><td><div><div><p>A warning is now logged when NTLM authentication is configured but the server doesn’t issue an NTLM challenge.</p></div></div></td><td><div><div><p>W-17651806</p></div></div></td></tr><tr><td><div><div><p>Unresolved placeholders in Batch AST properties no longer cause a <code>ClassCastException</code> during packaging validation.</p></div></div></td><td><div><div><p>W-24088827</p></div></div></td></tr><tr><td><div><div><p>In a clustered deployment, the DiscoverySPI HTTP client no longer fails to start when PCF or Kubernetes discovery is configured through the <code>.mule/mule-cluster.properties</code> file instead of a JVM system property.</p></div></div></td><td><div><div><p>W-24211100</p></div></div></td></tr><tr><td><div><div><p>Fallback is now enabled as the default strategy for contracts collection. You can change this behavior by configuring the <code>anypoint.platform.clients_fetch_mode</code> system property with the values <code>sharded</code>, <code>legacy</code>, or <code>fallback</code>.</p></div></div></td><td><div><div><p>W-24179706</p></div></div></td></tr><tr><td><div><div><p>When API Gateway authenticates with Anypoint Platform, a transient failure of the <code>/login</code> request no longer discards an otherwise valid Access Management token. The token is now invalidated only on an actual authentication failure (401 or 403).</p></div></div></td><td><div><div><p>W-24144244</p></div></div></td></tr><tr><td><div><div><p>Netty’s Java Flight Recorder (JFR) integration is now disabled by default.</p></div></div></td><td><div><div><p>W-20926401</p></div></div></td></tr><tr><td><div><div><p>An omitted <code>eagerRead</code> attribute on <code>&lt;repeatable-in-memory-stream&gt;</code> now correctly takes its default value from the <code>mule.repeatableStreaming.bytes.eagerRead</code> system property, instead of a fixed value.</p></div></div></td><td><div><div><p>W-24043809</p></div></div></td></tr></tbody></table>

There is no DataWeave update for this version.

For guidance with the patching process, see
[Apply Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions#apply_patch_updates).

## September 2026

### What’s New

Runtime Manager agent:

- This release of Mule runtime 4.12.3 includes Runtime Manager agent 2.8.4. See
  [Runtime Manager Agent 2.8.4 Release Notes](https://docs.mulesoft.com/release-notes/runtime-manager-agent/runtime-manager-agent-2.8.x-release-notes#2-8-4).

General improvements:

- The Mule Troubleshooting plugin now includes additional diagnostic sections in the Diagnostic
  Information Analysis File (DIAF). See
  [Mule Troubleshooting Plugin](https://docs.mulesoft.com/mule-runtime/latest/mule-troubleshooting-plugin) for more
  information.

  - Health Signals: Evaluates a small set of fast host- and JVM-level health signals and reports
    those that triggered, including low memory, high CPU steal, and JVM crash logs.

  - Memory Detail: Provides a JVM memory-pool breakdown and garbage-collector statistics, showing
    heap and non-heap usage with metrics such as initial, used, committed, and maximum memory
    values.

  - Known Issues: Scans the runtime logs and deployed applications for well-known problem
    signatures, including out-of-memory conditions, abnormal terminations, and MUnit packaging
    issues.

### Fixed Issues

Patch release version: 4.12.3

This patch update addresses these Mule issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>An <code>&lt;async&gt;</code> scope can now be configured to wait for its in-flight events to finish before flows are stopped during a graceful shutdown, which helps avoid dropped or canceled async work. This behavior is disabled by default and can be enabled through the <code>mule.async.gracefulShutdown.drainInflight</code> system property.</p></div></div></td><td><div><div><p>W-23602447</p></div></div></td></tr><tr><td><div><div><p>An SDK-based reconnectable message source no longer attempts to reconnect while a graceful shutdown is in progress.</p></div></div></td><td><div><div><p>W-23122573</p></div></div></td></tr><tr><td><div><div><p>Custom error mappings in the Tracing module are no longer lost on error propagation when an operation inside a <code>tracing:with-correlation-id</code> scope fails, which previously reverted the mapped error type to the raw connector error.</p></div></div></td><td><div><div><p>W-21815402</p></div></div></td></tr><tr><td><div><div><p>A disposed source policy is no longer left in the policy cache when a flow is stopped and restarted while cache population and flow-stop invalidation occur concurrently.</p></div></div></td><td><div><div><p>W-23564125</p></div></div></td></tr><tr><td><div><div><p>A memory leak no longer occurs when <code>parallel-foreach</code> and <code>scatter-gather</code> routes leave the route event pinned in a worker thread’s memory after route completion.</p></div></div></td><td><div><div><p>W-23829061</p></div></div></td></tr><tr><td><div><div><p>Artifact descriptor validation failures during deployment now report more specific exceptions.</p></div></div></td><td><div><div><p>W-23047228</p></div></div></td></tr><tr><td><div><div><p>A malformed authorization URL no longer occurs when the configured OAuth <code>authorizationUrl</code> contains an existing query parameter.</p></div></div></td><td><div><div><p>W-23064254</p></div></div></td></tr><tr><td><div><div><p>A worker thread no longer hangs indefinitely, eventually exhausting the runtime’s thread pool, when a client drops the connection while its HTTP request body is being read.</p></div></div></td><td><div><div><p>W-23612974</p></div></div></td></tr><tr><td><div><div><p>Netty-based HTTP client requests no longer fail when the response contains a header section larger than 8 KB and a larger response header size limit is configured.</p></div></div></td><td><div><div><p>W-23443375</p></div></div></td></tr><tr><td><div><div><p>DIGEST authentication in the Netty-based HTTP client no longer fails with a 401 Unauthorized response when the server issues an RFC 7616-compliant challenge.</p></div></div></td><td><div><div><p>W-23075291</p></div></div></td></tr><tr><td><div><div><p>A <code>NullPointerException</code> no longer occurs during cluster node discovery when using PCF or Kubernetes-based cluster discovery.</p></div></div></td><td><div><div><p>W-23466789</p></div></div></td></tr><tr><td><div><div><p>Analytics events for requests rejected due to back-pressure are no longer incorrectly reported as HTTP 500 and now correctly report 503 by default. Custom status codes for other error scenarios can also be configured through the <code>anypoint.platform.error.mapping</code> (format <code>NAMESPACE:IDENTIFIER:STATUS_CODE</code>, comma-separated for multiple mappings) and <code>anypoint.platform.error.default</code> system properties.</p></div></div></td><td><div><div><p>W-23509148</p></div></div></td></tr><tr><td><div><div><p>API Gateway no longer fails to read shard checksums from an ETag header that contains commas.</p></div></div></td><td><div><div><p>W-23572494</p></div></div></td></tr><tr><td><div><div><p>The fix for idle connections being destroyed and recreated instead of reused when the number of idle connections reached the configured <code>maxIdle</code> limit under concurrent load, introduced in a previous release, is reverted in this release.</p></div></div></td><td><div><div><p>W-22716456</p></div></div></td></tr><tr><td><div><div><p>The jsoup library is upgraded to 1.23.1.</p></div></div></td><td><div><div><p>W-23671475</p></div></div></td></tr><tr><td><div><div><p>The Netty library is upgraded to 4.2.17.Final.</p></div></div></td><td><div><div><p>W-3300013</p></div></div></td></tr><tr><td><div><div><p>The RAML Parser library is upgraded to 2-1.2.1.</p></div></div></td><td><div><div><p>W-23328350</p></div></div></td></tr><tr><td><div><div><p>The <code>com.mulesoft.mule.runtime.gw.api.analytics</code> package is now open to all modules, so the Runtime Manager agent can serialize analytics events.</p></div></div></td><td><div><div><p>W-23846531</p></div></div></td></tr></tbody></table>

DataWeave 2.12.3 is bundled with the Mule 4.12.3 release. This patch release addresses these
DataWeave issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>You can now configure the size of the DataWeave script parser cache by using the <code>mule.weave.script.parser.cache.size</code> system property.</p></div></div></td><td><div><div><p>W-23138851</p></div></div></td></tr><tr><td><div><div><p>A thread-safety livelock no longer occurs in the Java module builder and converter caches.</p></div></div></td><td><div><div><p>W-23652160</p></div></div></td></tr></tbody></table>

For guidance with the patching process, see
[Apply Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions#apply_patch_updates).

## August 2026

### What’s New

Runtime Manager agent:

- This release of Mule runtime 4.12.2 includes Runtime Manager agent 2.8.3. See
  [Runtime Manager Agent 2.8.3 Release Notes](https://docs.mulesoft.com/release-notes/runtime-manager-agent/runtime-manager-agent-2.8.x-release-notes#2-8-3).

General improvements:

- The Mule Troubleshooting plugin now includes additional diagnostic sections in the Diagnostic
  Information Analysis File (DIAF). See
  [Mule Troubleshooting Plugin](https://docs.mulesoft.com/mule-runtime/latest/mule-troubleshooting-plugin) for more
  information.

  - Network Info: Shows host-level network diagnostics, including the hostname, network interfaces
    with their assigned IP addresses and I/O counters, and active and listening network connections.

  - Agent Info: Reports the installation and health of the Mule agent that pairs the runtime with
    Anypoint Platform, including whether the agent is installed, its version, key configuration
    values, keystore certificate details, and the most recent connection status.

  - Platform Connectivity: Checks TCP connectivity from the Mule runtime host to the Anypoint
    Platform endpoints and dumps the TLS certificate chain presented by the platform.

### Fixed Issues

Patch release version: 4.12.2

This patch update addresses these Mule issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>Lazy initialization no longer fails with a <code>NullPointerException</code> when an application using the VM connector’s publish operation also configures a global error handler.</p></div></div></td><td><div><div><p>W-23156632</p></div></div></td></tr><tr><td><div><div><p>Idle connections are no longer destroyed and recreated instead of being reused when the number of idle connections reaches the configured <code>maxIdle</code> limit under concurrent load.</p></div></div></td><td><div><div><p>W-22716456</p></div></div></td></tr><tr><td><div><div><p>An HTTP request client connecting through a proxy no longer hangs when the proxy responds with a 407 (Proxy Authentication Required) response during the CONNECT tunnel handshake.</p></div></div></td><td><div><div><p>W-23384719</p></div></div></td></tr><tr><td><div><div><p>The HTTP request client now sends a correctly formed request line when connecting through a forward proxy.</p></div></div></td><td><div><div><p>W-23384645</p></div></div></td></tr><tr><td><div><div><p>A <code>NullPointerException</code> no longer occurs when the HTTP request client reuses a pooled connection to a forward proxy.</p></div></div></td><td><div><div><p>W-23384744</p></div></div></td></tr><tr><td><div><div><p>HTTP/3 requests sent to an HTTP/1 server now correctly fail with a 505 (HTTP Version Not Supported) response.</p></div></div></td><td><div><div><p>W-23029577</p></div></div></td></tr><tr><td><div><div><p>Requests with a non-numeric <code>Content-Length</code> header are now rejected with a 400 (Bad Request) response.</p></div></div></td><td><div><div><p>W-23029480</p></div></div></td></tr><tr><td><div><div><p>A batch job no longer fails with a <code>MULE:CANCELLED</code> error during graceful shutdown.</p></div></div></td><td><div><div><p>W-23426859</p></div></div></td></tr><tr><td><div><div><p>Potential errors thrown during runtime shutdown are now handled correctly.</p></div></div></td><td><div><div><p>W-23051939</p></div></div></td></tr><tr><td><div><div><p>The Batch module now provides a public API to configure a custom queue manager and queue timeout.</p></div></div></td><td><div><div><p>W-23371797</p></div></div></td></tr><tr><td><div><div><p>When running in FIPS mode on a standalone server, the runtime now logs a warning at startup if the JVM <code>java.security</code> file isn’t configured with the required FIPS providers, instead of silently masking the misconfiguration.</p></div></div></td><td><div><div><p>W-22794711</p></div></div></td></tr><tr><td><div><div><p>The <code>Sec-WebSocket-Protocol</code> header is now forwarded on outbound WebSocket connections, so subprotocol negotiation with the server succeeds.</p></div></div></td><td><div><div><p>W-23071781</p></div></div></td></tr><tr><td><div><div><p>The Diagnostic Information Analysis File (DIAF) now includes network information.</p></div></div></td><td><div><div><p>W-22383655</p></div></div></td></tr><tr><td><div><div><p>The Diagnostic Information Analysis File (DIAF) now includes Mule agent information.</p></div></div></td><td><div><div><p>W-22383660</p></div></div></td></tr><tr><td><div><div><p>The Diagnostic Information Analysis File (DIAF) now includes a platform connectivity check.</p></div></div></td><td><div><div><p>W-22383679</p></div></div></td></tr><tr><td><div><div><p>The API Gateway resource cache is enabled by default. You can now disable it by setting the <code>anypoint.platform.resource_cache_enabled</code> system property to <code>false</code>.</p></div></div></td><td><div><div><p>W-23542185</p></div></div></td></tr><tr><td><div><div><p>The Jackson library is upgraded to 2.22.0.</p></div></div></td><td><div><div><p>W-23165634</p></div></div></td></tr></tbody></table>

DataWeave 2.12.2 is bundled with the Mule 4.12.2 release. This patch release addresses these
DataWeave issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>The repeated attribute selector (<code>.*@</code>) now correctly preserves values when processing data structures containing empty map slots.</p></div></div></td><td><div><div><p>W-23457314</p></div></div></td></tr><tr><td><div><div><p>Type metadata processing now correctly handles sibling references that target the same type, preventing duplicate annotations.</p></div></div></td><td><div><div><p>W-23424037</p></div></div></td></tr><tr><td><div><div><p>DataWeave now handles Java Platform Module System (JPMS) access restrictions more gracefully when running on Java 17 and later in Mule runtime 4.6.0 and later.</p></div></div></td><td><div><div><p>W-23354139</p></div></div></td></tr><tr><td><div><div><p>The Jackson library is upgraded to 2.21.5.</p></div></div></td><td><div><div><p>W-23037592</p></div></div></td></tr><tr><td><div><div><p>The <code>per_app_java_bean_cache</code> compatibility flag now correctly reports its creation version as 2.9.</p></div></div></td><td><div><div><p>W-22417507</p></div></div></td></tr></tbody></table>

For guidance with the patching process, see
[Apply Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions#apply_patch_updates).

## July 2026

### What’s New

Runtime Manager agent:

- This release of Mule runtime 4.12.1 includes Runtime Manager agent 2.7.16. See
  [Runtime Manager Agent 2.7.16 Release Notes](https://docs.mulesoft.com/release-notes/runtime-manager-agent/runtime-manager-agent-2.7.x-release-notes#2-7-16).

Feature Flagging Mechanism:

- Mule 4.12 incorporates new feature flags. See
  [Feature Flagging Mechanism](https://docs.mulesoft.com/mule-runtime/latest/feature-flagging) for a detailed
  description of each feature flag and configuration instructions.

General improvements:

- The Mule Troubleshooting plugin now includes additional diagnostic sections in the Diagnostic
  Information Analysis File (DIAF). See
  [Mule Troubleshooting Plugin](https://docs.mulesoft.com/mule-runtime/latest/mule-troubleshooting-plugin) for more
  information.

  - System Info: Reports host-level diagnostics including OS details, CPU metrics, memory, and disk
    input and output statistics.

  - JVM Agents: Lists agents attached at JVM startup via `-javaagent`, `-agentpath`, or `-agentlib`
    arguments.

  - Connectors State: Shows connector configuration states, connection pools, errors, and TLS
    details.

  - Cluster Info: Reports clustering configuration and distributed lock diagnostics.

### Fixed Issues

Patch release version: 4.12.1

This patch update addresses these Mule issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>Clustered applications deployed with two or more replicas no longer fail to start with a <code>NullPointerException</code> error during cluster node discovery.</p></div></div></td><td><div><div><p>W-22843942</p></div></div></td></tr><tr><td><div><div><p>Cluster node IDs are no longer generated with negative values.</p></div></div></td><td><div><div><p>W-22294724</p></div></div></td></tr><tr><td><div><div><p>Graceful shutdown no longer times out when a global error handler runs for a flow.</p></div></div></td><td><div><div><p>W-22434375</p></div></div></td></tr><tr><td><div><div><p>Long-running internal tasks no longer use the shared <code>forkJoin</code> pool during parallel flow shutdown and bootstrap configuration, preventing thread starvation.</p></div></div></td><td><div><div><p>W-22279521</p></div></div></td></tr><tr><td><div><div><p>Race conditions in <code>outerFluxCompletionScheduler</code> no longer occur during graceful shutdown.</p></div></div></td><td><div><div><p>W-22343018</p></div></div></td></tr><tr><td><div><div><p>Mule no longer hangs during shutdown when a parameter validation exception occurs during flow execution.</p></div></div></td><td><div><div><p>W-22248534</p></div></div></td></tr><tr><td><div><div><p>Connectivity testing of configurations in clustered deployments no longer uses distributed locks, preventing deadlocks.</p></div></div></td><td><div><div><p>W-22248198</p></div></div></td></tr><tr><td><div><div><p>Fatal errors such as <code>StackOverflowError</code> are now logged instead of being consumed by internal error handling.</p></div></div></td><td><div><div><p>W-22496803</p></div></div></td></tr><tr><td><div><div><p>Object Store retrieved from the registry in <code>OAuthHandler</code> is now properly initialized and started.</p></div></div></td><td><div><div><p>W-22373641</p></div></div></td></tr><tr><td><div><div><p>SDK parameter validation errors now raise the <code>MULE:VALIDATION</code> error type instead of <code>MULE:UNKNOWN</code>.</p></div></div></td><td><div><div><p>W-22276522</p></div></div></td></tr><tr><td><div><div><p><code>ConcurrentModificationException</code> errors no longer occur when multiple plugins with shared dependencies are deployed simultaneously.</p></div></div></td><td><div><div><p>W-21193046</p></div></div></td></tr><tr><td><div><div><p>The error type in the EE cache scope is now correctly reported as <code>MULE:RETRY_EXHAUSTED</code> instead of <code>EE:RETRY_EXHAUSTED</code> when until-successful exhausts its retries.</p></div></div></td><td><div><div><p>W-21525972</p></div></div></td></tr><tr><td><div><div><p>Test Connection for the HTTP listener now correctly reports a failure when an unresolvable hostname is configured in the host field.</p></div></div></td><td><div><div><p>W-21921687</p></div></div></td></tr><tr><td><div><div><p>HTTP Server now supports upgrade requests to h2c even when the request contains a non-empty body.</p></div></div></td><td><div><div><p>W-22506085</p></div></div></td></tr><tr><td><div><div><p>Duplicate XSD elements are no longer generated for connection providers declared at both the extension and configuration levels.</p></div></div></td><td><div><div><p>W-20824537</p></div></div></td></tr><tr><td><div><div><p>Shutdown validation for dynamic configurations can now be skipped by enabling the <code>mule.forcefulShutdown.dynamicConfig.disableStoppingCheck</code> system property.</p></div></div></td><td><div><div><p>W-22772644</p></div></div></td></tr><tr><td><div><div><p>Flows with a scheduler source are no longer left in an invalid state after a flow restart.</p></div></div></td><td><div><div><p>W-22918240</p></div></div></td></tr><tr><td><div><div><p>Stopping a flow no longer waits unnecessarily when no events are being processed.</p></div></div></td><td><div><div><p>W-22969411</p></div></div></td></tr><tr><td><div><div><p>Project versions defined with properties are now resolved recursively.</p></div></div></td><td><div><div><p>W-22845430</p></div></div></td></tr><tr><td><div><div><p>Extension packager validation no longer fails for operations annotated with <code>@Validator</code> that use a <code>CompletionCallback</code> operation.</p></div></div></td><td><div><div><p>W-22817376</p></div></div></td></tr><tr><td><div><div><p>Events that are dropped within a processing hook are now properly completed and terminated.</p></div></div></td><td><div><div><p>W-22470584</p></div></div></td></tr><tr><td><div><div><p>In-memory Object Store partitions are now created correctly when an application is deployed to a cluster with the Object Store plugin enabled.</p></div></div></td><td><div><div><p>W-17714668</p></div></div></td></tr><tr><td><div><div><p>Deserialization errors no longer occur in the Object Store during a runtime patch upgrade.</p></div></div></td><td><div><div><p>W-20880559</p></div></div></td></tr><tr><td><div><div><p>Applications deployed with a serialized AST now include all Mule error types in the error type repository.</p></div></div></td><td><div><div><p>W-22399271</p></div></div></td></tr><tr><td><div><div><p>Applications that use HTTP request attributes no longer fail annotation processing due to default constructor validation.</p></div></div></td><td><div><div><p>W-22385620</p></div></div></td></tr><tr><td><div><div><p>The Netty HTTP listener now rejects <code>HTTP/1.1</code> requests that have a missing or duplicate host header, in compliance with RFC 9112.</p></div></div></td><td><div><div><p>W-23052713</p></div></div></td></tr><tr><td><div><div><p>The maximum size of the dynamic <code>flow-ref</code> cache is now configurable through the <code>mule.flowRef.dynamicCacheMaxSize</code> system property, which defaults to 20.</p></div></div></td><td><div><div><p>W-22219018</p></div></div></td></tr><tr><td><div><div><p>API Gateway contract persistence can now be disabled by setting the <code>anypoint.platform.contracts_persistence_enabled</code> system property to <code>false</code>, avoiding errors when persisting large numbers of contracts.</p></div></div></td><td><div><div><p>W-22568982</p></div></div></td></tr><tr><td><div><div><p>Large Anypoint Platform authentication failure responses no longer cause excessive log bloat.</p></div></div></td><td><div><div><p>W-21882516</p></div></div></td></tr><tr><td><div><div><p>SDK sources that don’t implement <code>Reconnectable</code> are no longer restarted during graceful shutdown.</p></div></div></td><td><div><div><p>W-21563258</p></div></div></td></tr><tr><td><div><div><p>OpenTelemetry flow statistics now report metrics correctly for applications with more than one flow.</p></div></div></td><td><div><div><p>W-23051614</p></div></div></td></tr><tr><td><div><div><p>The artifact type (domain, policy, or application) is now included as an OpenTelemetry resource attribute.</p></div></div></td><td><div><div><p>W-21768636</p></div></div></td></tr><tr><td><div><div><p>OpenTelemetry metric attribute names now use a consistent notation.</p></div></div></td><td><div><div><p>W-21921584</p></div></div></td></tr><tr><td><div><div><p>The <code>mule.openTelemetry.logging.exporter.resource.container.service.name</code> system property is now available to set the service name that the Mule container reports for OpenTelemetry telemetry.</p></div></div></td><td><div><div><p>W-22861497</p></div></div></td></tr><tr><td><div><div><p>Event dumps now include a state for events that are waiting on a non-blocking operation.</p></div></div></td><td><div><div><p>W-22142952</p></div></div></td></tr><tr><td><div><div><p>The Netty library is upgraded to 4.2.15.Final.</p></div></div></td><td><div><div><p>W-22831076</p></div></div></td></tr><tr><td><div><div><p>The c3p0 library is upgraded to 0.14.1.</p></div></div></td><td><div><div><p>W-22990155</p></div></div></td></tr><tr><td><div><div><p>The Bitronix Transaction Manager library is upgraded to 3.0.2.</p></div></div></td><td><div><div><p>W-22405007</p></div></div></td></tr><tr><td><div><div><p>The Reactor Netty library is upgraded to 1.3.6.</p></div></div></td><td><div><div><p>W-3300013</p></div></div></td></tr><tr><td><div><div><p>The Jackson Core library is upgraded to 2.21.1.</p></div></div></td><td><div><div><p>W-22839747</p></div></div></td></tr><tr><td><div><div><p>The Apache Neethi library is upgraded to 3.2.1.</p></div></div></td><td><div><div><p>W-22839752</p></div></div></td></tr><tr><td><div><div><p>The OpenTelemetry API library is upgraded to 1.62.0.</p></div></div></td><td><div><div><p>W-22849469</p></div></div></td></tr><tr><td><div><div><p>The Spring Framework is upgraded to 6.2.19.</p></div></div></td><td><div><div><p>W-22939417</p></div></div></td></tr></tbody></table>

DataWeave 2.12.1 is bundled with the Mule 4.12.1 release. This patch release addresses these
DataWeave issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>Scope resolution errors no longer occur when importing Java classes with self-referential array properties.</p></div></div></td><td><div><div><p>W-22914494</p></div></div></td></tr><tr><td><div><div><p><code>StackOverflowError</code> errors no longer occur when computing or converting type metadata for self-referencing recursive types.</p></div></div></td><td><div><div><p>W-21712344</p></div></div></td></tr></tbody></table>

For guidance with the patching process, see
[Apply Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/patching-mule-versions#apply_patch_updates).

## June 2, 2026

### What’s New

The 4.12.0 version of Mule runtime introduces these enhancements:

OpenTelemetry Direct Telemetry Stream:

- Mule 4.12 adds OpenTelemetry metrics support to Direct Telemetry Stream, including message
  processing, flow inventory, error tracking, runtime alerts, and JVM instrumentation metrics. See
  [OpenTelemetry Support in Mule Runtime](https://docs.mulesoft.com/mule-runtime/latest/otel-support) for a detailed
  description of the feature.

Feature Flagging Mechanism:

- Mule 4.12 incorporates new feature flags. See
  [Feature Flagging Mechanism](https://docs.mulesoft.com/mule-runtime/latest/feature-flagging) for a detailed
  description of each feature flag and configuration instructions.

Runtime Manager agent:

- This release of Mule runtime 4.12.0 includes Runtime Manager agent 2.7.15. See
  [Runtime Manager Agent 2.7.15 Release Notes](https://docs.mulesoft.com/release-notes/runtime-manager-agent/runtime-manager-agent-2.7.x-release-notes#2-7-15).

General improvements:

- To build applications for Mule runtime engine 4.12.0, use Mule Maven Plugin 4.10.0 or later. See
  [Mule Maven Plugin 4.10.0 Release Notes](https://docs.mulesoft.com/release-notes/mule-maven-plugin/mule-maven-plugin-4.10.0-release-notes).

## DataWeave Features

The 2.12.0 version of DataWeave introduces these new features and enhancements:

Scope Visibility:

- DataWeave now supports `private`, `internal`, and `@VisibleTo` annotations for controlling
  directive access. This enables better code encapsulation and visibility management across
  DataWeave modules. See
  [Scope Visibility in DataWeave](https://docs.mulesoft.com/dataweave/latest/dataweave-scope-visibility).

Component Metadata:

- DataWeave introduces `dw::meta::Component` and related component types for working with component
  descriptors. This provides enhanced metadata handling capabilities. See
  [Component (dw::meta::Component)](https://docs.mulesoft.com/dataweave/latest/dw-component) and
  [Component Types (dw::meta::Component)](https://docs.mulesoft.com/dataweave/latest/dw-component-types).

General Improvements:

- The [UNLIMITED\_CONTEXT](https://docs.mulesoft.com/dataweave/latest/dw-math-variables) math variable now has the
  `precision=0` and `roundingMode=HALF_UP` properties.

- The [Maven plugin for DataWeave](https://docs.mulesoft.com/dataweave/latest/dataweave-maven-plugin) now includes
  guidance for configuring cryptographic taint analysis during compilation.

- The [DataWeave extension plugin](https://docs.mulesoft.com/dataweave/latest/dataweave-extension-plugin) now provides
  editor support for scope visibility validation and diagnostics.

- DataWeave incorporates new system properties. See
  [DataWeave System Properties](https://docs.mulesoft.com/dataweave/latest/dataweave-system-properties).

### Fixed Issues

The release addresses these Mule issues and incorporates all patch updates from the 4.11.0 Mule
release through June 2026:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>Upstream HTTP requests are now cancelled when a downstream client disconnects, preventing unnecessary data transfer.</p></div></div></td><td><div><div><p>W-20084343</p></div></div></td></tr><tr><td><div><div><p>The Netty HTTP client no longer throws <code>NullPointerException</code> when handling Expect 100-Continue responses.</p></div></div></td><td><div><div><p>W-21513490</p></div></div></td></tr><tr><td><div><div><p>Sensitive headers are no longer forwarded when an HTTP request is redirected to a different host. This can be configured with <code>FILTER_SENSITIVE_HEADERS_ON_REDIRECT</code>.</p></div></div></td><td><div><div><p>W-21045658</p></div></div></td></tr><tr><td><div><div><p>The Apache CXF library is upgraded to 3.6.8.</p></div></div></td><td><div><div><p>W-20541600</p></div></div></td></tr><tr><td><div><div><p>Cluster encryption now uses the configured algorithm correctly instead of defaulting to Blowfish.</p></div></div></td><td><div><div><p>W-21666905</p></div></div></td></tr><tr><td><div><div><p>Race conditions during policy redeployment that caused Mule to stop processing events permanently no longer occur.</p></div></div></td><td><div><div><p>W-22343705</p></div></div></td></tr><tr><td><div><div><p>Redelivery policy logging now includes additional context for troubleshooting.</p></div></div></td><td><div><div><p>W-20636028</p></div></div></td></tr><tr><td><div><div><p>The Tanuki Java Service Wrapper is upgraded to 3.6.4.</p></div></div></td><td><div><div><p>W-17051070</p></div></div></td></tr><tr><td><div><div><p>The RAML parser is upgraded to 1.1.10.</p></div></div></td><td><div><div><p>W-21768014</p></div></div></td></tr><tr><td><div><div><p>The OpenTelemetry SDK is upgraded to 1.60.1.</p></div></div></td><td><div><div><p>W-21808539</p></div></div></td></tr><tr><td><div><div><p>Persistent ObjectStore or Batch data serialized before a patch upgrade now deserializes correctly after upgrading.</p></div></div></td><td><div><div><p>W-22623626</p></div></div></td></tr><tr><td><div><div><p><code>OutOfMemory</code> errors no longer occur when establishing SSL connections with HTTP endpoints.</p></div></div></td><td><div><div><p>W-22547971</p></div></div></td></tr></tbody></table>

DataWeave 2.12.0 is bundled with the Mule 4.12.0 release. This release addresses these DataWeave
issues:

<table><colgroup><col> <col></colgroup><thead><tr><th>Issue Resolution</th><th>ID</th></tr></thead><tbody><tr><td><div><div><p>DataWeave now supports the <code>private</code> modifier on <code>fun</code>, <code>var</code>, <code>ns</code>, and <code>type</code> declarations to hide them from importers.</p></div></div></td><td><div><div><p>W-21148967</p></div></div></td></tr><tr><td><div><div><p><code>internal</code> is no longer a reserved word and can now be used as an identifier in DataWeave scripts.</p></div></div></td><td><div><div><p>W-21508044</p></div></div></td></tr><tr><td><div><div><p>The compiler now reports an error when overloads of the same function declare different visibility modifiers.</p></div></div></td><td><div><div><p>W-21362539</p></div></div></td></tr><tr><td><div><div><p><code>StackOverflowError</code> no longer occurs in the type checker when resolving intersections of unbound type parameters.</p></div></div></td><td><div><div><p>W-20124753</p></div></div></td></tr><tr><td><div><div><p>Runtime errors no longer occur when invoking overloaded functions across modules.</p></div></div></td><td><div><div><p>W-21811015</p></div></div></td></tr><tr><td><div><div><p>Spurious type-check errors no longer occur when an optional key-value pair is assigned to a required one.</p></div></div></td><td><div><div><p>W-21351058</p></div></div></td></tr><tr><td><div><div><p><code>deferred</code> values passed to the <code>write</code> function now terminate correctly.</p></div></div></td><td><div><div><p>W-20925604</p></div></div></td></tr><tr><td><div><div><p>Out-of-memory errors no longer occur when reading large text or CDATA sections with the indexed XML reader.</p></div></div></td><td><div><div><p>W-21006104</p></div></div></td></tr><tr><td><div><div><p>The Java module bean introspection cache no longer causes memory leaks.</p></div></div></td><td><div><div><p>W-22419118</p></div></div></td></tr></tbody></table>

## Bundled Components

- DataWeave version 2.12.0

- Runtime Manager Agent plugin version 2.7.15

### Upgrade

If you’re upgrading to this version of Mule from an earlier Mule 4.x version, see
[Mule Upgrades and Patch Updates](https://docs.mulesoft.com/release-notes/mule-runtime/mule-esb#mule-upgrades).

To ensure optimal performance with this version of Mule and avoid unexpected issues, update these
modules and extensions to their latest version at the time of this release:

<table><colgroup><col> <col></colgroup><thead><tr><th>Module or Extension</th><th>Version</th></tr></thead><tbody><tr><td><p>APIkit for Mule 4</p></td><td><p>1.11.17</p></td></tr><tr><td><p>APIkit for OData</p></td><td><p>2.4.0</p></td></tr><tr><td><p>APIkit for OData 4</p></td><td><p>1.6.0</p></td></tr><tr><td><p>APIkit for SOAP</p></td><td><p>2.1.0</p></td></tr><tr><td><p>APIkit for GraphQL</p></td><td><p>1.2.0</p></td></tr><tr><td><p>Spring module</p></td><td><p>2.1.2</p></td></tr><tr><td><p>MUnit plugin</p></td><td><p>3.7.1</p></td></tr></tbody></table>

## Considerations for Mule Extension Developers

When you build a Mule extension, if you update the version of your parent `pom.xml` file to 1.4.0 or
later, ensure that the dependencies in your `pom.xml` file don’t override dependencies in the parent
`pom.xml` file. Declare only the dependencies you need. If you declare a dependency that’s already
in the parent `pom.xml` file, don’t specify a version, so that it uses the version from the parent
`pom.xml` file.

## See Also

- [Salesforce Help](https://help.salesforce.com)

- [MuleSoft Services](https://www.mulesoft.com/support-and-services)

- [Mule Troubleshooting Plugin](https://docs.mulesoft.com/mule-runtime/latest/mule-troubleshooting-plugin)

- [Known Issues](https://help.salesforce.com/s/issues)
