Version 9.1.179 (1 September 2025) Identity and Authorisation Login Report - Not recording reset password login data (#135574) Problem The following pages did not record login successes or failures: - Confirm Account Creation - Continue Registration - Disclaimer: When logging in, the disclaimer is required - External Login: When logging in with a non-existent user with the 3rd party login - Login with Recovery Code - Registration - Reset Password    Solution Added the missing logging functionality in the backend   Learningstore redirect givesan  error when logging into V10 (#135006) Problem When signing in via the learning store, the we're sorry screen appears. This is caused by the redirect code, which expires one month after creation.    Solution Added logic to ensure it only expires after 10 years. Also added migrations to update existing redirect codes   Imports Payspace: Adda  setting for effective and position effective dates (#135410) Problem For payspace import, some clients make use of PositionEffectiveDate, where others make use of Effective date for start in group data.    Solution Implement a new setting to save accordingly to each connector so that a client can specify as to which one will be needed for the import.   Import Error (#135543) Problem The import error email is not always send to the administrators when Payspace Pull, Payspace Push, Powershell Pull or the Bulk import to V8 fails. When the acctual import after the payrol connector import fails then not email is sent When Code and Name of a org is supplied as empty strings the preimport validation rejects the import incorrectly with the error Org node with code - contains no Org Name; When the Bulk import between V8 and V9 fails then no email is send to the people administrators to be aware of    Solution Change the import to send to the people with the people admin role when 'n backend import for the import types UserDetailsImport, CustomPowershellScriptImport, PaySpacePullImport, PaySpacePushImport, BulkAdditionalServiceImport When a user does the import from the front end only they will receive the error Change prevalidation on org to only require the name when the org code is provided Auto unlock a failed backend bulk V8 import after a period of 2 hours   Bulk Additional Service Import Failed (#135542) Problem When the bulk additional service import is triggered, it includes the appointment history, which is currently not finished implemented in the v8 side. This then causes the import to fail, even if all the others succeeded    Solution Remove the appointment history from the additional service import to not execute for now   User Import: Queue Users for import via the API (#133099) Problem When users are imported via the API, a check is done to see if there is an active report; if so, it stops the newly requested user import    Solution Implement functionality to stage the data and be picked up by the next job process   Payspace changes to correct the appointment dates (#134132) / Birthdays dates incorrect on Main Dashboard timeline(#135175) Problem When pulling dates in Payspace on production, where the server's timezone is UTC dates with an offset return the UTC representation, which is not handled, e.g 1990-03-16T00:00:00+02:00" becomes 1990-03-15 22:00:00.0000000    Solution Ensure the offset is parsed as the same date without the time component, e.g. 1990-03-16T00:00:00+02:00" becomes 1990-03-16 00:00:00.0000000   People Management Inactive Positions (Not Published) are not being accounted for correctly by the system. (#126723) Problem When terminating an employee from the grid view on the people management index page, the "Keep position active" flag was not honoured, but always true.    Solution Fix the MDBSwitch to bind value using checked instead of value, and fix keepPositionActive property name (the name of React was different from the one returned from the API)   People Management: Admin Access to Profile Fields (#135626) Problem The 'Assets' heading in people management does not update when the user changes the text on the frontend.   Solution There was no translation added, and the text "ASSETS" was hardcoded. Simply added the existing matching translation   [Filter]: Default to Active Tab (#135477) Problem The default filter view in the ManagePeople tab is "All" and needs to be "Active"    Solution Changed the default to "Active"   Rename 'Manage People' (#135211) Problem The 'Manage People' button requires renaming to 'View/Edit People', including the tooltip.    Solution Rename the 'Manage People' English translations to 'View/Edit People'.   Display the correct Pop-up modal text (#135482) Problem Bug on translations displaying incorrectly. Issue is resolved, translations resources generated on master. The size of the help modal is too small.    Solution Updated modal size, translations already working.   No Close button on the Pop-up modal (#135483) Problem The "Not finding the person" help modal had no close button. (Can click on the modal to close)    Solution Added a close button.   Late Coming Warning on HRIS (#135379) Problem When adding a new user transgression, it displays inactive transgressions/outcomes    Solution Only return active transgressions/outcomes.   System Access Employee appointment/termination error (#134571) Problem Once a user has been added/terminated, the Redis cache is cleared, and a new call is made to materialize data as well as repopulate the user roles for the signed in user. Thus, after adding or terminating the user, the call is made to the Respective service to fetch the needed data, which requires the role of the user who is signed in, and because the roles are busy populating again, the error is thrown, which is caused by a 401 - Unauthorised    Solution Implement a check within the /Edit path view, which the signed-in user is redirected to after they have added or terminated the user, to wait for half a second, and should the error of unauthenticated state be received and try once more.   Assessment Builder Online Marking: Investigate (#135561) Problem When the ink annotation is clicked, it sets the pdf viewers state, where the user can draw, they do then need to click again to create the canvas, this can cause that they need to for each separate canvas be able to click multiple times    Solution Implement a new solution change to create a new canvas after every mouse-up event   Data Warehouse Daily Server Monitoring Checks 2025 (#125159) Problem The package failed on UAT due to the V8 DB, which does not have the UserLog table anymore    Solution Added V8 DB to be excluded within UAT for V8 Login calculations   Discrepancies - Leaver Report (#134926) Problem There are fields required for the Employee Termination Report on the V9 Report Builder    Solution Added fields StartDateInCompany and EndDateInCompany within Users - Added field IsLatestAppointment within Appointments   Remove the join between data sources, People and Learner records (#135282) Problem There are entries within DataSourceJoins that need to be archived    Solution Created a Step that will archive entries within DataSourceJoins if the DataSources have been archived   Audit Security Audit Report (#133313) Problem Audit export breaks sometimes from V8, as the AuditId prop does not always contain a value.    Solution Make the AuditId DTO nullable on the V9 side, to work with null audit IDs from v8 audit data.   Content Management 009 Digital Signing Failed (#135527) Problem Fail notification is sent for each try to sign a document, which caused a lot of emails    Solution Change the fail notification for signing documents to only send when the max retry count is reached.   Notifications Cannot upload images using the uploader (#135366) Problem On the notification template, WYSIWYG editors when you add images to the message body or the system message body, the images do not persist after saving the template.    Solution Store the images server-side for the notification templates to ensure they persist.