Version 9.1.234 (15 June 2026)
People Management
Fixing 0px width on modal data table (#150848)
Problem
- Table headings are rendered in a 0px-wide div.
- This causes them to become unreadable.
Solution
- Recalculate the data table width after loading data to prevent this issue from occurring.
Updating NoticePeriod type to decimal (#148364)
Problem
- The Notice Period field does not allow decimal values to be saved. Users should be able to enter values such as 0.5 for two weeks and 0.25 for one week.
Solution
- Updated the NoticePeriod data type from integer to decimal and configured the frontend number input to support decimal step values.
Add materialise interaction for new user created (#150725)
Problem
- When a new user registers or is created, they are not added to the all people group
Solution
- Call the materialisation service for the new user to be added to all people
Replacing position filter with job title filter on advanced search (#149108)
Problem
- Request to update the position filter to a job search filter.
Solution
- Updating the advanced search multi-select to have job titles and not positions.
- Updating search functions and queries to also filter on job title instead of position.
Communication Portal
Fixing incorrect join (#150862)
Problem
- Query joins the user table with HrProcessRequestApprovalFiles table, userid = username
Solution
- Fix the join so that it is done on username to username
Learning Management
Auto-save only V8-imported marks (#150858)
Problem
- When a teacher opens the marksheet, the system automatically imports any new scores that came across from V8 and saves them.
- Today, auto-save also re-saves every other mark on the sheet, even marks that didn't change.
- The business rule for this feature is "only auto-save the marks received from learner records" - everything else on the sheet should be left alone until a person clicks Save.
Solution
- The auto-save now sends only the marks that V8 actually imported, and only for the students those marks belong to.
- Marks that already existed in V9 are left untouched.
Performance Management
Ensure Activities, Measures, Ratings subsections are hidden on ratings modal when empty (#150987)
Problem
- When a KPI has no activities, measures or ratings, the subheaders for the items still display.
Solution
- Ensure that when either has no data, the header is not shown
Data Warehouse
Added custom step to remove certain Performance Management DWH data (#149539)
Problem
- Certain V9 Performance Management data needs to be removed from the DWH
Solution
- Added a custom step to remove certain Performance Management DWH data
System Access
Improve the auth sign-out when accessing the system with a support URL or when the refresh token expires, and the user is not allowed to continue (#139977)
Problem
- Reusing the support URL does not sign the user session out, but just continues on the previous session.
- Using the support login Microsoft Auth sometimes redirects the user to signify login rather than authenticating on Microsoft.
- When the refresh token expires, the user is not properly signed out, and the session persists indefinitely
- When the user is signed out, the SignalR hub generates a lot of errors due to the session not existing, and the user ID claim could not be determined.
Solution
- SupportLogin
- fix form submission so the clicked provider button is preserved — track submitter, use form.requestSubmit when available, and add hidden-input fallback; also, minor JS variable cleanup.
- AuthorizationController
- centralise sign-out logic into SignOutExpiredSessionAsync (sign out SignInManager, OpenIddict scheme and delete Identity.AuthenticationProvider cookie) and replace direct HttpContext.SignOutAsync calls when handling expired/missing sessions.
- AppController
- Set the impersonation cookie explicitly to "True" and perform an OpenID Connect sign-out with a redirect back to Home instead of a simple HttpContext.SignOutAsync.
- Ensure that when a support URL is used, the user starts with a clean session.
- UserNotificationHub
- guard group add/remove calls with an authenticated check to avoid operating for unauthenticated users.
- Misc
- remove unused System.Globalization usings and reorders/adjusts using directives in affected Identity pages.
Content Management
Fix: Image Compression does not work as an API (#140481)
Problem
- Image compression does not work for API requests, and the client gets unauthorised even though the API request was sent with a bearer token with the correct header.
Solution
Ruleset Management
Resolve issue where deleted People Groups are still considered part of Menu Item Target Audience (#150039)
Problem
- When a People Group is linked to a menu item and that People Group is then deleted, the menu item shows no linked TA, but the menu is not displayed for any users.
Solution
- Excluded deleted People Groups when retrieving menu item-linked target audience People Groups.