Skip to content
CCPEDIAby Unity Nodes
ReleasesCanton 2.9.7

Canton 2.9.7

This is a maintenance release that fixes one medium severity issue which prevents migration of contracts with keys via ACS export / import. Please update if affected.

  • The latest release in the 2.9 line.
  • Newest Canton: Canton 3.6.4

Canton 2.9.7 has been released on April 14, 2025. You can download the Daml Open Source edition from the Daml Connect Github Release Section. The Enterprise edition is available on Artifactory. Please also consult the full documentation of this release.

Summary

This is a maintenance release that fixes one medium severity issue which prevents migration of contracts with keys via ACS export / import. Please update if affected.

Bugfixes

(25-004, Medium): RepairService contract import discards re-computed contract keys in the repaired contract

Issue Description

The repair service re-computes contract metadata when adding new contracts. However, instead of repairing the contract with the re-computed keys, it re-uses the keys from the input contract. Combined with a gap in the console macros which do not propagate contract keys during ACS export, migrating contracts with keys in that way can result in an inconsistency between the ACS and contract key store, which crashes the participant when attempting to fetch a contract by key.

Affected Deployments

Participant nodes.

Affected Versions

  • 2.10.0
  • 2.9.0-2.9.6
  • 2.8.x

Impact

Contracts with keys cannot be used after migration via ACS export / import.

Symptom

The participant crashes with "java.lang.IllegalStateException: Unknown keys are to be reassigned. Either the persisted ledger state corrupted or this is a malformed transaction" when attempting to lookup a contract by key that has been migrated via ACS export / import

Workaround

No workaround available. Update to 2.9.7 if affected.

Likeliness

Deterministic if migrating contracts with keys using ACS export to an unpatched version.

Recommendation

Upgrade to 2.9.7 if affected by this issue.

Compatibility

The following Canton protocol versions are supported:

DependencyVersion
Canton protocol versions5

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

DependencyVersion
Java RuntimeOpenJDK 64-Bit Server VM Zulu11.72+19-CA (build 11.0.23+9-LTS, mixed mode)
PostgresRecommended: PostgreSQL 12.22 (Debian 12.22-1.pgdg120+1) – Also tested: PostgreSQL 11.16 (Debian 11.16-1.pgdg90+1), PostgreSQL 13.20 (Debian 13.20-1.pgdg120+1), PostgreSQL 14.17 (Debian 14.17-1.pgdg120+1), PostgreSQL 15.12 (Debian 15.12-1.pgdg120+1)
Oracle19.20.0