> For the complete documentation index, see [llms.txt](https://docs.xplatform.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xplatform.com/release-notes/3.16/3.16.41/solace-3.16.40.md).

# Solace 3.16.40

<mark style="color:green;">Release Date: Monday, August 24, 2026</mark>

## Compatibility Notes

The following issues have compatibility implications:

* [SOLACE-49 - ICR StandaloneReceiver crash in \_solClient\_smfParse on shutdown](#solace-49)

## Change Summary

* [Improvement](#improvement)
  * [SOLACE-44 - Warning when closing a solace based discovery connection](#solace-44)
* [Bug](#bug)
  * [SOLACE-49 - ICR StandaloneReceiver crash in \_solClient\_smfParse on shutdown](#solace-49)

## Improvements <a href="#improvement" id="improvement"></a>

### SOLACE-44 <a href="#solace-44" id="solace-44"></a>

<mark style="color:orange;">Warning when closing a solace based discovery connection</mark>

This release fixes an issue in which a Solace based discovery connection logs a warning indicating SOLCLIENT\_SUBCODE\_CANNOT\_BLOCK\_IN\_CONTEXT

## Bugs <a href="#bug" id="bug"></a>

### SOLACE-49 <a href="#solace-49" id="solace-49"></a>

<mark style="color:orange;">ICR StandaloneReceiver crash in \_solClient\_smfParse on shutdown</mark>

An ICR Standalone Receiver could crash during a clean shutdown. The crash occurred inside the Solace client library, in `_solClient_smfParse`.

You are affected if you use the Solace binding for inter-cluster replication and have seen a receiver process die on shutdown. The crash typically left the final shutdown message unacknowledged, so it was often noticed the following morning instead: DR startup could fail with an unexpected transactionId error reported by the primary.

This has been fixed. No configuration change is required on upgrade.

A `disconnect()` method has been added to the `ISolSession` interface, symmetric with the existing `connect()`. Custom implementations of that interface, if any exist, will need to provide it.

{% hint style="warning" %}
**Compatibility Notes**

**Areas of Impact**: None

A `disconnect()` method has been added to the `ISolSession` interface, symmetric with the existing `connect()`. The bindings supplied with the platform implement it, so no action is required for normal use. A custom implementation of `ISolSession`, if one exists, must provide the method before it will compile against this release.

**The JNI (CCSMP) binding requires a matching native library.** The fix adds a `nativeDisconnect` JNI entry point, which is provided by the native library rather than by the Solace jar. Solace 3.16.40 must therefore be paired with the native release that carries that entry point. X Platform 3.16.41 ships native 3.16.87 and satisfies this automatically. Deployments that pin the native library independently must upgrade it alongside the Solace binding; the native library shipped with X Platform 3.16.39 does not provide the entry point, and the JNI binding will not link against it. The Java (JCSMP) binding is unaffected.

See [Solace Binding - Session Lifecycle](/talon/concepts-and-architecture/messaging-model/solace-binding.md#session-lifecycle).
{% endhint %}
