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
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.