Version 9.1.245 (27 July 2026) People Management Correct permission checks on user profile pages (#152580) Problem The permission checks on a user's profile aren't working correctly depending on whether the user is People Administrator / PG User or editing their own profile.    Solution Corrected the permissions to ensure correct users can action a profile when allowed. Scenario 1 User -> Not people admin, no PG permissions, normal user. Cannot access other users' profiles Own Profile -> Page loads the Product Setup's ESS settings and applies those rules.  Scenario 2 User -> Not people admin, has PG permissions Can view profiles of users on PG -> Page loads the Product Setup's ESS settings -> ALSO uses PG permissions to determine sections available (View / Edit) Own Profile -> Page loads the Product Setup's ESS settings and applies those rules.  Scenario 3 User -> People Admin, WITHOUT Manage Own Data Can access other users' profiles -> Page loads the Product Setup's ADMIN settings OwnProfile -> Page loads the Product Setup's ESS settings and applies those rules.  Scenario 4 User -> People Admin, WITH Manage Own Data Can access other users' profiles -> Page loads the Product Setup's ADMIN settings Own Profile -> Page loads the Product Setup's ADMIN settings and applies those rules.   Add missing page mapper for Help Files (#152472) Problem Page mapping missing for product roles   Solution Add page mapping   Last sync run times (#149383) Problem Users can be created with usernames containing leading and trailing spaces (copy-paste issues), resulting in duplicate users, which can cause sync issues   Solution Ensure when users are created or edited, trim the username to ensure no leading or trailing spaces   Issue with Disabled toggle not being remembered + Type of Disability dropdown not opening (#151668) Problem Issue with Disabled toggle not being remembered + Type of Disability dropdown not opening.   Solution Ensure that the dropdown values display and that when disabling, it clears the selected disabilities Grid view not loading properly (#152084) Problem Grid view sometimes doesn't load all the correct values in the columns (Appointment Date and Location in Org)   Solution Fixed logic that gets appointment date   Help Files: Unique Help Files Required for People Management (#152186) Solution Correction made on event scheduling missing page mappings Added new pageTab to user guides and tours to make it specific to a page tab within a page, for example people management profile on Summary | Profile Tabs   Report Builder Add updated response when adding filter from datasource not yet included on report (#152560) Problem When adding (dragging) a data field to the filters from a datasource that has NOT yet been included on the report (at least one data field is added to the report), a "missing" error is shown, and the loading indicator is not removed from the filters   Solution Improved the error message returned to indicate why the field could not be added to the filters. Ensure that the loading indicator is correctly hidden when filter management fails.   Replace Highcharts with chart.js in V8 (#143430) Problem Highcharts is outdated, and the renewal is too high   Solution Chart.js is already used in V8; replace Highcharts with chart.js First determine impact and provide more accurate effort before continuing with changes   Unable to drag filters onto the Filter pane when more than one data source is added to the Report (#151829) Problem When adding filters after a subsequent data source has been expanded, the data field does not get added to the list of filters and JS console errors are displayed. Found that the event from the jsTree nodes was not correctly working after the initial node expansion and thus not triggering the filter canvas as a drop area and not registering the new item added.   Solution Changed how the dragged node is tracked and determined which node ID to add/remove on the start/end events. Also fixed up the user data source category/source role assignments which resulted in entity tracking conflicts. Also removed the Unit declarations on the request handlers to just return void.   Unable to Generate Curl file (#151656) Problem Cannot export curl for subreport Subreport is also not restricted to Active People Group.   Solution Replicate functionality from Report view to Subreport view to allow choosing people group to run subreport for. Also replicated missing curl functionality. Report authorisation was also missing; added this.   Virtual Tours Unable to view Learning Portal Virtual Tour (#152244) Problem Virtual tours on AdditionalService pages could use the previous page’s product context, so the wrong tour was checked and nothing was displayed.    Solution Determine the product from the current AdditionalService URL first, using explicit menu-key mappings, before falling back to the previous page context.   User remains on top of the page when a new slide is opened, instead of being taken to the new slide (#152210) Problem User remains on top of the page when a new slide is opened, instead of being taken to the new slide   Solution Ensure that when a new slide is added, the view scrolls down to the new slide instead of staying at the top of the view    Upward, Downward and To Top, To Bottom controls unresponsive if Tour has not been saved (#152209) Problem Upward, Downward and To Top, To Bottom controls are unresponsive if the Tour has not been saved   Solution Ensure that the navigation buttons work, even if you have not yet saved   User is taken to the top of the Virtual Tours modal when clicking on Editing tools on second slide (#152207) Problem User is taken to the top of the Virtual Tours modal when clicking on Editing tools on the second slide when the modal scrolls.    Solution Ensure you are not taken to the top of the modal.   Pop-up from the Product Roles and Permissions overlaps the System Help box (#152593) Problem Pop-up from the Product Roles and Permissions overlaps the System Help box.   Solution Ensure popovers/tooltips do not overlap by clearing them when opening the help modal.    Imports Avoid updating PaySpace company frequency (#150845) Problem PaySpace started rejecting updates for some existing employees because the push was trying to resend their company frequency. PaySpace only allows that value to be set when the employee is first created, so affected users could not be updated successfully.    Solution The push now keeps the employee's existing company frequency unchanged when checking whether an update is needed, and leaves that value out when updating an existing employee. New employees can still be created with the default frequency   Normalise address province and country values (#152287) Problem Some employees fail to import into V9 and are skipped every day. The cause is inconsistent capturing of their home and postal address details; the province or country was entered with different spelling or casing than the official list (for example, "GAUTENG" or "gauteng " instead of "Gauteng"). Because the value does not match the standard list exactly, the import rejects those employees, so their details are never updated in V9.    Solution During the daily import, the province and country values are now automatically tidied up before the data is handed to V9, extra spaces are removed, and values that differ only in capitalisation are corrected to match the official master list for that client. Genuine spelling mistakes and blank values are left as-is, so nothing is silently guessed. This lets affected employees import successfully without anyone having to manually fix the source data each time.   Return success from CompleteImportAdhoc for untracked partial syncs (importId 0) (#152361) Problem A background job that runs every few hours copies data from the new system (V9) into the older system (V8) - things like org structure, job structure, reporting lines, people groups, permissions and roles. Each time it runs, the copy itself works perfectly, but V8 then tries to send a "this import is finished" confirmation back to V9. For this particular scheduled sync, there is no import record to confirm, so V9 rejects the confirmation, and V8 records an error. The result is a steady stream of harmless-but-misleading "Internal Server Error" entries in the process log, roughly 48 a day per affected client, that make it look like imports are failing when they are actually succeeding. This creates noise that hides real problems, and wastes support time investigating non-issues.   Solution System now recognises when a completion message has no import to confirm and acknowledges it instead of raising an error. The data still syncs exactly as before; the only change is that the false errors stop being generated   Signify Scubed Integration (#151719) Problem The notice period field type change is not backwards-compatible in the API.    Solution Introduce a new version (v2) of the Export Data gRPC API for job profiler appointment exports, while also making some adjustments to the v1 API and improving Swagger documentation handling. The main focus is on enabling a more flexible and extensible export endpoint, with improved data typing and service registration.   Performance Management Fixing SQL parameter sniffing issue (#152528) Problem The query was timing out due to SQL Server parameter sniffing, in which a cached execution plan was reused with parameter values it was not optimised for.   Solution Adding OPTION (RECOMPILE) forces SQL Server to generate an execution plan specific to the current parameters, resolving the performance issue.   Make the “Measurements” and “Rating” fields a mandatory requirement when employees complete their performance objectives. (#148411) New Functionality New toggles on Contract Section items:   Make Measurements Mandatory (tooltip):   Make Ratings Mandatory (tooltip):   If the fields are marked as mandatory, the new KPI item can't be saved if nothing is filled in and shows a snack message stating that the field cannot be empty  -  Suggestion ticket loaded to change this  -   If the fields are marked as mandatory and nothing is filled in on the field  on a Template , the input gets highlighted in red to indicate that the field is a mandatory/required field   If the fields are marked as mandatory and nothing is filled in on a file  Import , the file does not import and gives the following error (as expected):   Transition only triggered when moving from one section to the next (#151996) Problem Improve transition when clicking 'Save and Go Next' on ratings and check-ins   Solution The loading indicator makes it much clearer that you have moved to the next KPI. It is now shown every time you click next   Getting error when trying to delete a linked document (URL) from the Performance Management > View Documents screen + Issue with error message translation (#151715) Problem Error when trying to delete a linked document (URL)   Solution     Keep main buttons on one side of the modal (#152027) Have all 4 buttons on first load.  Enabled Cancel, Save & Save and go to next Disabled Edit Last Comment Make this also an outlined button   When you can edit a comment, enable the button   Order of the buttons on the left, from right to left (hope it makes sense) Cancel Edit Last Comment Save Save and Go to Next   Comma showing instead of Full Stop on EN-ZA (#151793) Problem A comma is being displayed for the Weight of a Review Item on the page, but when trying to edit the item, a full stop is shown. The page should not show a comma   Solution Remove the full stop that is being displayed for the Weight of a Review Item on the page, and when trying to edit the item, a full stop is also shown   Performance management check-in | Displaying manager's comment in the person's comment column (#152177) Problem The manager's comment is being displayed below the employee's comment in the "Person Comment" Section. It is not displaying in the "Manage comment" column. Solution Resolved the issue where very long comments added by the manager were resulting in their check-in comments showing in the employee's column.    Data Warehouse Updated Join for Data Sources for communication portal data sources (#152565) Problem Currently, the JOINS are not working both ways for Communication portal data sources   Solution Updated the join for Communication portal data so that data sources can be selected in both ways   Updated pdmReviewYearPeopleGroupsSetup to do a full refresh with each run (#142737) Problem The package does not update the pdmReviewYearPeopleGroupsSetup   Solution Updated pdmReviewYearPeopleGroupsSetup to do a full refresh with each run Updated insert staging script to only run at midnight   Change storage report to calculate data for all applications installed on Windsor (#151058) Problem  Currently, only MultiV8's storage is calculated   Solution Create a control script to cycle through all clients on Windsor And performance steps currently only performed on MultiV8   Notifications Ensure the correct file size settings are used for notification templates (#152315) Problem Mismatch between pages for max Notifications attachment size   Solution Ensure the correct file size settings are used for notification templates. Previously, it used the max file size setting for both individual files and for the total attachment size across all file uploads for the templates. Correct settings are used and displayed now   Email Notifications are not sent out a 2nd time if the Date Ranges and therefore triggers are reconfigured (#151109) Problem The subscription expiry emails are not sent.   Solution Make small but important improvements to how notification data is handled and returned, focusing on ensuring correct data types and preventing null value issues when all subscription data is not populated for a tenant   Email Notifications: Unable to save template because of blank recipients (#151486) Problem The event HrProcessSubmitterFinalApproval is not linked to a recipient   Solution Introduce a new HR notification recipient type for final approval submitters. The main changes add the HrProcessSubmitterFinalApproval recipient code, seed data, and related database migration to support this new recipient type throughout the notification system.   Communication Portal Fixed no chats portal size (#152554) Problem When there are no discussions/system messages/chats on the communication portal, it defaults to a smaller size. On certain screen resolutions or zoom factors, the action buttons on the bottom of the modal are cut off    Solution Add min-height fit content to ensure that on these smaller screens or larger zoom settings, the Action buttons are still displayed   Job Management Fixing appointment termination reason clear logic (#152386) Problem When an appointment end date is cleared, the termination reason is removed on the screen but is not cleared when the changes are saved. This can result in an active appointment with no end date still displaying a termination reason.   Solution Updated the save logic to automatically clear the termination reason when the appointment end date is removed, ensuring data consistency.   Trigger materialise ruleset people groups after import (#152409) Problem After a frontend import, no trigger is done to materialise the newly added users   Solution Trigger a materialise for the ruleset   Job Profiler errors on Live (#152112)   HR Processes Fix current approval displaying as transparent (#151858) Problem Current approval is transparent when the approver features twice in the request    Solution Ensure current approval is never transparent   Event Scheduling As a person viewing the Book a Course on the LMS Portal, I want to see the configured version's calendar (#146214) Business Rules When the setting is set to use V9 Event Scheduling, show the Calendar of V9 instead of V8 Training Scheduling Same functionality as on V9 to book myself on a course Open in new tab   Additional scrollbars (#152216) Problem Additional scrollbar on the external event calendar view as opposed to normal event scheduling view   Solution Update Syncfusion imports to render correctly   Dropdown menus not working on v9 Calendar (#152217) Problem Child component's Collapse is never initialised and therefore does not work Solution Manually initialise mdb-ui-kit Collapse   Content Management No warning when max file size is exceeded in chat (#151789) Problem No warning when max file size is exceeded in chat   Solution Ensure a warning message is displayed when the file upload size exceeds. Also, the exception handling middleware did not correctly return AJAX errors when the fetch API was used, causing the request to fail silently.   "Default" helper text not showing after removing the input from the field (#151794) Problem "Default" helper text not showing after removing the input from the field   Solution Ensure default text always displays even when the value is filled in   Error when uploading files (#151765) Problem File upload fails when the max allowed file size is bigger than the MaxSendMessageSize configured for the contentmanagement GRPC client in webmvc   Solution Remove this setting so that file sizes are only validated against the max file upload size configured on the contentmanagement service   Centralise WYSIWYG editor image upload location & functionality (#149657) Problem When adding an image to a WYSIWYG editor (currently using SyncFusion RTE), without any additional configuration, the image is uploaded to BROWSER STORAGE and visible to the user for a limited time until the image gets removed.   Solution Centralise WYSIWYG editor image upload location & functionality   Dashboards [Main Dashboard] Round Button Edges (#151957) Problem Straight corners of buttons do not match the rest of the widget. Solution Rounded the buttons (only the outside edges if there are multiple buttons), added padding to the inside of the card to offset the buttons from the side. Fixed sizing/spacing issues on widgets.   Direct Reports - Card Display (#151968)   Organisational Structure Org Structure Bug (#152026) Problem Error when attempting to select the positions that were displayed after the load more option was selected   Learning Management Switching between classes stops the Marksheet Page Refresh (#151991) Problem When a user switched between classes on a marksheet, the new marksheet could remain blank until the page was manually refreshed. This interrupted mark capturing and made the class switch appear unsuccessful.   Solution The class-switching flow has been updated to complete cleanly and display the selected class's marksheet without requiring a manual refresh.