Skip to main content

Version 9.1.260.2 (Support Release - 15 October 2026)

Event Scheduling

Fix event scheduling calendar infinite-height scrolling (#157675)

Problem

  • When zooming in on the calendar (or on smaller screens), the calendar view would sometimes go into infinite vertical height growth.

Solution

  • Decouple the calendar’s container height from its internal content sizing to prevent resize feedback loops while preserving responsive layouts.


Imports

Implement robust bulk populate when retrieving existing job profiles based on externalid, job code and title (#156374)

Problem

  • When passing parameters by position, each parameter can only be referenced once at Dapper within ListJobProfilesByIdentifiersQuery

Solution

  • Refactor the ListJobProfilesByIdentifiersQueryHandler to improve how job profile identifiers are loaded into the database for querying. The main change is replacing the previous string concatenation approach with a more robust and efficient use of a DataTable and SqlBulkCopy, which should improve performance and security when handling large batches of identifiers.


Performance Management

Resolved Action Plan integration event not triggering (#157414)

Problem

  • The integration consumer event was not defined; it was never executed to send a request to create a PDP within V8

Solution

  • Added missing definition and consumer to trigger


System Access

Prevent Redis subscription delays from blocking authentication (#157410)

Problem

  • The Redis logout-notification listener subscribed synchronously in its constructor. When Redis was slow, or the subscription stalled, authentication requests queued behind the shared service's construction lock.

Solution

  • Start the subscription asynchronously in a hosted background service so requests can resolve the service without waiting for Redis.
  • Log subscription failures through `ISignifyLogger` and retry after five seconds. Remove the previous handler before retrying to avoid duplicate notifications.
  • Only report the subscription as available after it succeeds. Ignore a late completion if the connection failed or shutdown started while subscribing.
  • Mark the listener unavailable and abort tracked SignalR connections when its subscription connection fails. Await subscription cleanup during shutdown and log cleanup failures.