Yokohama Patch 5

  • Release version: Yokohama
  • Updated June 27, 2025
  • 97 minutes to read
  • The Yokohama Patch 5 release contains important problem fixes.

    Yokohama Patch 5 was released on June 27, 2025.
    • Build date: 06-25-2025_1836
    • Build tag: glide-yokohama-12-18-2024__patch5-06-11-2025
    Important:
    For more information about how to upgrade an instance, see ServiceNow upgrades.

    For more information about the release cycle, see the ServiceNow Release Cycle.

    Note:
    This ServiceNow AI Platform major family release is now available in ServiceNow's Regulated Market environments. For more information about services available in isolated environments, see KB0743854.

    For a downloadable, sortable version of the fixed problems in this release, click here.

    Overview

    Yokohama Patch 5 includes 329 problem fixes in various categories. The chart below shows the top 10 problem categories included in this patch.

    Figure 1. Top 10 problem categories
    Fixed issues grouped by problem categories bar chart

    Changes in Yokohama Patch 5

    QueryRangeACLAuditor
    This patch includes the May Maintenance update script in the form of a script include (QueryRangeACLAuditor). This script is not triggered automatically and must be run after a patch upgrade. More details on running the QueryRangeACLAuditor and its functionality can be found in KB2046494.

    Notable fixes

    The following problems and their fixes are ordered by potential impact to customers, starting with the most significant fixes.

    Problem Short description Description Steps to reproduce

    Agent Chat

    PRB1900981

    KB2226265

    Inbox audio is delayed when the 'Workspace' tab is inactive or out of focus before receiving the first work item

    Refer to the listed KB article for details.

    Database Persistence - Data Scale

    PRB1840823

    Temporary files are left by PG-JDBC driver There must be obsolete .trs files in /glide/nodes/<node port>/tmp directory. Obsolete files are created 1 hour ago or before and not touched.

    History Set

    PRB1844946

    KB1923828

    There's intermittent duplicate comments in an Activity Stream due to sys_email records Some comments are duplicated due to the presence of sys_email records. This duplication occurs when a comment is added in a way that causes the incident's sys_updated_on timestamp to be one second earlier than the corresponding sys_journal_field record. If emails are triggered by the incident update, the loading of sys_email records within the related sys_history_set interferes with the last_update_recorded field in sys_history_set. This disruption ultimately results in the duplication of the comment whenever the next update to the incident occurs.

    Refer to the listed KB article for details.

    Internal Platform Security Services

    PRB1813597

    KB1790767

    There's a MIME type check error when attaching a txt (sjis code) file after upgrading to Xanadu MIME Type check error: '[File type not permitted or mime type does not match the file content]'.

    Refer to the listed KB article for details.

    List Controller

    PRB1847141

    Lists in Service Operations Workspace (SOW) aren't automatically refreshing When users enable the glide.lists.live_list_enabled property and make any changes in any record of the list, then the list refreshes in SOW version 5.0.1 but not in version 6.1.1.
    1. Navigate to an instance.
    2. Open Service Operations Workspace version 6.1.1.
    3. Navigate to any list in the SOW.
    4. Select the record number, and make some change to the record that should be visible on the list.
    5. Save and close the record.
    6. Observe that the record still displays in the list without the changes that were just made.
    7. Open a new browser session in a different browser.
    8. Navigate to the same list and make a change.
    9. Save.

    Observe that the list on the first browser session doesn't change. Eventually, a number appears on the refresh button at the top of the list. Select the button, and the data refreshes.

    UI Form Administration

    PRB1866407

    Activity Stream attachment tile actions don't work when a page has been set up to use the multi-controller template Attachments aren't downloadable from the Activity Stream.

    All other fixes

    Problem Short description Description Steps to reproduce

    Access Control

    PRB1889272

    GlideSearch_Query/suggestions user context gathering triggers role creation When gathering user context, the platform triggers role creation.

    Action Bar Component

    PRB1840507

    An incorrect action bar intermittently displays
    1. Navigate to /now/cwf/agent/home.
    2. Impersonate a user.
    3. In the list, select My cases > New.
    4. Select Accept UI action.

    Expected behavior: The action bar shouldn't change.

    Actual behavior: The action bar changes in a few seconds after the case is accepted.

    Activity Stream Compose Component

    PRB1897434

    The 'Email' tab in the Activity Stream in the CSM Configurable Workspace doesn't resize when the text is larger than the vertical limit This issue is found in Yokohama, but works as expected in Xanadu.
    1. Navigate to a Yokohama instance as an admin user.
    2. Navigate to the Activity Stream > More > Email.
    3. Select Return past vertical limit.

    Expected behavior: The email text box auto-resizes vertically.

    Actual behavior: The email text box doesn't auto-resize.

    Activity Stream

    PRB1881272

    'Multiple delete' should check the condition list for archive tables The 'Archive destroy' task uses multiple delete to remove sys_journal_field data. Users have to query the table to find which records specifically are deleted so that it can create a delete message for them. ActivityDBListener. removeMultipleEvents() has to check the dbDeleteQuery. getQueryConditions() for the rule's documentTable and ignore it if it isn't a table they care about.

    Activity Stream

    PRB1888279

    The Translation button isn't turned on in a legacy Agent Workspace when dynamic translations are turned on
    1. Apply an update set to install, configure, and turn on dynamic translations, legacy Agent Workspace, and CSM/FSM Workspace.
    2. Open an incident in either legacy Agent Workspace (/now/workspace/agent) or CSM/FSM workspace (/now/cwf/agent).
    3. Add a comment in another language.

    Expected behavior: When hovering over the journal tile for the newly added comment, a Translation button should be visible and clickable.

    Actual behavior: When hovering over the journal tile for the newly added comment, there's no Translation button.

    Activity Stream

    PRB1888552

    Attachments aren't removed from an activity stream when stored on a secondary DBI In a multiple delete scenario, when the activity stream DB listener creates a DBQuery to select all Activity Stream records to remove, it uses the default DBQuery constructor, which selects the primary DBI by default. The DB listener needs to pass the same DBI that's used by the DB action to ensure that the correct DBI is utilized in a multiple DBI situation.

    Activity Stream

    PRB1893483

    No activity displays in UI16 when a blank journal event is added to the Activity Stream After upgrading to Yokohama, some records display 'No Activity' on the platform view. A null pointer exception displays.

    Activity Stream

    PRB1894361

    Timeago elements (sn-time-ago) should display a tooltip when accessed via the keyboard
    1. Navigate to any instance.
    2. Launch the Employee Service Center (ESC) portal by appending '/esc' to the URL.
    3. Navigate to the 'My Requests' menu item in the header and select.

      The 'My Requests' page opens.

    4. Using the keyboard, navigate through the list of requests. Select 'tab' until the time focus goes on a sn-time-ago element.

    Expected behavior: If the focus should move to the non-interactive elements for sighted users who use the keyboard, then the tooltip should appear without hovering over it.

    Actual behavior: The tooltip isn't visible when the focus moves to the 'created/updated' elements using the tab key.

    Advanced Risk

    PRB1896933

    Addition of Query ACLs in Access Control List (ACL) Rules in Advanced Risk This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Agent Chat

    PRB1887118

    The 'new message' sound and desktop notification aren't working in legacy workspace
    1. As an agent, navigate to the legacy workspace with the url /workspace/agent.
    2. As a requestor, start a chat.
    3. After an agent accepts the work item, as a requestor, start sending some messages.

    Expected behavior: When desktop and sound notifications are turned on, an agent should hear the sound for a new message and receive desktop notifications for the new message.

    Actual behavior: There's no sound or desktop notification.

    AI Search

    PRB1850255

    ScriptableSearchAdminQuery throws a NullPointException (NPE) There's several areas where NPEs in AI Searches should be better handled.
    1. Create a search profile with no search sources.
    2. Search using that profile.

    Observe the NPE in the log.

    AI Search

    PRB1875255

    Glide sends an 'admin' value in the Date field There's an error in the logs.

    AI Search

    PRB1885792

    AI Search only logs sources that match a search in the sys_search_source_event

    Search with a query term that returns no results.

    Observe that no sources are logged in sys_search_source_event. The entry for each source that was searched and has_results=false.

    AI Search

    PRB1892363

    Citations in Genius Results, after selecting 'Ask in Chat', don't automatically close the pop-up, causing overlay The Virtual Agent open page refresh pop-up appears if not permanently dismissed.
    1. Search 'Request laptop'.
    2. In the synthesized response, select Citations > Ask in chat.

    Virtual Agent opens, but the citations pop-up is still open and doesn't close automatically.

    AI Search

    PRB1893376

    Need to support filters on KBBs in AI Search sources Users currently lack the ability to exclude specific KBBs from the search sources. There should be a way to define and apply filters on KBBs within the search configuration—filters that are respected when retrieving results from AI Search.
    1. Create a KB containing a KBB.
    2. Index the 'Knowledge' table.
    3. Create a search profile with a search source containing that KB.
    4. Publish the search profile.
    5. Execute a query against that search profile, which only matches the content of the KBB (and not the parent KB).

      See that the corresponding KB displays in the results.

    6. Add a KBB filter by adding sys property 'glide.ais.kbb_filters'.

      Only KBBs that match the encoded query are returned.

    7. Execute the same query as step 5.

    The same KB shouldn't appear on the results if the KBB doesn't pass the filter condition.

    AI Search

    PRB1900322

    A synthesized response isn't displaying on Portal when Dynamic Window (DW) is turned on A response is present in the sys_generative_ai_log. It's working fine in the chat.
    1. Open a Yokohama instance with recent Store apps.
    2. Enable DW on Portal.
    3. Perform a search for any query.

    Notice there's no synthesized response.

    Analytics Data API

    PRB1839577

    A chart is rendered with a default group by option when the 'None' group by option is selected
    1. Navigate to All > Library > Dashboards.
    2. Create a dashboard.
    3. Add a data visualization component to the dashboard.
    4. Select:
      • Visualization type: Line
      • Data source: Asset table (alm_asset)
      • Add Group by: Assigned to
      • Add several 'Alternative group by' values
    5. Save the changes and exit from the editing mode.
    6. Check that the line chart is rendered according to the default 'group by - Assigned to'.
    7. On the line chart, select the three dots in the right top corner.
    8. Select Show change group by.
    9. Select the None option in the 'group by' menu.
    10. Check the re-rendered line chart.

    Expected behavior: When the None option is selected, the line chart should be rendered as there's no group by.

    Actual behavior: The line chart is rendered with the 'Assigned to' group by.

    Application Install Engine

    PRB1869500

    The user is unable to upgrade a base app version when a batch install hosts a customized app

    Application Install Engine

    PRB1894443

    Integrate sn_app_deploy JSON functionality into Glide This is a product update.

    Application Manager

    PRB1886735

    The 'Switch to Virtual Agent Web Client' link isn't receiving the keyboard tab focus This impacts keyboard users who navigate documents sequentially and expect the focus order to be consistent with the sequential reading order.
    1. Navigate to any instance.
    2. Append sys_store_app_list.do to the instance URL.
    3. Search for any Store plugin app, such as 'Virtual Agent Web Client'.
    4. Change the application scope to 'global'.
    5. Open the form.
    6. Tab to the 'Switch to Virtual Agent Web Client' link.

    Expected behavior: The 'Switch to Virtual Agent Web Client' link should be receiving the keyboard tab focus.

    Actual behavior: The 'Switch to Virtual Agent Web Client' link isn't receiving the keyboard tab focus.

    Application Manager

    PRB1891971

    The 'How Search works' info icon tooltip details are not announced by the screen reader The JAWS screen reader doesn't read the tooltip content.
    1. Start JAWS.
    2. Navigate to the Home screen.
    3. Navigate to Dashboard > Entitled ServiceNow apps > View all Applications.
    4. Tab to the 'How Search works' info icon.

    Notice that JAWS does not read the tooltip content.

    Application Manager

    PRB1891976

    The Application Manager pop-up title is incorrectly described as 'Activity Log' by screen readers
    1. Start JAWS.
    2. Navigate to the home screen.
    3. Navigate to Dashboard > Entitled ServiceNow apps panel > View all Applications link.
    4. Press enter on the Activity log button.

      Note that the screen reader dialog title announced is nothing like the visible modal dialog title.

    Expected behavior: It says 'Activity Log'.

    Actual behavior: It says 'Application Manager'.

    Application Manager

    PRB1892000

    There's a focus management issue on selecting View More On selecting View More, more content is loaded. When pressing the tab key, the focus is going to the 'Skip to Main Content' link and not to the newly loaded items.
    1. Launch an instance in a Chrome browser.
    2. Navigate to Filter > All.
    3. Navigate to Admin center > Application manager > View all Applications link.
    4. Scroll down and press Enter on the 'View more' link.
    5. Check where the keyboard focus is placed when the view more link is activated.

    Once more options are loaded and the user presses the tab key, the keyboard focus should go to the updated content and not to the 'Skip' link. However, when pressing the tab key, the focus is going to the 'Skip to Main Content' link and not to the newly loaded items.

    Application Manager

    PRB1892002

    The 'Sync in progress' and 'Sync completed' details aren't announced to screen reader users On selecting 'Enter' on the Sync Now button, the sync starts progressing. That isn't communicated to the screen reader users.
    1. Launch an instance in a Chrome browser.
    2. Navigate to Filter > All.
    3. Navigate to Admin center > Application manager.
    4. Turn the screen reader on.
    5. Press enter on the Sync button.
    6. Check whether the screen reader communicates the sync in progress/complete state.

    Expected behavior: The 'Sync in progress' and 'Sync completed' details should be announced to screen reader users.

    Actual behavior: The 'Sync in progress' and 'Sync completed' details aren't announced to screen reader users.

    Application Scoping

    PRB1889050

    Apply cross-scope restrictions when querying locally mapped data fabric (DF) tables
    1. Create a Glide table in scope-A.
    2. Set its RCA property to 'Restricted'.
    3. Create a DF table in another scope (Scope-B).
    4. Map it to the Glide table.
    5. Query the DF table.

    RCA records should be created from Scope-B to Scope-A, in Scope-A, with source type = Data Fabric Table, with the correct source and target tables.

    Appointment Booking

    PRB1894193

    The scope of the Appointment Booking service's configuration was changed in Yokohama, which leads to a scope access issue After upgrading to Yokohama from Washington, the value of the 'Availability' table changed from wu_appointment to empty in some Appointment Booking service configuration records.

    Audit Management

    PRB1896927

    Addition of Query ACLs in Access Control List (ACL) Rules in Audit Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Case and Knowledge Management for HR Service Delivery

    PRB1860702

    The Vendor Portal 'Take-questionnaire' page stops working when the HR application is installed Users observe an error on the page.

    Case Management

    PRB1892871

    Cases RL on PI isn't accessible to a customer contact on the Business Portal due to query match and query range ACLs

    Change Management Collision Detector

    PRB1868251

    The 'Conflict Detection' job, especially the ChangeCheckConflictsSNC script include, can lead to an OutOfMemoryError and node restarts This seems to happen when the Affected CIs [task_ci] table has a large amount of records on it. In one of the cases, there were 93,685,849 records.

    Run the 'Conflict Detection' job and notice it loops in the ChangeCheckConflictsSNC script include.

    Change Management

    PRB1862569

    Change CheckConflict can cause stale reads and updates, which causes unexpected other behaviors

    Change Management

    PRB1895395

    A standard change template record producer condition builder filter operator is broken when the variable type 'List Collector' is used in conjunction with a standard change template field On the 'Sample change requests' filter, after selecting a field, notice that all the operators are empty except for 'is'.

    CMDB Query Builder

    PRB1791382

    CMDB Query Builder results' count isn't consistent There's a missing result from the CMDB Query Builder query. This causes missing some records in the result with a default batchsize (100) without the user knowing they are missing the records.

    Communities

    PRB1865845

    Some characters are displayed as unicode in blog titles When a blog article in posted in the Community portal, some characters are encoded in unicode and then are displayed without being decoded.
    1. With the Communities plugin installed, set up a forum and put 'blog' in the 'Content type' related list.
    2. Navigate the Community portal.
    3. Navigate to Community > All forums.
    4. Select the created forum.
    5. On the right-hand side menu, select Post Content > Blog.
    6. In the blog title, input something like 'test漢字テストテスト77'.
    7. Input a description.
    8. Select Save as draft or Publish.

    Observe that the title is now 'test漢字テスト&#xff83;&#xff7d;&#xff84;&#xff17;7'.

    Configuration Management Database (CMDB)

    PRB1893434

    A11y bug fixes on CMDB Workspace Info tooltips are identified by screen readers as 'Search Button' and there's multiple H1 elements on a page.

    Issue 1: Info tooltips are identified by screen readers as 'Search Button'.

    1. Start JAWS.
    2. Navigate to Home > All > CMDB Workspace > Management tab.
    3. Move the input focus to the info icon in excluded CIs.

    Note that the info tooltip is described as 'Search button'.

    Issue 2: Multiple H1 elements on the page.

    1. Navigate to Home > All > CMDB Workspace.
    2. Start NVDA.
    3. Display the speech viewer in NVDA.
    4. Navigate through the page's headings.

    Note that there are two H1s when there should only be one.

    Content Analytics

    PRB1895477

    The agg_period_in_tz field causes a zero action_count Although sn_cd_analytics_stat aggregation records for Content Analytics now populate both agg_period (date-only) and agg_period_in_tz (full timestamp), the _calculateNumEvents method still does an exact match on agg_period_in_tz using a date‐only string. Because the query value omits the time portion, no records qualify and every non-impression count is recalculated to zero.
    1. Follow the Content Analytics KB to activate and set a tracking profile to default.
    2. Using the 'Schedule Content' module, publish content on all tracked widgets.
    3. Using SCA and content templates, publish content on all tracked widgets.
    4. Follow the Content Analytics KB to publish a tracked campaign.
    5. Verify that the new dashboard 'Content Overview' appears as expected.

    Expected behavior: Audience, views, and clicks are recorded.

    Actual behavior: Only audience and views are recorded.

    Content Experiences

    PRB1895089

    Welcome Banner (CD) carousel dots are moving in reverse when pressing previous/next arrows

    Content Experiences

    PRB1895347

    Topic header banner images aren't displaying for users without elevated privileges This happens when 'Schedule Content' records reference pointers for a widget instance (sp_instance) are broken, such as when the widget instance was deleted on the instance. With these schedules in this state, the topic header widget is somehow matching to the blank sp_instance field and triggering the altered UI instead of the banner.
    1. Create a 'Schedule Content' [sn_cd_content_visibility] record.
    2. Select a widget instance [sp_instance].
    3. Save the 'Schedule Content' record.
    4. Delete the widget instance.
    5. Open a Employee Center page (topic) with a banner image.

    Expected behavior: A banner image displays for all users.

    Actual behavior: A banner image doesn't display for users without elevated privileges.

    Content Experiences

    PRB1897513

    New update/repair of a plugin causes the mass deletion of sys_translated_text records After repairing and updating the plugin, the records in sys_translated_text table are completely erased.

    Core Platform

    PRB1775831

    KB1818197

    When the user accesses a CTI record URL before SSO or a local login, they are redirected to an incident.do record When the user is logged in to an instance, a CTI link takes them to the correct record. However, when they are logged out, they are directed to the incident.do page.

    Refer to the listed KB article for details.

    Data Archiving

    PRB1865429

    Infinite recursion is possible in the 'Archive Reparent Retry' job In the 'Archive Reparent Retry' job (though not in the reparenting code in the archive job itself), a cycle in the sys_archive_related records causes infinite recursion. This can obstruct reparenting of other rules.

    Database Persistence - Data Access

    PRB1855719

    The cmn_skill table isn't available to select as a node in the Knowledge Graph (KG) UI In Project Management, there's a 'Resource Assignment' table that specifies which user/resource is working on which task. Also, a project manager can request for resources either by group or role or skill. Users are able to add a group or role via the KG UI. But currently, users are unable to add Skill (cmn_skill) as a node.

    Database Persistence - Data Access

    PRB1885744

    List view for a Glide table joined with an external table returns SQL syntax error if filtered with conditions based on the external table An SQL syntax error occurs when the user tries to run the list view of the Glide table with a filter that uses fields from the data fabric table.

    Database Persistence - Data Access

    PRB1886440

    When glide.db.trino.collate _ci.references is turned on, 'lower()' isn't used on 'JOIN' statements The lower() function is used in the 'WHERE' clause, but not in the 'JOIN' statement.
    1. Open an instance.
    2. Open the 'List' view.
    3. Set glide.db.trino.collate_ci.references to '=TRUE'.
    4. Set glide.db.trino.collate_ci to '=TRUE.
    5. Turn on SQL Debug.

    Notice that the lower() function isn't used in 'JOINS', but is used in the 'WHERE' clause.

    Database Persistence - Data Access

    PRB1886577

    Because of incorrect datatype mapping, users are unable to map float_type to Glide Users aren't able to use the 'Float' and 'Long' data types, as they are inconsistent in usage.

    Database Persistence - Data Access

    PRB1889900

    CMDB list view never loads when grouped by 'Location' after a reference to a data fabric table is added 'Group by' never completes and times out.
    1. Navigate to an instance.
    2. Impersonate a system administrator user.
    3. Open the sys_db_object record for incident table.
    4. Add a new field that refers to a data fabric table.
    5. Save the sys_db_object record.
    6. Add the field to the list layout.
    7. Open the cmdb_ci list view.

    Notice that when attempting to group by 'Location' the CMDB list never loads.

    Database Persistence - Data Access

    PRB1890265

    Users are unable to build a report due to the inability to run aggregate methods avg/sum for the Long Integer String field brought in by BigQuery and Databricks

    Database Persistence - Data Access

    PRB1894406

    SQL error messages can't be enabled If glide.db.loguser is set to 'false' by running the background scripts 'gs.setProperty("glide.db.loguser", false)', then only one error message appears. If glide.db.loguser is set to 'true', two error messages appear.
    1. Run the background script 'gs.setProperty("glide.db.loguser", true)'.
    2. Create a table by creating a record in the sys_db_object table.
    3. Navigate to the sys_db_object record in that table.
    4. Create a column with the type 'Auto Increment' in the 'Columns' section.
    5. Create a new record on the table, for example put the value '1' in the new column.
    6. Create a new record with the same value.

    Expected behavior: Two error messages appear when the user should only receive one; 'Unique Key violation detected by database ((conn=493) Duplicate entry '1' for key 'PRIMARY')' and 'Invalid insert'.

    Actual behavior: Only one error message is shown, 'Invalid insert'.

    Database Persistence - Data Management

    PRB1864182

    An unreferenced record cleaner doesn't handle parent tables that are sharded and archived
    1. Create a parent table that is sharded or extension.
    2. Create an attachment that points to a record in this table.
    3. Create an archive rule for that table.
    4. Get the record archived.
    5. Create a table rotation for sys_email with type 'extension'.
    6. Set up an archive rule for incident.
    7. Configure an archive related record with sys_email that references the incident table.
    8. Run archive.

      The incident is moved to ar_incident, and related sys_email is moved to ar_sys_email0000.

    Expected behavior: This record shouldn't be considered unreferenced and eligible for deletion.

    Actual behavior: This record could be deleted by the unreferenced record cleaner.

    Database Persistence - Data Management

    PRB1865408

    An unreferenced record cleaner can potentially cause unintentional deletion when a reference table is an archive table In case of document ID type references, if a table name field has a table which is an archive table (ar_x), currently the unreferenced record cleaner consumer doesn't check the corresponding base table(x) for existence. This can lead to data loss. This is because it is possible that the record is restored from ar_x to x but the document ID reparenting process didn't update the table name field back to x.
    1. Create a document ID column table doc_id_tab.
    2. Create a table test_tab.
    3. Archive records from the table test_tab to ar_test_tab.
    4. Restore records from ar_test_tab.
    5. Insert a record in the table doc_id_tab with the table name as ar_test_tab and table_sys_id as sys_id of one of the restored records.
    6. Create and run the unreferenced record cleaner rule for doc_id_tab.

    See the record from doc_id_tab being deleted equals data loss.

    Database Persistence - Data Management

    PRB1866360

    An unreferenced record cleaner is incorrectly applying GlideRecord.canDelete() logic
    1. Create an unreferenced record cleaner rule for sys_attachment/sys_attachment_doc.
    2. Run the unreferenced 'Record Cleaner' job on the rule.

    Observe orphans in sys_attachment/sys_attachment_doc aren't deleted.

    Database Persistence - Data Management

    PRB1869761

    An unreferenced record cleaner (URC) doesn't handle parent tables that are sharded and archived Currently, URC checks for a base reference table and an archive reference table. But if the base reference table is part of a hierarchy, when the reference record gets archived, it doesn't go to ar_base_table, it goes to ar_child_table. Archiving flattens the table hierarchy. The URC can delete such records as unreferenced but they are actually not orphaned.
    1. Create a table tab_parent.
    2. Create a table tab_child extending tab_parent.
    3. Create table ref_test with a 'Reference' type column referencing tab_parent.
    4. Add records to the ref_test referencing records in tab_parent and tab_child.
    5. Create an archive rule for tab_parent which archives tab_parent and tab_child records to ar_tab_parent and ar_tab_child.
    6. Create a URC rule for ref_test.
    7. Preview a sample of unreferenced records/run the 'URC' job.

    Expected behavior: No records are deleted.

    Actual behavior: Records belonging to ar_tab_child are deleted.

    Database Persistence - Data Management

    PRB1871043

    The unreferenced record cleaner (URC) rule using JoinUnreferencedRecordFinder can delete data that it shouldn't JoinUnreferencedRecordFinder deletes data that shouldn't be deleted, and can return less than the chunk limit even if there is more data to be deleted.
    1. Create a test_table with a reference to the test_reference table.
    2. Insert data into test_table with null references.
    3. Set the glide property glide.db.unreferenced _record_cleaner. verify_before_delete to '=false' when the default is '=true'.
    4. Verify that the glide property glide.db.unreferenced _record_cleaner.consider _nulls_unreferenced is set to the default '= false'.
    5. Run the unreferenced record cleaner for the rule.

    Expected behavior: Records with null references shouldn't be deleted.

    Actual behavior: Records with null references are deleted.

    Database Persistence - Data Management

    PRB1884643

    Unreferenced record cleaner (URC) doesn't handle parent tables which are sharded and archived The archived record that is orphaned by the sharded parent table can be deleted by the URC, even though it should be considered unreferenced and shouldn't be deleted.
    1. Create a parent table that is sharded.
    2. Create an attachment which points to a record in this table.
    3. Create an archive rule for that table, for example, so that a child table such as ar_sys_email_001 is created.
    4. Archive the record, so that it's in the example child table ar_sys_email_001.

    Expected behavior: This record should not be considered unreferenced and ineligible for deletion.

    Actual behavior: This record could be deleted by the unreferenced record cleaner.

    Database Persistence - Data Management

    PRB1888624

    Archiving on data fabric (DF) tables results in multiple archive runs, but no records were archived These process all create chunks which the framework later tries to execute on.
    1. Create an archive rule on a DF table to archive less than ten records.
    2. Wait for the hourly job.

      It won't produce any runs if users try to execute Archive now or manually from sys_trigger.

    Notice that over 3000 archive runs were created but no records were archived, and DF tables are read-only tables.

    Database Persistence - Data Scale

    PRB1881044

    User session context needs to be identified appropriately during a Trino loop back call When creating a HTTP session using OAuthToken in a loopback case, some context about the original session is lost. A nonce table needs to be set up that can be used to persist the original session ID, transaction ID, and the session type (interactive/non-interactive) along with user sys_id using OAuthToken as nonce.
    1. Create a reference field on an incident table to a data fabric table.
    2. Log in as an interactive user.
    3. Look up an incident list with the reference field in the view.

    Observe the loopback session created is non-interactive.

    Database Persistence - Data Scale

    PRB1881949

    Fast lock aren't released if a Tx is cancelled This is a product update.

    Database Persistence - Data Scale

    PRB1884709

    The user session context needs to be identified appropriately during the data fabric loop back call
    1. Create a reference field on an incident table to a data fabric table.
    2. Log in as interactive user.
    3. Look up an incident list with a reference field in the view.

    Observe that the loopback session created is non-interactive.

    Database Persistence - Data Scale

    PRB1887442

    Don't shut down the Trino connection pool upon an InternalErrorException Currently, when a Trino query fails execution and the translated exception is of 'InternalErrorException', the Trino connection pool shuts down. With the introduction of the ServiceNow Connector, any authentication error is translated as 'InternalErrorException', which causes the Trino connection pool to be retried and recreated. This is unnecessary and can make things slower as the cluster is really intact and has no issues.
    1. Establish a Trino connection.
    2. Load a data fabric table list view.
    3. Set the 'glide.db.df_engine .sn_connector. loopback. oauth_access_token. enabled' property to false.
    4. Load the same data fabric table list view.

      It should complain in the UI about not having the oauth token in the request.

    Observe in the log that the trino_primary pool was actually shut down and re-created. It would have 'unpooled: trino_primary' in the log after the oauth token exception.

    Database Persistence - Data Scale

    PRB1888243

    Loading the 'List' view for a Glide table that has an element referencing a data fabric table on a reference key is almost impossible The list loads slowly and the 'Form' view doesn't open.

    Database Persistence - Data Scale

    PRB1890184

    Users are unable to open the 'Incident Form' view when it references a Workflow Data Fabric (WDF) table This also happens on an 'Incident' table in a SURF clone. It displays 'Record not found' or users see no records.

    Database Persistence - Data Scale

    PRB1891598

    Exponential backoff upon refresh failure This is to improve the resilience around cluster reservation.

    Database Persistence - Data Scale

    PRB1891600

    Better handle pool shutdown during pool configuration An error occurs when trino_primary pool is shutdown (by another thread) during pool configuration.

    Database Persistence - Data Scale

    PRB1893025

    A potential deadlock can occur if the loopback query lands on the same box A semaphore isn't released if all of the transactions are executing Trino queries are waiting, and a 'deadlock' can potentially occur if the loopback request happens to come back to the same box.

    Database Persistence - Data Scale

    PRB1893055

    Workflow data fabric for parent Epics This is a product update.

    Database Persistence - Data Scale

    PRB1898714

    A connection becomes vulnerable to sharing when it's marked for recycle When a connection is marked for recycle, it's returned to the pool and can be picked up for allocation, where it's marked as 'Assigned'. The connection is checked for recycling and a new physical connection is established. Glide marks the connection as 'Available', which allows it to serve other requestors in the pool, causing connection sharing.

    Database Persistence

    PRB1857963

    A string containing an underscore doesn't work in an encoded query with StartsWITH, LIKE, ENDSWith etc. on data fabric (DF) tables
    1. Load any DF table list view.
    2. Filter a column with phrase that contains an underscore character.
    3. Turn on Debug SQL (detailed).
    4. Reload the list view.

    Notice an 'ESCAPE' clause in the SQL running for 'trino_primary' DBI.

    Database Persistence

    PRB1861792

    A Glide query with a date/time field throws an error 'Enable debug SQL detailed' throws this error after 25 seconds: 'Error executing query: Cannot invoke "io.trino.jdbc. $internal.client. QueryResults. getNextUri()" because the return value of "java.util. concurrent.atomic. AtomicReference.get()" is null'.

    Database Persistence

    PRB1862601

    DatePart functions and 'Trend By' aren't working Error: 'Query failed (#20250307_002425_02173_asrt2): line 1:1610: Function 'dayofweek' not registered'.

    Database Persistence

    PRB1864019

    A boolean field in Snowflake isn't mapped to any data type in a data fabric table

    Database Persistence

    PRB1864033

    From the 'Form' view, exporting a PDF exports an empty PDF document

    Database Persistence

    PRB1864034

    From the 'Form' view, 'Export as XML' doesn't work

    Database Persistence

    PRB1869557

    Running any GlideScript errors out when run after around 10 minutes of inactivity The error executing query: 'Cannot invoke "io.trino. jdbc.$internal. client.QueryResults. getNextUri()" because the return value of "java.util. concurrent.atomic. AtomicReference.get()" is null'.

    Database Persistence

    PRB1870521

    Upsert to reservation tables throws an exception A unique key violation is detected by a database. Upsert throws an exception for duplicate entries.

    Database Persistence

    PRB1872092

    LOWER() usage in query predicate turns off predicate push down from Trino to an external data source This means that when the SQL is executed, partial SQL is sent to an external data source: SELECT col1, col2, and col3 from sample_table. This leads to bad query performance as PUSHDOWN of predicate doesn't happen, and that the entire table is downloaded from an external data source leading to (a) excessive data download, (b) bad query performance, and (c) high resource usage at Trino layer. Functionally, this bloats the 'data downloaded from external source' licensing metric.

    Database Persistence

    PRB1872106

    'Show matching' in list view doesn't work for truncated data In the 'List' view, if the user selects a field that displays a truncated value and selects 'Show matching', no value is returned.

    Database Persistence

    PRB1872607

    Loading data fabric (DF) tables coming out of 'Idle time' for Trino throws a 500 error A first time query hits an error: 'Error executing query: Error starting query...'
    1. Let 'Idle time' trigger for Trino.
    2. Stop queries for remote tables.
    3. After 10 minutes, query remote tables.

    Database Persistence

    PRB1872718

    There's an incorrect data type in the source table on the mapping screen The data types of source columns doesn't match the data types on external databases.

    Database Persistence

    PRB1873237

    Importing a BigQuery table is getting an error on the table name and blocking the import Error: 'Failed to create remote table with error: Data Fabric Hub: Unable to create a remote table. com.glide. datafabric.model. DataFabricException: Expecting a prefix of "u_df_" for table name "df_u_supplier_bg" Cause: null'.

    Database Persistence

    PRB1873825

    countRemoteTable throws an error 'failed to get remote schemas' on a deactivated connection
    1. Navigate to an instance.
    2. Create a Snowflake connection.
    3. Deactivate that connection.

    The screen refreshes and displays an error and the connection detail doesn't get loaded.

    Database Persistence

    PRB1874006

    Running any GlideScript errors out after 10 minutes of inactivity The table list view was able to load before upgrading.

    Database Persistence

    PRB1876398

    A join between cmdb$par1 or any table with special characters and a data fabric table would fail when the query gets to Trino This issue only occurs with a base instance SNC connector.
    1. Create a join between a CMDB table (for an element on $par1) and a data fabric table.
    2. Execute a list or a glide record query.

    Observe the error.

    Database Persistence

    PRB1877079

    When a field is mapped and the field's Glide type is identified as UNKNOWN or DB_UNKNOWN, this field shouldn't be available for mapping There's an error querying a data fabric table.
    1. Log in to an instance that has data fabric setup.
    2. Import a table with a boolean field.
    3. Load a list view of the table.

    Users are getting an error: 'Query failed (#20250404_164711_05824_egbw8): line 1:853: Unexpected parameters (boolean) for function lower'.

    Database Persistence

    PRB1882958

    From Glide UI, the column type returned is displayed as glide_date for minimum viable product (MVP) connectors
    1. Navigate to Workflow Data Fabric (WDF).
    2. Create a connection.
    3. Create a DF table.

    See the column type for 'Date'. The date is coming as glide_date.

    Database Persistence

    PRB1883871

    Create an API for that returns a selective list of elements for a glide table that are allowed to have a reference key assigned Relaxing requirements for glide tables and having 'persistence' control those requirements to provide an API. Currently, when a reference is created to a glide table from a data fabric table, a sys_id is provided as the only option unless there is a unique key.

    Database Persistence

    PRB1883877

    GlideRecord.query() should limit the max number of rows returned when used in conjunction with a data fabric table

    Execute GlideRecord.query() on a data fabric table that has large result set (for example, more than 100k).

    Observe the rb_*.tmp files grow in size and count based on the number of row blocks created.

    Database Persistence

    PRB1885159

    Add support/capability for a guardrail or killswitch for an instance with Workflow Data Fabric (WDF) turned on The guardrail or switch should be available to turn off the DF-specific processing and the transaction or operation should work as if no DF table exists. Glide Table elements should still continue to work without interruption.
    1. Introduce a field on a glide table that joins a data fabric table.
    2. Ensure 1,000 rows are loaded on the list.

    Observe amount of time it takes to load the list.

    Database Persistence

    PRB1887082

    'Catalog not found' exceptions are thrown when de-activating a connection
    1. Navigate to the Data Fabric Hub.
    2. Deactivate a connection.

    Notice that this triggers the ScriptableConnectionManager. jsFunction_deactivateConnection(), updateConnectionStatus AndRefreshRemoteDB(), getDataFabricEngine Service().invalidateTablesForCatalog (connectionName). This throws the following exception 'com.snc.db.df_engine. DataFabricEngineException: failed to get remote schemas at com.snc.db.df_ engine.DataFabricCatalog. getSchemas(DataFabric Catalog.java:29) at com.snc.db.df_engine. DataFabricCatalog. getSchemaToMappedTables( DataFabricCatalog.java:40) at com.snc.db.df_engine. DataFabricCatalog. invalidateAllTables (DataFabricCatalog.java:85) at com.snc.db.df_engine. service.DataFabricEngineService. invalidateTablesForCatalog (DataFabricEngineService.java:260) at com.glide.datafabric. connection.ScriptableConnectionManager. updateConnectionStatus AndRefreshRemoteDB( ScriptableConnection Manager.java:631) at com.glide.datafabric. connection.ScriptableConnection Manager.jsFunction _deactivateConnection (ScriptableConnectionManager.java:463)'.

    Database Persistence

    PRB1887434

    Ensure sys_df_data_dictionary inherits ClientScripts and UIPolicies from sys_dictionary The script and UI policy changes should apply for sys_dictionary table, however not for var_dictionary table which is another child of sys_dictionary.
    1. Navigate to a data fabric table dictionary column record.
    2. Attempt to make any changes on the data fabric dictionary record.

    Expected behavior: The user should be able to make changes such as string length edit without the formula being mandatory, and calculated and function types are not supported.

    Actual behavior: The calculated value section, Formula field is mandatory and doesn't allow the user to make changes.

    Database Persistence

    PRB1891532

    Add a guard rail to not allow certain Glide tables from having a reference field set out to reference data fabric table Currently, users are able to add a field on central tables such as sys_user and reference to data fabric tables. Guard rails are being added to ensure no outgoing references that refer to a data fabric table are allowed from a Glide table.

    Database Persistence

    PRB1897768

    Running a GlideRecord query via a script on a large data fabric (DF) table results in a large amount of records queried A large amount of records are queried even though results are truncated to 10,000.
    1. Have a large Workflow DF table with much more than 10,000 rows.
    2. Run GlideRecord.query() in a script on that table without a limit set.

    Expected behavior: Some limit should have been applied on the remote data store.

    Actual behavior: Only 10,000 records are returned. On the remote data store, many more rows than 10,000 were queried.

    Database Persistence

    PRB1898737

    API returns a selective list of elements for a data fabric table that are allowed to have a reference key assigned Currently DataFabricReferencableGenerator only returns referenceable columns for a Glide tables, and a similiar API is needed for data fabric tables.

    Data Fabric Table Glide Services

    PRB1866372

    The read ACL for sys_df_connection _metadata doesn't work for data steward roles with upper cases
    1. Create a data steward role using at least one upper case letter.
    2. Assign this role to some connection.

    See that the data steward user can't see that connection.

    Data Fabric Table Glide Services

    PRB1868977

    The createRemoteTable method should allow a data steward to call it if they have read access to the connection The access needs to be checked for the APIs created.
    1. Create a user with a data steward role for some connection.
    2. Impersonate the data steward user.
    3. Navigate to the 'Workflow Data Steward' UI.
    4. Try mapping a table using the connection.

    Notice that this should be allowed, but it's not.

    Data Fabric Table Glide Services

    PRB1871926

    Connection admin users need appropriate ACL access for table reads and services Currently, there's no special permissions or roles bundled under our provided df_connection_admin role. Connection admin users must be able to assign user and data steward roles, which is currently breaking due to security constraints, preventing users from accessing/reading these tables.
    1. Log in to an instance as a user with elevated privileges.
    2. Navigate to the sys_user_role table to assign roles, accessing Workflow Data Fabric (WDF) app pages, etc.
    3. Navigate to the sys_user table and assign any user with the df_connection_admin role.
    4. Impersonate or log in as this connection admin user.
    5. Navigate to the sys_user_role and related tables, and see a security constraint preventing access message.
    6. Check the WDF app.

    See that the connection admin users are now returned with no results when trying to access sys_user_role, or other impacted tables. Similarly, on connection creation and setting scope, they run into the issue with access constraints to sys_scope records.

    Data Fabric Table Glide Services

    PRB1874586

    Users without the 'admin' or 'delegated_developer' role can create tables via Workflow Data Fabric Currently, only users with the 'admin' or a user that has a 'delegated_developer' roles and when added as as a delegated developer to an application by an Admin/Application Admin can create tables.
    1. Assign a user with only the 'df_data_steward' role.
    2. Navigate to WorkFlow Data Fabric > Established Connection > Create Remote Table.
    3. Navigate to Sys_db_object to confirm the table is created.

    Data Fabric Table Glide Services

    PRB1878836

    A system administrator attempting to navigate to the 'Data Assets' page for an established connection encounters an error A system administrator should have the necessary permissions to access the 'Data Assets' page for established connections and be able to create, edit, and delete tables without encountering an error.
    1. Navigate to the 'WDF overview' page.
    2. Select an existing established connection.

    Note that an error message is displayed: 'Data Fabric Hub: Unable to retrieve connection fields. com.glide.processors. json.ACLException: getSavedConnection is only authorized for role df_connection_admin'.

    Data Fabric Table Glide Services

    PRB1878928

    Error messages from the remote system aren't bubbled up on the UX With a bad username or key, all it says is 'Encountered an unexpected exception. Please try again later', instead of bubbling up the right error message.
    1. Navigate to Workflow Data Fabric (WDF).
    2. Create a new Snowflake connection.
    3. Enter a bad username.

    Note the error: 'Encountered an unexpected exception. Please try again later'.

    Data Fabric Table Glide Services

    PRB1881090

    listAllMappedTables fails when connections mapped to tables are missing If a table mapped to a connection/catalog is missing in the sys_df_connection_metadata table, the listAllMappedTables API fails with an error: 'Cannot invoke "com.glide.datafabric. schemamapping. SchemaCaches $ConnectionInfo. getConnectionSysId()" because "connectionInfo" is null'.

    Data Fabric Table Glide Services

    PRB1881218

    Update handleConnectorError to read from parm2 Connection/catalog details are now provided as part of 'parm2' when a warn/error event is generated.
    1. Create a ConnectorErrorException.
    2. Verify that this generates an event 'data_fabric.error.connector_error'.

    Notice connection details are available in parm2.

    Data Fabric Table Glide Services

    PRB1881820

    A system admin isn't able to create a connection
    1. Impersonate a system admin.
    2. Navigate to any connection form on Workflow Data Fabric (WDF) UI Hub.
    3. Fill the form with correct credentials.
    4. Select the Connect button.

    Expected behavior: The connection is established.

    Actual behavior: The connection isn't established.

    Data Fabric Table Glide Services

    PRB1884525

    Users can't delete columns from a data fabric (DF) application table In the create (or update) DF application table flow, it calls the persistence loadSchema() API before dropping the columns. This order is incorrect because the loadSchema API updates the TableDescriptor, and in case of when the column was deleted, the TableDescriptor doesn't contain that column. When dropColumn is called, an error displays.
    1. Create a Glide table with 3 columns.
    2. Call the createAppTable API to create a data fabric table based on this Glide table.
    3. Delete 1 column from the Glide table.
    4. Call the createAppTable again.

    Expected behavior: This column should get deleted from the data fabric table as well.

    Actual behavior: There's an error.

    Data Fabric Table Glide Services

    PRB1884668

    listAllMappedTables doesn't return glideTableLabel
    1. Create a data fabric (DF) table.
    2. Using 'Scripts Background', call SchemaMapping. listAllMappedTables.

    See that the response doesn't include any table's label.

    Data Fabric Table Glide Services

    PRB1884675

    Unable to connect to Oracle connector Error: 'GlideElementPassword2 SEVERE * ERROR * GlideElementPassword2 couldn't encrypt the column: snc.oracle.wallet-pem-content from table...java.lang.Exception: Action abort: Password value is too long and could be truncated after encryption. Please either reduce password length or increase field size'.
    1. Navigate to an instance.
    2. Try to connect to Oracle.

    Notice the error message from the attachment.

    Data Fabric Table Glide Services

    PRB1885160

    Users are unable to update the connection details in 'Edit' mode
    1. Navigate to Workflow Data Fabric (WDF).
    2. Create a connection.
    3. Try to edit the connection and update the connection details.

    Notice that this doesn't work and the connection attributes remain as is.

    Data Fabric Table Glide Services

    PRB1885246

    Data Steward is unable to delete a Workflow Data Fabric (WDF) table from a scoped app
    1. Navigate to an WDF UI Hub.
    2. Create a new connection in any scoped app.
    3. Navigate to the 'Access Controls' tab.
    4. Add a Data Steward/Connection Admin role.
    5. Save it.
    6. This assigns the user with a Data Steward role to have access to the 'Data Assets' page of the established connection.
    7. Additionally, provide the Delegated Developer role to the same user so that they are able to create tables in the same scoped app.
    8. Impersonate the user having the Data Steward role.
    9. Create a WDF table.
    10. Attempt to delete the table.

    Expected behavior: The table gets deleted and there's a success message on the WDF UI.

    Actual behavior: The table doesn't get deleted and an error is displayed: 'Failed to delete table. Please try again'.

    Data Fabric Table Glide Services

    PRB1887047

    Updating UI messages based on product review feedback No functional issue exists. The changes are related to improving clarity, tone, or consistency of UI text messages as per the latest product expectations.

    Data Fabric Table Glide Services

    PRB1888231

    The 'Glide Internal Connection' isn't displaying in the established connections if the Workflow Data Fabric (WDF) license check fails 'Glide Internal Connection' should be available in the established connection by default, regardless of the instances licensed to WDF or not.
    1. Check for an instance that isn't licensed to WDF.
    2. Navigate to WDF Hub.

    See that the 'Established Connection' section has no connections.

    Data Fabric Table Glide Services

    PRB1888349

    Schema mapping API responses should return as a NativeObject When the table doesn't exist, it throws an exception. The jsFunction_listColumnsInTable doesn't catch it and lets the exception pass through, resulting in an error message that doesn't make sense.

    Data Fabric Table Glide Services

    PRB1888617

    Users can't drop a locally mapped data fabric (DF) table without a Workflow DF (WDF) license There's an error: 'Failed to establish connection. Check your credentials or try again later. If the issue persists, contact your administrator. Additional Details: Instance is not licensed for Zero Copy Connectors cannot execute dropDataFabricRemoteTable.'
    1. Navigate to an instance that doesn't have Trino configured, and which doesn't have the WDF license.
    2. Create a locally mapped DF table.
    3. Try to delete this new table.

    Notice that dropping a locally mapped DF table should be possible without a WDF license.

    Data Fabric Table Glide Services

    PRB1888676

    A data steward can't create a data fabric (DF) table in a scoped app for a local instance connection When a data steward connects a application table, it can connect it to local tables. During selecting columns, the column that isn't supported should be grayed out and not selectable from the menu. This scenario occurs for developed applications that have a space in the name(" ").
    1. Log in as a user having the delegated_developer role and data steward role for any scoped app.
    2. Navigate to Workflow Data Fabric Hub.
    3. Select Servicenow Local Instance connection.
    4. Select any table belonging to the sn_admin_center scope from the schema list.
    5. Make the column selection for the DF table to be created.
    6. Select Continue.

    Expected behavior: The table gets created.

    Actual behavior: The table doesn't get created and throws the following error: 'Alert level: critical. Failed to create data fabric table with error: Data Fabric Hub: Unable to create a data fabric table. Failed to create data fabric table. You must have delegated development roles in this application scope to create a data fabric table'.

    Data Fabric Table Glide Services

    PRB1889059

    An upgrade resets to an 'open' instance status workaround on production test instances Data fabric tables and zero copy connectors require a product to operate due to their additional Trino infrastructure. The zero copy connector metadata has been moved into a licensed store application sn_data_fabric_ connector_metadata. The Trino code is part of a core plugin, and the ability to reserve a Trino cluster should be limited to instances that are entitled to the zero copy connector application.
    1. On a production instance, set the instance status to 'Open'.
    2. Upgrade the instance to an updated track version.

    Note that the status is reset to 'Closed'.

    Data Fabric Table Glide Services

    PRB1889097

    Users encounter an error when attempting to map a 'char' column from an application table to a data fabric table Additionally, users are unable to add a new column with the 'char' data type when creating a data fabric table from scratch.
    1. Navigate to the 'Data Assets' page.
    2. Select an existing schema and table.
    3. Select Create Table.
    4. Provide a name for the new data fabric table.
    5. Select Continue.
    6. In the column definition section, attempt to add a new column with the data type set to 'char'. Alternatively, if editing an existing data fabric table, try to change the data type of a column to 'char'.

    Observe that the option to select or add a 'char' column is unavailable.

    Data Fabric Table Glide Services

    PRB1889647

    'Ship First Party App to a new instance' and 'Edit connection' doesn't handle the TD cache properly

    Data Fabric Table Glide Services

    PRB1890695

    Ensure that empty non-mandatory connection fields passed to the backend are handled correctly for all connectors

    Data Fabric Table Glide Services

    PRB1892019

    Integrate with the 'Persistence' API for to check the referenceable columns from a table during data fabric (DF) table creation Today, if users try to create a reference to a Glide table from a DF table, it provides the sys_id as the only option unless there's a unique key.

    Data Fabric Table Glide Services

    PRB1892093

    Address decryption issues with password2 fields Users are getting an error when trying to establish connections: 'Alert level: critical. Failed to establish connection. Check your credentials or try again later. If the issue persists, contact your administrator. Additional Details: data fabric engine connection test failed'.

    Data Fabric Table Glide Services

    PRB1893391

    Users are able to make a reference from-to any type when creating a data fabric table As part of this, references aren't allowed if the remote column type is integer. Only strings are supported.

    Data Fabric Table Glide Services

    PRB1893437

    Data fabric (DF) table default ACLs aren't consistent with a regular table's DF tables should have default ACLs and table access policies set correctly.

    Create a DF table in a private scope or in the global scope.

    Expected behavior: Default ACLs match to that of regular platform table's.

    Actual behavior: All the table access policies are set true except delete. No ACLs are created by default.

    Data Fabric Table Glide Services

    PRB1893502

    Deactivated connection tables are missing from the data fabric 'Tables' page
    1. Navigate to the 'Established Connections' page.
    2. Open an existing connection with associated tables.
    3. Deactivate the connection.
    4. Navigate to the data fabric 'Tables' page.
    5. Observe the displayed tables.

    Expected behavior: The deactivated tables should be available under the 'other' section within the data fabric 'Tables' page. The user should be able to change the connection of the tables under the deactivated connection.

    Actual behavior: Tables associated with a deactivated connection aren't on the data fabric 'Tables' page.

    Data Fabric Table Glide Services

    PRB1894742

    Adding a mapping level checks to check if the source table has RCAs Currently, when a data fabric (DF) table is created from a Glide local table as the source, there are no checks in place to enforce if the source Glide table needs RCAs to access the table.
    1. Create a DF table using the Glide_internal connection.
    2. Select a Glide local as source, which needs RCAs to access the table.
    3. Select columns to be mapped and complete the mapping.

    Data Fabric Table Glide Services

    PRB1895491

    There's an ACL exception as part of the exception translation service When a user tries to delete a data fabric (DF) table when not authorized, it can throw an ACL exception. This exception must be handled in the exception translation class.
    1. Log in as an non-admin user.
    2. Try to delete a table created in the global scope.

    Observe that this throws an ACL exception: 'Failed to establish connection. Check your credentials or try again later. If the issue persists, contact your administrator. Additional Details: You must have the admin role to create or delete a data fabric table in the global scope'. The error message is misleading. The expected message is 'Failed to delete data fabric table. You must be authorized to create or delete a data fabric table in the global scope'.

    Data Fabric Table Glide Services

    PRB1896064

    A Snowflake established connection is broken after PEM key expiry and new key replacement After updating the new key in established connections, in some instances the connection is successful, but the page goes blank.

    Data Fabric Table Glide Services

    PRB1897712

    Query errors from connectors change the connection status to NOT_CONNECTED When there was a query error from a connector, the connection status was changed to NOT_CONNECTED. The connection status is supposed to change to not connected only when there's a real connection level error.

    Discovery

    PRB1812384

    KB2234218

    Inclusion pattern discovery fails with a NullPointerException if one of the identifications fails for a parent pattern When the main pattern identification a fails, a NullPointerException exception is thrown: 'com.snc.sw.exception. PatternDebuggerException: Debug task failed to initialize parent CI for entry point: null.'

    Refer to the listed KB article for details.

    Discovery

    PRB1843083

    The Discovery monitoring job to search for future jobs before deciding to terminate a status The monitoring job cancels the status even though the instance has a job for it but hasn't pick it up yet.
    1. Have a status that is 'stuck' - input ECC queue in 'ready' state for more than 20 minutes.
    2. Have a record for that ECC queue in sys_trigger table that is for the future.

    The job should cancel the status even though the instance has a job for it but didn't pick it up yet.

    Discovery

    PRB1884527

    KB2078932

    A pattern on Agent Client Collector (ACC) requires MID specific configurations to the target device When running a pattern on ACC, it requires the MID server to have discovery-specific port connectivity to the target instead of only using the ACC specific port.

    Refer to the listed KB article for details.

    Document Intelligence Unified Backend

    PRB1802663

    A reference qualifier isn't applied for reference fields in the Agent Viewer experience

    Document Intelligence Unified Backend

    PRB1897412

    Enable field group name update using Glide This is a product update.

    Dynamic Scheduling

    PRB1851315

    When a dispatcher from an Australian timezone creates a personal event, the tasks overlapping the events aren't unassigned
    1. In Dispatcher Workspace, set the timezone of the dispatcher to be an Australian timezone.
    2. Create a task on one agent.
    3. With the same dispatcher, create a personal event that overlaps the tasks.

    Expect behavior: The overlapping task would be unassigned.

    Actual behavior: The overlapping task isn't unassigned and still overlaps the event.

    Dynamic Scheduling

    PRB1894500

    A work order task (WOT) isn't assigned to the selected user when using assignment assistance when there's no associated assignment group This issue occurs in Yokohama.
    1. Create a WOT in a 'pending' dispatch state with no assignment group associated with it.
    2. Log in to Dispatcher Workspace.
    3. Select any WOT that doesn't have an assignment group associated with it.
    4. From the 'Task' panel, select Overflow action > Assignment assistance.
    5. Select any agent that has been recommended.
    6. Select Save.

    Expected result: Either a proper message should be displayed that no agents should be recommended or the proper assignment group should be selected and the WOT should be assigned to the selected agent.

    Actual behavior: The following message is displayed and the WOT isn't assigned: 'This agent is busy during this time. Choose another agent.'

    Edit List Columns

    PRB1855487

    Changing an operator to 'is' reverts the reference list to a normal list and causes the Caller field to display as '(Empty)'
    1. Log in to any instance.
    2. Open any NRLC Workspace.
    3. Navigate to Incidents > All/Open.
    4. Double-click a cell in the 'Caller' column to enable inline editing, then select the magnifying glass icon.
    5. Select the three-dot filter next to the 'Email' column and change the operator to 'is'.

    Expected behavior: The operator should be changed to 'is'.

    Actual behavior: Changing the operator to 'is' reverts the reference list to a normal list and makes the Caller field '(Empty)'.

    Email Notifications

    PRB1887279

    After a Yokohama upgrade, notifications broke because of an email script update After an Yokohama upgrade, the email notification content broke. On analysis, it was found it might be caused by a change in one of the email scripts during the upgrade.

    Employee Profile

    PRB1895942

    There's encryption of attachments by users with the 'sn_employee.admin' role after upgrading to Xanadu The user is creating attachment records via a table API through a MID server script include. The attachments were previously not coming in as encrypted. After upgrading to Xanadu, they are being encrypted due to the 'sys_kmf_crypto_ caller_policy_ 0b3419d867 323110fc90a2 aeb8f922c0' policy.

    Event Management

    PRB1842971

    Service Dashboard doesn't load due to a slow API When there are many services (~2 million) on cmdb_ci_serice_auto and cmdb_ci_service_auto_cache is empty, Service Dashboard doesn't load.

    Event Management

    PRB1867782

    Slow EM Events processing due to the default value for 'evt_mgmt.max _characters_in _additional_info' is too low When there are many events with addional_info length > 600,000 characters, events processing becomes slower.

    Event Management

    PRB1872971

    KB2060302

    Tag-based groups can include alerts which don't match the rule's filter In the Xanadu release, a new tag-based alert correlation mechanism was introduced using the 'Query' job (via the Service Analytics RCA/Alert Aggregation job). There's an issue where alerts matching different tag-based definitions may not be grouped correctly if they arrive close together in time.

    Refer to the listed KB article for details.

    Event Management

    PRB1884824

    KB2082291

    Tag-based groups can include alerts which don't match the tag-based alert clustering definitions tags

    Refer to the listed KB article for details.

    Event Management

    PRB1884862

    If there's an automatic group filter for automated groups, tag-based groups aren't created The alerts that are supposed to be grouped aren't grouped.
    1. Create a TAG definition or use a base instance definition.
    2. Create an automatic group filter for automated groups with something illogical so that the automated groups won't be created.
    3. Send at least two events that fit the definition.
    4. Wait for grouping job to run.
    5. Verify that alert exists in sa_agg_group_alert_staging table.

    Notice that alerts that should be grouped aren't grouped.

    Event Management

    PRB1886771

    Alerts with the same CI metric name aren't grouped together in the CMDB group if automated alert grouping is turned off When Automated (ML based grouping) is turned off, the CMDB group isn't created for alerts with the same CI metric name.
    1. Turn off automated (ML based) alert grouping.
    2. Send two events with same CI metric name to create two alerts.

    Observe that CMDB group isn't created.

    Event Management

    PRB1889397

    If there's an alert with its initial event generated time in the future, an alert isn't added to tag-based group or alerts are split into a different group
    1. Create a tag definition.
    2. Create several events, whose alerts may be grouped by tag according to the definition above.
    3. Create another event.
    4. Change via script the initial event generated time (initial_remote_time) to the future of the relevant alert.
    5. Create one more event and don't change the time. It should be added to the exiting group.

    All events should be in the staging table, but aren't.

    External Triggers

    PRB1878365

    Change sys IDs to readable values in GCF definitions of external triggers

    Field Service Marketplace

    PRB1874290

    The 'Add Contractor' action is still active in lane 2 of the playbook even after moving it to lane 3 The issue is reproducible in Yokohama and Xanadu.
    1. Provision an instance with the Contractor Management and Marketplace Plugins installed.
    2. Log in as wm_dispatcher.
    3. Create a work order task (WOT) in Workspace.
    4. Push to marketplace.

    The user lands on playbook experience where in the lane 1 request is created. In lane 2, after selecting contractors and moving to lane 3, if the user navigates back to lane 2, the Add Contractor action is still active. But when selected, it throws an error.

    Field Service Marketplace

    PRB1895775

    'Add contractor' isn't turned off in playbook lane 2 and lane 3 after the status is complete for that lane until the page is refreshed
    1. Create a task.
    2. Push to MP.
    3. In lane 2, select Contractors.
    4. Push the request.

      It redirects to lane 3.

    Notice in lane 2, Add Contractor is still enabled until the page is manually refreshed. Similarly on lane 3, Add contractor is enabled even after selecting the Close response window.

    Field Service Task Bundling

    PRB1888651

    'Add to Bundle' fails on the latest 28.x DWS

    Flow Engine

    PRB1811796

    Nodes went offline and won't rejoin a node pool after a restart due to stack overflow in EventHandlerJobPool Self hosted instance few nodes crashed due to the 'com.glide.event_ manager.process_ automation.event_ handler.workers' system property with the value -1.
    1. Navigate to /sys_trigger_list.do.
    2. Add filter Name=Process Automation Event Handler.

      By default, there should be 2 per node.

    3. Change the system property 'com.glide.event_ manager.process_ automation.event_ handler.workers' to -1.
    4. Navigate back to check the same page/filter as step 1.

      There should now be 0 Process Automation Event Handler records.

    5. Navigate to All > Node Logs File Download.
    6. Download the localhost_log.current_date.txt.

    Observe that the logs contain a retry attempt message multiple times and afterwards throws a StackOverflowError.

    Flow Engine

    PRB1853618

    High priority (P0-P4) flow events should be queued on the current node for lower latencies High priority events aren't cached to the current node. This results in longer latencies (30+ seconds), which shouldn't exist for high priority flows.

    Flow Engine

    PRB1860060

    sys_flow_context_inputs_chunk record was removed by the table cleaner before the SLA timer resumed Currently, the table cleaner of sys_flow_context_inputs_chunk has the condition matchfield=sys_created_on with age = 3,628,800 sec (42 days) and the original inputs is false. The original inputs field is set to false right after the flow starts. If the SLA definition has a long duration, the table cleaner may remove the sys_flow_context_inputs_chunk record before the SLA timer resumes.

    Flows (Family Channel)

    PRB1816646

    The update number on the record remains the same when it is updated by the subflow and parent flow in sequence, causing inconsistencies in SLA executions When the subflow updates the trigger record, and parent flow updates the same trigger record, the update number on the trigger record remains the same. This impacts respective SLA executions on the record.

    Flows (Family Channel)

    PRB1891084

    Alias override mappings for V2 action instances aren't captured in flow update XML This issue was caused by the introduction of JSON save on action instances. The FlowDesignerSychnronizer isn't syncing related records for V2 action instances.
    1. Ensure glide.flow.version != '1'.
    2. Provision an instance with the ID com.glide.hub. integrations.enterprise plugin installed.
    3. Add an outbound connection for the spoke being used.
    4. Create a flow.
    5. Add either the Create a Container action or some other action with a 'connection' action property.
    6. Pick the connection from step #1 as the 'Docker Connection' on the 'Create a Container' action instance just added.
    7. Save the flow.
    8. Look for the most recent sys_update_xml for the flow.
    9. Open the XML viewer for the sys_update_xml payload field.

    Observe that the sys_hub_alias_mapping is missing.

    FX Currency Conversion

    PRB1861950

    KB1962510

    Daily currency rates retrieval from European Central Bank (ECB) may fail due to a lack of response from an Online Certificate Status Protocol (OCSP) endpoint The 'Retrieve System Rates' and the 'ECB Exchange Rate Load' jobs, which are used to capture currency exchange rates using the ECB endpoint, are failing intermittently across multiple instances because the OCSP endpoint for ecb.europa.eu isn't answering validity questions during certain times.

    Refer to the listed KB article for details.

    GlideRecord

    PRB1864786

    When creating a reservation with an incorrect warehouse, the connection is set up but the Glide Table UI fails to log, and errors display Sometime when loading the UI page, the first page displays data but the data is invalid. The next page is empty with no errors. There's an error in the log: '*** ERROR *** Encountered Exception while loading Table from ResultSet, closing java.sql. SQLException: Query failed (#20250312_ 222003_00046 _c99gn): No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' command.'

    GlideRecord

    PRB1865565

    The data fabric (DF) Logger and error event handling mechanisms are missing the catalog, details, and queue The current implementation of the logger and error event handling mechanisms has three issues. The logger doesn't automatically include the catalog when it is missing in the logger builder, even though it is available in the exception details. The generated error events lack essential details such as table, schema, and catalog information, making it difficult to trace the source of issues. Error events are currently handled in the generic queue.

    Trigger a ConnectorErrorException where the catalog is available in the exception details but not explicitly set in the logger builder for an inactive connection/catalog.

    Observe that the df_log table log records display up without the catalog name, the first parameter field of the generated event doesn't include the catalog/table/schema name as a key/value field, and events are not part of any queue.

    GlideRecord

    PRB1865622

    GlideRecord queries are processed even though the connection status is 'INACTIVE' Currently, the connection status to 'INACTIVE' is ignored, and the queries are processed. Users expect query requests to be blocked when the connection status is 'INACTIVE' to prevent unnecessary processing and failures. An error message should be displayed.

    GlideRecord

    PRB1869620

    'Data Fabric Logger' and 'Error Event Handling' are missing catalog, details, and queue 'Data Fabric Logger' was using 'Map.of', which throws an error when any values are null. Some of the values for catalog, schema, table, dfTable, logcategory could be null, so this shouldn't have thrown an error.

    GlideRecord

    PRB1871360

    Review the RecordCache API in relation to the data fabric (DF) table The SQL query is executed 9 times on the workspace form view load. Extra queries occupy the cluster as well as semaphores which may impact non only Workflow Data Fabric (WDF) related traffic on the instance, but non-WDF as well, by exhausting semaphores.
    1. Navigate to /now/sow/list.
    2. Create 'My list' using a WDF table.
    3. Open the created list.
    4. Open the form from the list.

    GlideRecord

    PRB1871916

    If PK fields are defined where values are null, there should be an alert on lists, forms, and Genius Results stating that platform functionality is limited
    1. Define a Workflow Data Fabric (WDF) table.
    2. Set the PK to 1 or more fields that have null values.

    Platform behavior related to the sys_id is strange because it's difficult to identify that record uniquely and reliably. An alert should be present and a warning log message in 'df_log' should be present stating that platform functionality is limited. There should be an error message in the 'df_log' table. There should also be a sysevent starting with the name 'data_fabric.error.PrimaryKeyProblem'.

    GlideRecord

    PRB1871950

    If PK fields are defined where values are null, there should be an alert on 'List', 'Form', and Genius Results stating that platform functionality is to be limited If a Genius Results (GR) query includes query params on all the PK fields, and the database returns 0 or more than 1 record, GR should set LastErrorMessage and lastException stating that the primary key isn't unique. The list and/or form view should display the error message.
    1. Define a Workflow Data Fabric (WDF) table.
    2. Set the PK to 1 or more fields where the fields don't uniquely identify each record.

    Expected behavior: The platform lists display a list of records when selecting a record to open the form view. There should be an alert stating that there is a problem with how the PK is defined. This doesn't fix the form or list operation, but it tells the user that something is not right.

    Actual behavior: The platform list displays a list of records when selecting on a record to open the form view. The expected record isn't selected. There should be a warning/info message on the list and/or form page if the GlideRecord query on a WDF table where the primary key isn't defined to have actual unique records. There should be an error message in the 'df_log' table. There should also be a sysevent starting with the name data_fabric.error.PrimaryKeyProblem.

    GlideRecord

    PRB1872592

    A sys-event record non-translatable exception is created with the Name field having 'data_fabric' appearing twice The Name field of the record contains the text 'data_fabric .error.data _fabric.operation. unsupported'. All teams write to that log.

    GlideRecord

    PRB1874644

    A 'PK Problems' warning displays in cases when it shouldn't If PK fields are defined, and the query condition is on PK fields but it's not an equals condition, there's a warning that 1 or more record was found. The warning should only display if the condition is on an equals operator. Also, if a query is on PK fields, but the query also has an exception that results in zero records returned the PK warning that zero records were found displays. Warnings about PK problems shouldn't display if there was a separate exception preventing the query for executing properly.

    GlideRecord

    PRB1881668

    Every message logs as an error in the df_log table For example, 'Error WDF_CONNECTION_MANAGER Successfully refreshed remote connection DataFabric'.
    1. Navigate to any instance.
    2. Connect to Big Query.
    3. Map a table.
    4. Navigate to the df_log table.

    Notice every log is recorded as an error.

    GlideRecord

    PRB1884480

    GlideTrinoStatsListener log update The log level should be changed to 'DEBUG' on GlideTrinoStatsListener of the processStats.

    Trigger a Trino Query.

    See that GlideTrinoStatsListener logs TrinoStats at the 'INFO' level.

    GlideRecord

    PRB1887896

    Unsanitized cache TTL attribute read causes NumberFormatException The 'Data Fabric Cache' table is created during the first query execution. This approach introduces unnecessary query latency for the user's first access to the cache.
    1. Enable caching.
    2. Add or modify a cache TTL configuration with a non-numeric value (for example, '30s' instead of '30').

    Observe that the log throws a NumberFormatException.

    GlideRecord

    PRB1888657

    Add indexes on the 'Data Fabric Cache' table The 'Data Fabric Cache' table lacks necessary indexes on two critical fields: cache_key and cache_expires_at. This absence can cause performance degradation when querying the table, particularly in high-volume transactions and during cache cleanup operations.

    GlideRecord

    PRB1889243

    There's a 'NamedMessage.getMessage (L10N_CODE, errorMsg, map)' variable warning

    GlideRecord

    PRB1889865

    Getting an error for a standard record page template in runtime when using a test value table as 'incident' in UI Builder Error: 'Platform behavior may be limited because of problem detected with primary key definition, zero records were returned for table...'
    1. Navigate to UI Builder.
    2. Create a page from the 'Standard Record Page' template.
    3. Update the table test value.
    4. Select incident.
    5. Save the page.
    6. Select the preview menu and select 'Open URL path'.

    Expected behavior: The page loads in runtime without any error.

    Actual behavior: The page loads fine but the user is alerted about the error.

    GlideRecord

    PRB1894453

    Create a scripted definition for usage metrics

    GlideRecord

    PRB1895699

    A cache table creation message is displayed for data fabric (DF) tables

    Create a DF table.

    A message for cache table creation is displayed when the user visits the list page of the newly created DF table.

    GlideRecord

    PRB1897719

    Optimizations for data fabric caching Introduced strict validation and logging for 'IQueryCondition' types. Only allow caching for queries using fully supported conditions. Added support for longer than 74 characters table names by using a new format for the cache table name when the table name length is between 74 and 80 characters. Flushing the data fabric cache every time the TTL attribute gets changed to prevent serving stale data. Changed the log category for the 'Data Fabric Cache' table to 'WDF_CACHE_TABLE' to improve log filtering and analysis. A new scriptable API method 'DataFabricCacheManager. flushCache(df_table_name)' is available and accessible via scoped application scripts.

    GRC: Business Continuity Planning

    PRB1894009

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Business Continuity Planning This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Business Continuity Planning

    PRB1897810

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Business Continuity Planning This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Continuous Authorization and Monitoring

    PRB1893692

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Continuous Authorization and Monitoring This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Metrics

    PRB1894403

    When EBA is enabled, a query range isn't working on the 'Threshold' table due to a 'deny unless' ACL It throws an error, but it should be able to query the records if the user has access.
    1. Log in as a ESG user to the latest main instance.
    2. Open the 'Threshold table list' view.
    3. Try searching thresholds by query range.

    GRC: Operational Resillience

    PRB1896635

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Operational Resillience This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Privacy Management

    PRB1900172

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Privacy Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Profiles

    PRB1894767

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Profiles This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Regulatory Change Management

    PRB1890993

    Addition of Query ACLs in GRC: Regulatory Change Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Risk Shared Common Components

    PRB1897619

    Addition of Query ACLs in Access Control List (ACL) Rules in GRC: Risk Shared Common Components This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    GRC: Vendor Portal

    PRB1889689

    Addition of Query ACLs in GRC: Vendor Portal This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    HR Service Delivery

    PRB1874464

    The 'Suspended Reason' is overwritten with its previous value when the case moves from 'Draft' to 'Suspended state' The issue is only reproducible when: the state moves directly from 'Draft' to 'Suspended', on HR Agent Workspace and not on UI16, and when the Suspended reason [sla_suspended_reason] field is on the form.
    1. Log into an instance.
    2. Impersonate a system administrator.
    3. If the Suspended reason [sla_suspended_reason] field isn't on the HR Case 'Workspace UIB' view, add it to the form.
    4. Open HR Agent Workspace.
    5. Create an HR Case with the HR service 'General Inquiry'.

      Notice how the Suspended reason field displays as 'User' but it's empty.

    6. Manually set the State field from 'Draft' to 'Suspended'.

      A pop-up window displays.

    7. On the modal, set the reason to 'Group', add work notes.
    8. Select ok.

    Expected behavior: The 'Suspended Reason' should be 'Group'.

    Actual behavior: The 'Suspended Reason' is set to 'User'.

    HTML Field Type Editor

    PRB1897036

    NACM auto-grow functionality doesn't work correctly for Hebrew language content Selected text is incorrect and elaborate/shorten is done on empty text. When the default preset action is present along with preset actions, the user doesn't see a preset menu and instead sees a default preset action.

    Identification and Reconciliation API

    PRB1898162

    Dynamic IRE key enhancement and validation This is a product update.

    Install Base Management Store

    PRB1890911

    Due to query match and query range ACLs, related list cases on product inventorie (PI) aren't accessible to a contact on Business Portal

    Instance Data Replication (IDR)

    PRB1884096

    When a consumer replication set is created, the replication entry should have 'Preserve Modified By' set to true

    Instance Data Replication (IDR)

    PRB1893073

    Implement a not-allow list for data fabric (DF) tables in Instance Data Replication Users shouldn't be able to create replication entries against DF tables.

    Knowledge Management

    PRB1882852

    A source field isn't attached with the GlideRecordSecure insert operation There's a field-level ACL kb_knowledge.source with the role 'nobody' on the write operation, which prevents populating the source field for the 'create' operation.

    List Administration

    PRB1808314

    The user is unable to personalize list columns for Oracle DB instances A related list renders with old columns.
    1. Log in to an Oracle DB instance as an admin user.
    2. Open an incident on Service Operations Workspace.
    3. Select Related records.
    4. Select any of the related lists (for example, Task SLAs).
    5. Select the gear icon and Edit Column.
    6. Select some new columns and select Ok.

    Expected behavior: The related list should render with new columns.

    Actual behavior: The related list renders with old columns.

    List Administration

    PRB1847198

    featureFlags of sys_ux_list isn't working when switching between list menu lists in a 'New list' template The default values of controller props are used on the cases, other than the first load.
    1. Create a UI Builder page with a 'New list' template page.
    2. Update some feature flags in one of the sys_ux_list items.
    3. Navigate to the 'Realtime' page of the newly created list template page.
    4. Select the list menu list where the feature flags are modified.
    5. Switch to some other list in the same menu.
    6. Switch back to the previous list.

    Expected behavior: quickEdit should be hidden by honoring the sys_ux_list config.

    Actual behavior: quickEdit is visible.

    List Administration

    PRB1861358

    The rich description appears as NULL in the 'List' view but displays correctly in the case record
    1. Log in to an instance.
    2. Create an HR case.
    3. Navigate to sn_hr_core_case.LIST.
    4. Open the newly created case.
    5. Select the hamburger icon and configure the form layout.
    6. Add the Description field.
    7. Save the changes.
    8. Return to the HR case form.
    9. Enter a message in the Description field.
    10. Save the changes.

    Observe that the same value is automatically updated in the rich_description field. This behavior is due to the 'Sync Description with rich_description' business rule that synchronizes the values of the Description and rich_description fields. When users go to the list view and add the 'Description' and 'rich_description' columns, notice that the rich_description field doesn't contain any value. The reverse works as expected; when users update the rich_description field in the HR case form, the value appears in the rich_description field in the list view.

    List Administration

    PRB1887929

    A list type field isn't displaying the choice label on a list and instead displays its choice value If choices are created on a task it works as expected. If choices are created on an incident only, there's a behavior difference between Xanadu and Yokohama. If choices exist for both tasks and incidents, the incident list in Yokohama incorrect displays task choice labels.
    1. Navigate to a Yokohama instance.
    2. Navigate to a dictionary.
    3. Create a list type field on a 'Task' table.
    4. In the choices related list on a dictionary, create some choices for an 'Incident' table where the label differs from the value.
    5. Navigate to an incident form.
    6. Configure the form.
    7. Add the created list type field on the form.
    8. For the list type field, add some value in the form.
    9. Navigate to incident.list.

    Notice the list type field is displaying the choice value instead of the choice label. Repeat the same step in a Xanadu instance and observe it is working fine.

    List Controller

    PRB1872717

    When the user creates a new 'My List' and edits the columns, the list doesn't display personalized columns until the page is refreshed

    List Controller

    PRB1892485

    Reference fields in a 'Workspace' list cause slowness, as each reference triggers an additional SQL call In workspace, every reference in the list is requested separately. In contrast, in UI16, a single query with a JOIN is executed for the whole list representation. While for the primary database it doesn't have a significant impact, for Workflow Data Fabric tables (WDF), where each query takes >1s, even with small tables loading a list with 20 records can cause significant performance degradation.
    1. Create a table with a reference to the WDF table.
    2. Open /now/sow/list.
    3. Create 'My list' using the newly created table.
    4. Open the list.

    All references are requested from the external data source one by one for each record, even if there's duplicates.

    Major Incident Management

    PRB1891876

    The View Workbench UI action is redirecting to a broken 'Activity' section when opening it for a second time on a major incident form on the classic UI After upgrading in Yokohama, when managing a major incident (MI) in the classic UI and moving to the 'Workbench' view, it's not loading properly. It's redirecting to a MI management broken activity view.
    1. Open any major incident.
    2. Select View workbench.

      MI workbench loads.

    3. Select View form.
    4. Once the form is loaded, select View workbench again and wait.

    See that a different form view is loaded instead of workbench. It seems to be that the redirection URL is changing to this form view.

    MID Server

    PRB1864193

    Upgrading a Linux MID Server to Xanadu reverts mid.shconf_override to the default setting mid.shconf_override has an empty setting. It's reverted to default setting after upgrading.

    Mobile Platform

    PRB1883251

    The 'Block Mobile Attachment Sharing' property for Mobile doesn't support exemption based on user roles Changing the property glide.sg.block_ mobile_attachment _sharing from 'false' to 'true' should exempt some users based on their roles for the security property.
    1. Navigate to sys_properties.list.
    2. Change the property glide.sg.block _mobile_attachment _sharing from 'false' to 'true'.

    Notice that this applies to all users, when only some users require the ability to download or view attachments on Mobile based on their role.

    Next Experience Notifications Menu

    PRB1851718

    A URL isn't updated when navigating from the migrated dashboard by clicking the notifications There's an issue on the unified navigation side that is causing this for several releases.
    1. Navigate to pa_dashboards.LIST.
    2. Select a dashboard.
    3. Choose Migrate Dashboard from the 'Actions' menu.
    4. Open the migrated dashboard from the message displayed on the top of the page.
    5. Search for the migrated dashboard and open it.
    6. Have a notification in the notification bell at the top-right hand corner of the Next Experience UI.
    7. Select the bell.
    8. Select the incident record in the notification list.

    Observe that while the record displays in the main window, the URL bar isn't successfully updated and the tab name is wrong.

    On-Call Scheduling

    PRB1868011

    The 'Show Schedule' link doesn't work for a non-admin user After upgrading to Xanadu, non-admin users aren't able to access the on-call schedule.
    1. Impersonate a non-admin user.
    2. Open any on-call schedule for the group.
    3. Select the 'Schedule' column for any schedule.
    4. Select the UI Action Show Schedule.

    Observe that an error is thrown.

    On-Call Scheduling

    PRB1893263

    A query range error displays when the Automated Certificate Management Environment (ACME) rota_admin is accessing cmn_rota_member record filters

    OneExtend

    PRB1864500

    KB2216882

    Activating Now Assist skills creates unnecessary [sys_update_xml] records which shouldn't be transferred between instances Unexpected customer updates are being automatically generated for one_api_* tables extending [sys_metadata]. This causes confusion among users as they are unaware of how the updates are generated and these records aren't intended to be transferred via an update set.

    Refer to the listed KB article for details.

    Performance Analytics Dashboards

    PRB1900147

    Users are unable to open responsive CoreUI dashboards An error message appears: 'Sorry! The requested dashboard has not been shared with you.'

    Platform Analytics Component API

    PRB1783660

    A search isn't giving the expected results when the user language is set to non-English The localization of the title of 'Visualisations' is also not working.

    Platform Analytics Filters

    PRB1841953

    A filter is unexpectedly dispatching the 'reference' type A filter is used to return 'choice' in the filter configuration type, but it was changed it so that it may return 'reference' when the field isn't 'choice'. This isn't fully correct, and it may also cause issues to other BUs and users. The filter should always return 'choice' for single and multi-select filters.
    1. Create a dashboard.
    2. Add a filter component to it.
    3. Select as it as a 'data source incident' table and the 'field assignment' group.
    4. Add a data visualization to the dashboard.
    5. Select a 'single score' type and an 'Incident' data source table.
    6. Save the changes.
    7. Apply any value from the filter.
    8. Open the Webinspector to look at the network calls.
    9. Refresh the visualization and look at the payload of the network call for the multivis API call.

    Expected behavior: The existing filterConfigurations has a type 'choice' for single or multi-select filters.

    Actual behavior: The existing filterConfigurations has the type 'reference'.

    Platform Analytics Migration API

    PRB1882396

    KB2072479

    Recipient Users and Recipient Groups fields don't populate on migrated scheduled export records after the Platform Analytics migration After the Platform Analytics migration on Yokohama, the Recipient Users and Recipient Groups fields from scheduled reports records don't populate to the Recipient Users and Groups fields for the migrated scheduled export records.

    Refer to the listed KB article for details.

    Platform Analytics Migration API

    PRB1894148

    KB2173216

    Bulk migration rewrites the scope of all Core UI dashboards

    Refer to the listed KB article for details.

    Platform Licensing

    PRB1894922

    Apps update to true-up a newer version of LE and SM in Yokohama 'Delete auditing' is on by default for all tables. In one of the tables, there's logic that's deleting all records and re-creating them, which is flooding user audit records. By adding the no_audit_delete flag for the table, it avoids creating these audit records.
    1. On an instance with SM 4.1, create a test record in the unconfirmed_user_role table.
    2. Navigate to a sys_audit record.
    3. Filter the table by unconfirmed_user_role.

    Observe that there's delete audit records.

    Platform Runtime

    PRB1900474

    There's a difference in the number of sys_journal_field records created when running GR.setDisplayValue() before GR.insert()

    Predictive Intelligence

    PRB1820635

    Users see a 500 internal server error when doing a prediction from the Rest API explorer Error: 'error: ava.lang.IllegalArgumentException: Invalid input format...'
    1. Create a classification solution and train.
    2. Open the Rest API explorer.
    3. Select the API name as 'predictive intelligence'.
    4. Select for multiple records.
    5. Add all the queries.

    Expected behavior: The status code should be 200.

    Actual behavior: User see a 500 error.

    Predictive Intelligence

    PRB1832015

    The training failed because the solution has a table as an input field, but the platform_ml_read role is missing from the input table This issue occurs because the scheduler worker is logged in with a user that has the platform_ml_read role. If this role is missing from the table, the scheduler worker is unable to read the table data, causing the training to fail.

    Process Mining

    PRB1887194

    A root cause analysis (RCA) fails when an invalid field is present in a content pack shipped by a process configuration There's an issue when an ITSM content pack was installed on an instance and it had an RCA field 'hold_reason', which was not present in the 'Incident' table of that instance. Since there was an invalid field, RCA was failing and in guided setup and this process configuration record wasn't opening.

    Process Mining

    PRB1903878

    KB2229304

    After upgrading from Xanadu to Yokohama release, process mining filtersets and scheduled tasks are being deleted During the upgrade from Xanadu to Yokohama, the process mining filter set conditions and scheduled tasks are being deleted. Due to a backend issue, the upgrade script execution unintentionally deletes saved filter sets and scheduled tasks of Process Mining Projects. This particularly affects configurations with "transition filters" linked to scheduled tasks. Although no other customer data was affected, this issue may disrupt functionality where the deleted filter sets or scheduled tasks were actively used.

    Refer to the listed KB article for details.

    Project Management

    PRB1859066

    A Resource Assignment (RA) is associated to a new Resource Plan upon migration The resource plan associated with an RA is in the 'Completed' state. When the effort value is updated, a new resource place is created and attaches the RA to the new resource plan. A new plan shouldn't be created, and the resource assignment should be pointing to the initial completed resource plan.
    1. Create a resource plan.
    2. Allocate it.
    3. Complete the plan.
    4. Migrate the plan to resource assignment.

    Notice that upon migrating the plan, the newly created resource assignment will be linked to the completed resource plan; when attempting to change the effort type on the resource assignment record, a new resource plan with an allocated state is created.

    Project Management

    PRB1889859

    Actuals for planning item are not rolled up to the task type breakdown Enable actual costs from expense lines to rollup to the 'Actual cost' on associated cost plans related to planning items without the core table integration. When user creates a new expense line for a planning item in the 'New financials' page for a planning item, the actual cost value on the cost plan breakdown should add up to the total amount from processed expense lines.
    1. Create a planning item without integrations.
    2. Add cost plans and expense lines.
    3. Validate the actual roll up to task type breakdown.
    4. Validate the roll up to investment entity.

    Remote Tables

    PRB1885282

    There's an out of memory exception when there's JavaScript and ^NQ in the encoded query string Encoded strings are saved by calling setEncodedString on the query condition. This is done per row bases. As it is checking query conditions for each row, a saved encoded query is appended to the previous one. Eventually, it eats up the memory.

    Reporting

    PRB1874881

    A calendar report doesn't display Japanese characters correctly The issue is reproducible in Yokohama.
    1. Create a record on the vtb_task table with short description '保守:YokohamaへVerUpリグレ開始'.
    2. Create a CoreUI Calendar report based on the vtb_task table and the Updated field.
    3. On the 'Calendar' report, Japanese characters aren't displayed correctly.

    Expected behavior: '保守:YokohamaへVerUpリグレ開始'.

    Actual behavior: '20:36 保守&#xff1a;YokohamaへVerUpリグレ開始 - 保守&#xff1a;YokohamaへVerUpリグレ開始'.

    Resource Management

    PRB1860646

    A top task isn't updated for existing resource assignments when a project is made or removed from being a child of another project When a project that has an existing resource assignment is added to another project as a child project the top task of the resource assignment isn't being updated. Additionally, when a project with an existing resource is removed from being a child of another project, the top task of the resource assignment isn't being updated.

    Resource Management

    PRB1877603

    In Resource Management Workspace, there's a NullPointer exception In Resource Management Workspace, users get nullpointer exception when changing resource status for an allocation.
    1. Open Resource Management Workspace.
    2. Open a card.
    3. Change the status of the assignments for a user.

    Rollback and Recovery

    PRB1809473

    When truncating a logical non-root table in TPH or TPP, all records are stored for ancestors and siblings in a shadow table
    1. Create 2 tables using the 'Table Per Hierarchy' extension model (u_table1 and u_table2 extending the former).
    2. Seed some test data on each tables.
    3. Invoke 'DBI.tableDrop()' for u_table2 with rollback enabled.
    4. Confirm that records from u_table1 were recorded in the shadow table 'sh$u_table1'.

    That shadow table should only have records for u_table2 since those are the ones that were deleted and therefore the only ones that could be restored by rolling back the truncate of the logical table 'u_table2'. This can become a costly, unnecessary operation if the parent table is large.

    Schedule Optimization

    PRB1891169

    On Demand Intraday, selecting multiple territories displays an 'Optimizing' icon even when there's no optimization running
    1. Create an Intraday configuration for multiple territories, and ensure that those are overlapping territories.
    2. In the config, set the 'On Demand' boolean to true.
    3. As a dispatcher, navigate to Dispatcher Workspace (DWS).
    4. From DWS settings, turn off the 'Territory single select' toggle.
    5. From the territory selection on top left, select those same territories that are present in the intradat config.

    Expected behavior: We shouldn't see the 'Optimizing' icon when there's no optimization running.

    Actual behavior: Users are seeing the 'Optimizing' icon on the calendar for those territories even if there's no optimization running.

    Schedule Optimization

    PRB1898555

    When one of overlapping territories has 0 tasks, double booking happens
    1. Create overlapping territories.
    2. Ensure that one or more overlapping territories have 0 tasks.
    3. Run optimization.

    Actual behavior: None of the existing assignments for that territory are sent as locked, so it double books.

    Expected behavior: Double booking shouldn't happen.

    Server-side scripts

    PRB1883239

    ESLatestScriptLoader returns a warning message The message reads, 'Version loading was stopped by ESLatestScriptLoader for sys_es_latest_script...'.

    Service Mapping

    PRB1883153

    Blob reaper alerts for jobs that are running for less than 48 hours
    1. Navigate to sys_status.
    2. Look for records with the name 'glide.service.modeling.startSweep, glide.service.modeling.lastSweep'.
    3. Change one of them so that the value in lastSweep is 25 hours after the value in startSweep.
    4. From the browser URL, type 'https://<InstanceName>.service-now.com/xmlstats.do'.
    5. Look for blob_reaper_job_stuck and see its value is 'true'.

    ServiceNow Voice (Family)

    PRB1894893

    Add an AI Voice Agent service type to libkmf

    Service Portal

    PRB1625349

    The 'Ideas' tablist widget breaks accessibility requirements The 'Ideas' tablist widget isn't screen reader accessible because it doesn't conform to the WCAG 4.1.2 Name, Role, Value (Level A) rule. Specifically, it's missing the tabpanel role and also missing various states, properties, and values required for screen readers to be able to parse the markup and make sense of it for people with low or no vision. Right now, the screen reader isn't able to tell users when focus lands on the first tab that it is 'One of two' or 'Two of two' when focus moves to the second tab. It doesn't indicate what tab is currently selected, meaning which content is currently visible. Focus doesn't automatically move into what should be the tabpanel area, so nothing is read when the selected tab changes.

    Service Portal

    PRB1875043

    In the 'Canada - French' language, submitting a date in 'dd-MM-yy' format causes an error When a user sets their language to 'Canada - French' and attempts to submit a date in the format 'dd-MM-yy', the date doesn't apply correctly, resulting in an error.
    1. Install the plugin com.snc.i18n.french-canada (French - Canada).
    2. In the instance, navigate to All > Basic Config > Date Format.
    3. Set the system date format to 'dd-MMM-yy'.
    4. Mark the 'Sample Item' catalog item as active.
    5. Assign it a category so it displays in the service catalog for users.
    6. Set the date variable to 'mandatory'.
    7. Navigate to the /sp (Service Portal).
    8. Search for 'Sample Item'.
    9. Ensure that the language is set to French - Canada.
    10. Fill in the date variable.
    11. Submit.

    Observe that there's an error, and the date doesn't apply to the field.

    Service Portal

    PRB1891178

    The scroll doesn't work on the Portal when it is 400+ zoom
    1. Navigate to Service Portal.
    2. Zoom the size to 400%.
    3. Scroll from the top to the bottom.

    Expected behavior: The scroll should happen at 400% zoom.

    Actual behavior: The scroll doesn't work.

    Service Portal

    PRB1894604

    To reduce regressions, query ACLs are only enforced when certain conditions are met for widget-data-table

    Smart Assessment Engine

    PRB1900594

    Addition of Query ACLs in Access Control List (ACL) Rules in Smart Assessment Engine This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Software Asset Management

    PRB1830073

    KB2120852

    The 'Software Asset Connections' job fails when a cmdb_rel_ci record doesn't have a child The job fails with the error: 'Script: SAMPDataSource lntegrationUtils: [2024-11-22T23:32:26.885Z]: Unable to match value 'undefined' with field 'sys_id' in table 'cmdb_ci. Expecting type 'GUID''.

    Refer to the listed KB article for details.

    Software Asset Management

    PRB1845794

    KB2186255

    The 'ITAM License Report' module isn't displaying in upgraded instances from Washington DC/Xanadu to Yokohama releases The module is missing.
    1. Install HAMP.
    2. Log in to the instance and check for the 'ITAM License Report' module under the 'ITAM Licensing' menu.
    3. Note that the module isn't available.

    Expected behavior: The 'ITAM License Report' module should be visible under the 'ITAM Licensing' menu.

    Actual behavior: The 'ITAM License Report' module is not visible under the 'ITAM Licensing' menu.

    Software Asset Management

    PRB1878871

    The 'Publisher Overview' page doesn't load after a user clicks on the publisher card after recon is completed The 'Publisher Overview' page should be loaded completely, but only loads after selecting the Refresh button.

    Software Asset Management

    PRB1883407

    The default value for month in the samp_sw_usage table remains in the dictionary after upgrading to Xanadu
    1. Provision a Washington DC instance with samp plugins.
    2. Upgrade the instance to Xanadu.
    3. Observe the default value of month in the samp_sw_usage table.

    Actual behavior: The default value is 'January'.

    Expected behavior: The default value should be empty.

    Software Asset Management

    PRB1892609

    The install date isn't in the expected format when the date format is changed
    1. Open the 'Download GLAS' report page.
    2. Update the data and time format of the user or system.
    3. Download the vCenter VM Report.

    Observe that the 'Install date' column isn't in the expected format.

    Software Asset Management

    PRB1893997

    Install consumption journey nodes aren't displaying the correct number of installs The issue is the redundant query on the software install model.
    1. Create some software installs for SQL Server.
    2. Make a few installs inactive (active=false).
    3. Run recon and wait until the recon is complete.
    4. Navigate to install consumption analysis.
    5. Select the SQL Server root node to see the installs modal.

    Expected behavior: The number of installs on the node should match the number of installs displayed on the modal.

    Actual behavior: In the modal, the inactive installs are missing.

    SSH MID Server Communication Protocol

    PRB1887914

    SSHProtocolEngine thread is overwhelmed when SSH server starts dumping instead of sending a protocol version string This is a product update.

    Store IRM GRC Core Case Management

    PRB1892851

    Addition of Query ACLs in Access Control List (ACL) Rules in Store IRM GRC Core Case Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Store IRM Privacy Case Management

    PRB1894359

    Addition of Query ACLs in Access Control List (ACL) Rules in Store IRM Privacy Case Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Stream Connect Core

    PRB1892411

    If users get an exception during assignPartitions(), GlideHermesConsumer isn't closed in MessagePollSubscription The root cause appears to be an instance of GlideHermesConsumer that is created but not closed in the case of exceptions.
    1. Create a topic, consumer, and subscription.
    2. Shut down the Hermes cluster or do something to cause exceptions when trying to read from the topic in Hermes.

    This creates a situation where Glide picks up a subscription and tries to read from the underlying topic but can't because it is missing. This produces some stack traces in the logs.

    Stream Connect Core

    PRB1900417

    A kafka_admin doesn't have report view access to the sys_sc_alerts table
    1. Create a user.
    2. Add the kafka_admin role to the user.
    3. Impersonate as the user.
    4. Navigate to the Store app.

    In the 'Overview' page, users aren't able to view the alerts in the 'Active alerts' section.

    System Update Sets

    PRB1834468

    A sys_db_object record was created when the Function field was loaded through update, set, and commit When creating a database view and Function fields on the instance through UI, a sys_db_object isn't created for the database view table. If a commit or update contains certain actions, it will create a sys_db_object for the database view table.
    1. Import the update set that contains sys_update_xmls for the Function field for a database view.
    2. Preview it.
    3. Commit it.

    Expected behavior: The sys_db_object record was not created for the database view.

    Actual behavior: The sys_db_object record was created.

    Table Administration and Data Management

    PRB1771107

    Creating a list type field on cmdb_ci from the Configure > Form Layout page breaks the cmdb table due to the field being created with an incorrect storage alias entry After the field is created with its storage alias mapped to cmdb but the actual column in the backend being created on cmdb$par1, there's the following error when accessing cmdb_ci.list: 'Syntax Error or Access Rule Violation detected by database ((conn=218714) Unknown column 'cmdb0.list_field_name' in 'field list')'. The list displays all empty rows.
    1. Confirm that sys_table_partition.i s_current_target is true for cmdb$par1 or any of the other partitions other than the base partition.
    2. Navigate to sys_db_object.list.
    3. Open the 'cmdb_ci' table.
    4. From the related links on the form, select the Show Form link.
    5. Right-click on the form header and select Configure > Form Layout.
    6. Enter any name for the field and select:
      1. Type > List
      2. Table to Reference > cmdb_ci_service_discovered OR task.

    Notice that the field in the database gets created on the current partition like cmdb$par1 but if users look at sys_storage_alias for the new field it is pointing the storage table name as cmdb. Navigate to cmdb_ci.list to notice the syntax error message.

    Table Administration and Data Management

    PRB1888056

    DMTSchedulerUtils. scheduleDM expects a global Genius Results (GR) parameter DMTSchedulerUtils().scheduleDM results in an error: ''gr' is not defined'. There's a bug in the script that expects 'gr' as a defined global variable.

    Territory Planning

    PRB1899540

    Field Service Management data filters are restricting access for RSO/CSM personas Both wm_location_agent and wm_location_assignment_manager roles should be able to see all the wm_order and wm_task.

    Third-party Risk Management

    PRB1889679

    Addition of Query ACLs in Third-party Risk Management This change adds new Query ACLs on certain table(s) and field(s) to grant query_range access.

    Transform Maps

    PRB1847878

    Slow loading of related lists for particular transform maps It takes several minutes to load a related list from a sys_transform_map record.

    UI Field Administration

    PRB1891838

    The TinyMCE editor is missing on the 'Share to work notes' model An error message is displayed on the console: 'TypeError: Cannot read properties of undefined (reading 'themeOptions')'.
    1. Open any active incident record.
    2. Select the Summary button.
    3. Find if that summary is generated.
    4. Select the Share button.
    5. Observe that the TinyMCE editor is missing on the 'Share to work notes' model.

    UI Field Administration

    PRB1892439

    When a preset action is selected and autogrow is false, there's infinite loading
    1. Have a quickAction with autogrow as false.
    2. Have this quickAction configured on a Form field as a default or normal preset action.

    See that when this quick action is selected, the modeless dialogue opens but nothing happens.

    UI Form Administration

    PRB1860501

    A form's cache key doesn't account for roles with external and internal users A generated cache key doesn't contain roles.
    1. Enable the 'Explicit Roles' plugin.
    2. Modify ACLs to incident to allow read access to the snc_external role.
    3. As an external user, navigate to any given incident.
    4. As an admin, navigate to the sys_db_cache table.

    Expected behavior: The cache entry created by the external user, should include the users roles in the cache key.

    Actual behavior: The cache key generated doesn't contain roles.

    UI Form Administration

    PRB1863573

    A 'Scope tag not permitted' error is thrown when the UXC Generative AI plugin is active The scoped UI macros are added to the UI16 form by the 'UXC Generative AI' plugin clash with scoping rules, causing a 'Scope tag not permitted' error to be thrown. Visually, users notice related lists and others macros not loading on the form.
    1. Navigate to sysapproval_approver.list.
    2. Open any record still in the 'Requested' state.
    3. Right-click on the header and configure the form layout.
    4. Add the 'Test Formatter Approval Scoped' formatter to the layout after the 'Approval Summary' formatter.
    5. Configure the form.
    6. Add 1 related list to better see a broken page when reproducing.
    7. Clear the cache using cache.do.
    8. Open the record.

    Observe that the form is in a broken state. The approval _summary form renders on the page, but everything else is missing. Related lists won't display. Users aren't able to right-click on the header or see the scoped UI macro rendered.

    Usage Analytics

    PRB1879227

    Users aren't able to filter UX Analytics Data on 'User Properties' as User Property Sync Service fails due to inbound mTLS not being turned on Users can't filter their user experience analytics data by user roles, departments, and related user properties.
    1. Log in to the instance where an inbound mTLS isn't turned on.
    2. Configure the user properties in the sys_analytics_user_property_config table.
    3. Run the scheduled job 'User Property Config Change Sync Job'.

    Expected behavior: The user properties data should be synced from the instance to ClickHouse. The user shouldn't see the warning message when the sys_analytics_user_property_config table is opened.

    Actual behavior: The user properties data isn't synced to ClickHouse.

    User Presence

    PRB1767417

    Multiple threads can unnecessarily race to build the user presence cache, adding a load to the primary database

    UX Framework

    PRB1834547

    An additional HR case creation form opens when selecting the 'View All' details of 'Cases for Subjected Person', 'Cases for Opened For', or 'Interactions' in a some scenarios Occurs on the HR Agent Workspace 'HR Case creation' page.
    1. Log in as an HR Agent.
    2. Navigate to the HR Agent workspace.
    3. Select the New HR Case creation button.
    4. Search for and select an employee.
    5. Select the Next button.
    6. Refresh the page.
    7. Enter the employee name again.
    8. Once the 'Create a New Case' page loads, select View All for 'Cases for Subjected Person', 'Cases for Opened For', or 'Interactions'.

    Observe the issue where an additional HR case creation form appears.

    UX Framework

    PRB1884471

    Incorrect page variant is displayed when the variant audience is mapped to user criteria and glide.ux.user_ criteria_enabled=true There is performance degradation between the two versions when the system property glide.ux.user_ criteria_enabled is to 'true'. The incorrect page variant is displayed when the variant audience is mapped to user criteria.

    Scenario 1:

    1. Open a Washington DC instance.
    2. Set glide.ux.user_criteria_enabled to 'true'.
    3. Navigate to a list in the Service Operations Workspace.
    4. Measure the page load times.

    Notice that the average page load time is less than 5 seconds.

    Scenario 2:

    1. Open a Xanadu instance.
    2. Set glide.ux.user_ criteria_enabled to 'true'.
    3. Navigate to a list in the Service Operations Workspace.
    4. Measure the page load times.

    Scenario 3:

    1. Create two page variants which have two respective audience records, which are mapped to two distinct user criteria.
    2. In the user criteria, use two different groups to map two different users.
    3. Open the SOW landing page.

    Expected behavior: The user should see the variant, 'Variant Landing Page Demo Level 2'. Actual behavior: The user should see the variant, 'Variant Landing Page Demo Level 1'.

    UX Framework

    PRB1898329

    Service Worker fails to cache shell-bundle.jsdbx which causes a blank page on the page load The page that's loaded is blank, and an error message appears in the console. This issue occurs on Chronium browsers.

    Log in to a Xanadu or Yokohama instance.

    Notice that the page loaded is blank, and in the console an error shows, 'Cannot cache the response UnknownError: Failed to execute 'put' on 'Cache'.

    Virtual Agent Designer Legacy

    PRB1891033

    Marking the AI Agent/Agentic Workflows as 'Promoted' from Virtual Agent (VA) designer does not show up as a Promoted action in Virtual Agent The user should be able to mark AI Agents/Agentic Workflows as 'Promoted' from VA Designer, but this doesn't appear as a Promoted action.
    1. Ensure all Agentic Workflow and Now Assist Virtual Agent plugins are updated on the instance.
    2. Navigate to Conversational Interfaces > Virtual Agent > Designer.
    3. Select the tab 'Agentic Workflow' and select an base instance workflow.
    4. Mark the workflow as 'promoted'.
    5. Ensure the Agentic Workflow is active, visible and discoverable.
    6. Navigate to the esc portal.

    Notice that no promoted Agentic Workflow/AI Agents appear as a button (promoted action).

    Virtual Agent Designer Legacy

    PRB1891079

    Validate NLU discoverable topics retrieved from cache when domain separation is turned on Provide a scriptable function vaSystem. getNLUDiscoverableTopics (String languageCode) that returns the names of the active and discoverable topics given a language code. If no languageCode is given, it uses the session language. If NLU is turned off on the instance or com.glide.cs.cach e.topic_type.enabled is false, it should return an empty list and log why.

    Virtual Agent

    PRB1821950

    Now Assist Virtual Agent (NAVA) web client unread message appears on Natural Language Understanding (NLU) web client Unread messages from the Employee Service Center (ESC) web client appear on the NLU web client in the Service Portal when it is open in another tab in the browser.
    1. Set up NAVA on an ESC portal.
    2. Keep open NLU AI Search in the Service Portal (SP).
    3. Open an ESC portal in one tab of the browser.
    4. Log in.
    5. Open SP in another tab.
    6. Open the ESC portal webclient.
    7. Start any LLM topic.
    8. Complete the topic flow.
    9. Wait for the summary card to appear.
    10. Select Submit.
    11. Open the SP tab.

    Notice that all the unread messages applicable only to the ESC web client appears on the NLU based web client.

    Virtual Agent

    PRB1878360

    KB2092161

    'Show more' links are displayed, even for a topic which doesn't have any additional lines in an Edge browser .

    Refer to the listed KB article for details.

    Virtual Agent

    PRB1880242

    'interaction_context' is overwritten with new conversation variables When a requester is starting a conversation via sn_va_web_client_app with sysparm_skip_ load_history=true and other parameters, the 'interaction_context' takes the params as we'd expect. But if the requester has an ongoing chat, but starts a new conversation with different params, the initial chat's interaction_context is overwritten with the new interaction_context values.

    Virtual Agent

    PRB1881387

    In Virtual Agent, dynamic translation isn't working when an agent sends a message to the end-user
    1. Provision an instance with Now Assist in Virtual Agent and the profanity filter for Agent Chat plugins installed on any Washington DC or Xanadu instances.
    2. Verify the record has the value 'OneExtend Profanity Filter' in the Type document field.
    3. Upgrade the instance to Yokohama.
    4. Verify that the Type document field has an empty value, due to which the dynamic translation is failing with below error: 'com.glide.oneapi.exception. OneApiRequestException: Error calling One API for feature Profanity Filtering : service invocation Id'.

    Expected behavior: For the profanity filter on the one_api_feature_provider record, the Type document field shouldn't be empty.

    Actual behavior: For the profanity filter the one_api_feature_provider record, the Type document field is empty.

    Virtual Agent

    PRB1881393

    An Agent Chat new message desktop notification should be clickable and redirect to the 'Calling' tab When there's an agent in the workspace doing a live chat with a user, if users move the focus to another tab, with desktop notifications turned on, they receive a notification. The need is for the notification to be clickable and redirect to the 'Chat' tab.
    1. Navigate to an instance.
    2. Impersonate a system admin.
    3. Open Service Operations Workspace.
    4. Navigate to the inbox and set yourself to 'available'.
    5. Ensure that the desktop notifications are set up with the gear icon.
    6. Open an incognito window.
    7. Impersonate Beth Anglin.
    8. Open the Service Portal.
    9. Open the chat.
    10. Ask for a live agent.
    11. Wait for the connection with the agent.
    12. From the system admin window, open a new tab and stay on that tab.
    13. From the Beth window, send a message.

    Users should receive a desktop notification, but it's not clickable and doesn't redirect.

    Virtual Agent

    PRB1896976

    The 'Start a new conversation' pop-up box in Virtual Agent is out of the screen In the instance, the padding is cut off, and the popover should be contained in the Web Client window.
    1. Navigate to Virtual Agent on an instance.
    2. Start a new conversation with the Now Assist' pop-up.

    Observe that when hovering over the + button, it's cut off on the right side.

    Virtual Agent

    PRB1901626

    'Notification' errors out if users trigger it for a user who has not had any interaction with Virtual Agent for more than 60 days
    1. Verify that the user doesn't have any interactions with web-client/channels for more than 60 days.
    2. Set up and trigger a non-actionable/actionable notification.

    Expected behavior: A new sys_cs_notification record should be created for the user.

    Actual behavior: There's an error in the notification log on the lines of 'sessionResponseV2Dto is null'.

    Virtual Agent Web Client

    PRB1869054

    Adding the ability to customize/update the default 'FAB' icon The custom 'FAB' icon is configurable by defining this variable: $now-sp-nass-FAB-icon.

    Virtual Agent Web Client

    PRB1881938

    Boolean choice pickers aren't translated to the user's language in Dynamic Window
    1. Install a language.
    2. Switch the profile language to that language.
    3. Ensure that Dynamic Translation and Native Translation are turned on in Now Assist.
    4. Create a topic with the user input using the input selector.
    5. Navigate to Dynamic Window.
    6. Run the topic from step 4 until completion.

    Expected behavior: Boolean topic choice pickers are translated to the user's selected language (Yes/No input).

    Actual behavior: Boolean topic choice pickers are still in English (Yes/No input).

    Work Order Management

    PRB1853297

    Users are seeing an error message on a work order task whose state is '>= Assigned' in the CSM Portal An error message displays for querying the 'Map integration usage' table when getting a work order task as a user out of the scope of map integration ACLs.

    Work Order Management

    PRB1882671

    Ignore sys_user schedule when assigning tasks in the background In the case where the 'com.snc.dynamic.scheduling. useWorkScheduleOnly' system property is true, the work schedule for an agent is absent. sys_user.schedule isn't empty. Dynamic scheduling uses sys_user.schedule to identify work blocks.
    1. Set 'com.snc.dynamic.scheduling. useWorkScheduleOnly' to true.
    2. Add sys_user.schedule.
    3. Don't define any work schedule for an agent.

    Expected behavior: The task shouldn't assign to the agent. Check the DS log, and there should be no workblock for the agent.

    Actual behavior: The task could still assign to the agent. Check the DS log, there's a workblock based on sys_user.schecdule for the agent.

    Work Order Management

    PRB1889505

    A fix script isn't executed while upgrading A fix script isn't executed when upgrading from Washington DC to Yokohama.
    1. Create an instance in Washington DC
    2. Upgrade the instance from Washington DC to Yokohama.
    3. Check for the logs for execution of fix script: sys_script_fix_ 6e154ec7c3d13010 a0cd587c1f40ddd1

    Expected behavior: The sys_script_fix_ 6e154ec7c3d13010 a0cd587c1f40ddd1 must be executed.

    Actual behavior: The sys_script_fix_ 6e154ec7c3d13010 a0cd587c1f40ddd1 isn't executed.

    Work Order Management

    PRB1890343

    In the CSM portal, the user is unable to see the Worker Order Task (WOT) details in the fsm_ticket page The WOT details aren't displayed and an error message on the wm_task.parent field appears.
    1. Create a Work Order (WO) with a user as a contact.
    2. Select Ready for qualification.

      Notice that the WOT gets created for the WO in the RL.

    3. Impersonate the user set as the contact in the WO.
    4. Access the CSM portal.
    5. Select the WO from the Work Orders list.

    Expected behavior: The user should be able to see the WOT details on WO page.

    Actual behavior: The WOT details aren't displayed and a query_match error message on the wm_task.parent field is appearing.

    Work Order Management

    PRB1893187

    The location contributor staff lost access to the work order tasks associated to the work orders on the portal Error message: 'org.openqa. selenium. TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: //*[@id="related-wot"]//table/tbody/tr/td[1]/a (tried for 20 second(s) with 500 milliseconds interval)'.
    1. Log in with the location contributor associated with a location having work order tasks associated with work orders.
    2. Navigate to the cases associated to the work order on the BLSP Portal.
    3. Select work orders RL.
    4. Select the work order task.

    Expected behavior: The user should get access to the work order tasks.

    Actual behavior: The user is getting a query_range error.

    Work Order Management

    PRB1895750

    A work order task template doesn't display the skill associated/linked to it Users aren't able to associate the task skills with levels to a work order task template and display the value to the UI. Also, the Task skills field isn't available from the field picker of the work order task template, even though the form layout includes the field.

    Work Order Management

    PRB1895909

    Add the mktplace_requestor role for wm_task.parent
    1. Log in with the location contributor associated with a location, and having work order tasks associated with work orders.
    2. Navigate to the cases associated with the work order on the BLSP portal.
    3. Select work orders RL.
    4. Select work order task.

    Expected behavior: The user should get access to the work order tasks.

    Actual behavior: The user is getting a query_range error.

    Zero Copy Connectors (Glide)

    PRB1877371

    An established connection with the state 'Needs Configuration' throws an exception on the 'Connection details' tab Error: 'Data Fabric Hub: Unable to retrieve connection fields. Error: Connection details not found, connection ID...'.

    Zero Copy Connectors (Glide)

    PRB1879783

    Move muninn controller sys_service endpoints to data-fabric-connector-metadata project

    Zero Copy Connectors (Glide)

    PRB1888130

    A reservation request in Glide should send whether an instance is a production instance or not

    Zero Copy Connectors (Glide)

    PRB1900907

    Requests using shortname URLs for a controller don't get routed This may be caused by the HTTP Client not setting the SNI.

    Zero Copy Connectors (Glide)

    PRB1906629

    Scope name change for the 'Connectors metadata' app The previous scope name is 'sn_data_fabric _connector_metadata'. The new one is 'sn_data_fabric_zcc'. With the previous scope name, users get an error: 'Encountered an error on Technology Partner Portal: Scope name should be max 18 characters'.

    Fixes included

    Unless any exceptions are noted, you can safely upgrade to this release version from any of the versions listed below. These prior versions contain PRB fixes that are also included with this release. Be sure to upgrade to the latest listed patch that includes all of the PRB fixes you are interested in.