> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# 3.5.6

> Canton 3.5.6 release notes.

# Release of Canton 3.5.6

Canton 3.5.6 has been released on June 24, 2026.

## Summary

This is a maintenance release that fixes an exceptional severe bug around logical synchronizer upgrades and brings a few improvements.

## What’s New

### Minor Improvements

* Connection pool metrics:
  * Add a `psid` label, populated if it is provided when connecting. This should be the case starting from the second connection to a synchronizer, or upon LSU.
  * Close the `connection-health` and `subscription-health` metrics associated to the `psid` when the pool is closed, instead of closing all the existing ones when the pool is started.
* Updated com.google.protobuf libs from 3.25.5 --> 3.25.9
* LSU: A call to `AcknowledgeSigned` with a timestamp before the upgrade time returns immediately, without any acknowledgement being done.
* Fix JDBC query for computing last activations: Under adverse conditions (data corruption) this query might called with empty inputs where it would have failed execution with PostgreSQL server version 14.
* (Potentially) *BREAKING*: Aggregatable submissions are now rejected eagerly to preserve bandwidth.
  This means that the submission error code `SEQUENCER_AGGREGATE_SUBMISSION_ALREADY_SENT` may now also
  be returned during the synchronous submission of the sequencer, as the state of the aggregation is also
  checked before ordering. In addition, the gRPC error code has been modified from `FAILED_PRECONDITION` to
  `ALREADY_EXISTS` to better reflect the nature of the error. Clients should be updated to handle this error
  code accordingly. Due to backwards compatibility, the old gRPC error code will be returned for PV35 and
  before on the async path, and the new capability must only be turned on when all nodes have been
  upgraded to a Canton version that supports this change. The new capability can be disabled using `canton.sequencers.seq.parameters.enable-reject-delivered-aggregations-on-pv-35 = []`
  for mediators. This can be combined with the new configuration option of the mediator `canton.mediators.mymediator.parameters.delayed-verdict-sender.enabled = false`.
  Generally, the sequencer will send out the verdict after reaching the threshold. All subsequent sent verdicts are thrown away. The new option now allows threshold + extra verdicts to be sent immediately, while the rest of the mediators will wait a short amount of time. This allows to reduce the load on the sequencer by 30%, creating more capacity for other transactions.
* Fixed an issue that prevent external parties from being allocated on a participant with an offline root key via the Ledger API's `PartyManagementService.AllocateExternalParty` endpoint.
* Fixed an issue whereby the sequencer would no longer make progress after a failed write. Sequencers in such a state now report 'liveness' unhealthy.
* Require Participant Admin (not just IDP Admin) permissions in order to be able to grant CanReadAsAnyParty and CanExecuteAsAnyParty rights to users.

## Bugfixes

### (26-004, High): LSU: Missing synchronization between topology local copy and purging

#### Issue Description

Because of the lack of synchronization, it can happen that topology purging kicks in before the local copy of the topology state is finished, which result in incorrect topology state for the successor.

The issue can occur only when topology purging is enabled, which is not the case by default.

#### Affected Deployments

Participant nodes

#### Affected Versions

All versions before 3.5.6

#### Impact

Topology fork

#### Symptom

* Participant nodes issues warning/errors about missing topology transactions that were valid before the LSU.
* Submission of a transaction is rejected because of missing topology transactions that were valid before the LSU.

#### Workaround

Restore from backup and ensure topology purging is disabled

#### Likeliness

Exceptional

#### Recommendation

Upgrade to 3.5.6

## Compatibility

The following Canton protocol versions are supported:

| Dependency               | Version |
| ------------------------ | ------- |
| Canton protocol versions | 34, 35  |

Canton has been tested against the following versions of its dependencies:

| Dependency   | Version                                                                                                                                                                                                   |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java Runtime | OpenJDK 64-Bit Server VM (build 21.0.12+2-nixos, mixed mode, sharing)                                                                                                                                     |
| Postgres     | Recommended: PostgreSQL 17.10 (Debian 17.10-1.pgdg13+1) – Also tested: PostgreSQL 14.23 (Debian 14.23-1.pgdg13+1), PostgreSQL 15.18 (Debian 15.18-1.pgdg13+1), PostgreSQL 16.14 (Debian 16.14-1.pgdg13+1) |
