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

# Changelog

<Warning>
  From version 6.1.20 onwards, Atoti Sign-Off version numbers are aligned with the Atoti Java SDK. Previously, Atoti Sign-Off used its own versioning scheme which had moved ahead of the Atoti Java SDK. The last release under the old scheme was Atoti Sign-Off 6.2.1.

  Although the version number appears to go backwards, this is not a rollback or downgrade. It reflects the realignment with the Atoti Java SDK release track.
</Warning>

<Info>
  For a brief overview of the changes, see our [Release notes](./release-notes-6.1).
  For information on upgrading from previous versions, see the
  [Migration guide](./migrate-6.1).
</Info>

<Update label="6.1.23" description="2026-07-09">
  ### Changed

  * SO-1110: Loading sign-off definitions no longer scans the workflow audit-log tables once per definition. Their history is now bulk-loaded for the required keys in a bounded number of queries, significantly improving performance when many definitions exist.
  * SO-1122: The return type of `ISignOffWorkflowStatusActionManager::getPendingApprovalTaskStatuses` changed from a `List<String>` to a `Map<String, List<String>>` keyed by workflow type, because the pending-approval status differs per workflow. If you have implemented your own statuses you will need to change the type. See the [migration guide](./migrate-6.1#migrate-atoti-sign-off-6122-to-6123) for details.
  * PIVOT-14106 Improved performance of audit history filtering.

  ### Fixed

  * LIM-2319: Fixed notifications breaking after running for several hours, where streaming the stored notifications for a new subscriber while another thread published could fail with `IllegalStateException: Accept exceeded fixed size`. The notification store is now backed by a concurrent map.
  * SO-1122: Fixed the "Pending Approval" column on the Sign-Off Task Configuration screen always showing `0` for tasks created with the simple workflow. The simple workflow's awaiting-approval state is `INITIATED`, but the count only considered `PENDING` (the awaiting-approval state for four-eyes workflows). Simple-workflow tasks awaiting approval are now counted correctly.
</Update>

<Update label="6.1.22" description="2026-06-18">
  ### Fixed

  * SO-1121: Task-only approvers (users in the workflow instance approvers group but not in the definition `candidateGroups`) no longer receive an HTTP 403 on the SSE subscribe endpoint (`GET /sign-off/rest/v2/sse/subscribe`) or when opening the process task approval window. The dashboard now loads correctly for users who can approve tasks but do not manage definitions.
  * SO-1119: Adjustment execution and deletion failures were silently swallowed, leaving the execution stuck in a non-terminal status (`PENDING`/`DELETING`). Uncaught exceptions are now logged with their stack trace and the execution is marked `FAILED`.
  * SO-1116: Adjustment audit records written by the status poller stored the `executionId` in the `definitionId` field, breaking definition-based audit queries and correlation. The `definitionId` is now persisted correctly.
</Update>

<Update label="6.1.21" description="2026-06-17">
  ### Added

  * SO-1118: `POST /sign-off/rest/v2/adjustments` and `POST /sign-off/rest/v2/adjustment` now return the identifiers of the created adjustments (`id`, `executionId`, and `definitionId`), in request order, so that clients can track the execution status of each adjustment.

  ### Changed

  * SO-1118: `IAdjustmentService::createAdjustment` and `IAdjustmentService::createAdjustments` now return the identifiers of the created adjustments instead of `void`.

  ### Fixed

  * SO-1118: `ISignOffAdjustmentExecutionService::requestAdjustmentExecutionsAndPersistDefinitions` returned an empty list instead of the created adjustment executions.
</Update>

<Update label="6.1.20" description="2026-05-28">
  ### Changed

  Group IDs of dependencies have changed and must be updated. See the [migration guide](./migrate-6.1#migrate-atoti-sign-off-622-back-to-6120) for more details.

  ### Fixed

  * SO-1082: Fixed SignOff task getting stuck at `EXPORTING` due to a race condition where the export status poller could check the workflow instance state before the export details were persisted.
  * SO-1090: JPA rollbacks not being handled correctly.
  * SO-1111 Dashboard: Fixed the dashboard becoming unusable when the Sign-off server is unavailable.
  * SO-1112 Dashboard: Fixed widget type switching not working in the adjustment analysis dashboard.
</Update>
