Version 9.1.254.5 (Support Release - 22 September 2026)
Ruleset Management
Resolve virtual tour that always displays regardless of display setting (#156183)
Problem
- Even though the virtual tour for Learning Management is set to "Do not show", users still get the virtual tour displayed.
Solution
- Resolve virtual tour that always displays regardless of display setting
- There is currently an issue with Virtual Tours where, if the tour is set to “Do not show” but has no slides configured for the current ruleset, it defaults to the Virtual Tour configured for User Ruleset 1.
- Added a null check on the VirtualTourSlides IsDeleted field to fill cteVirtualToursBase even if there are no slides for the current ruleset.
People Management
Allow termination reason to be optional when terminating a user's active appointment (#155351)
Problem
- Terminating a user's active appointment always required a termination reason ID.
- When terminating by username with a termination reason name that didn't match exactly one active reason for the ruleset, the API rejected the request outright instead of allowing the termination to proceed without a reason.
Solution
- `TerminateUserActiveAppointmentCommand.TerminateReasonId` is now nullable, matching the already-nullable-ready domain layer (`IUserDomainService.TerminateAppointmentAsync` / `TerminateActiveSecondaryAppointmentAsync`).
- The gRPC `TerminateUserActiveAppointment` handler now treats `reason_for_termination_id == 0` (the proto3 default) as "no reason" and passes `null` through, since real termination reason IDs are DB-generated and start at 1
- `TerminateUserActiveAppointmentByUsername` no longer throws when the termination reason name doesn't match exactly one active reason — it now falls back to no reason and proceeds with the termination.