Australia Patch 3

  • Release version: Australia
  • Updated June 16, 2026
  • 156 minutes to read
  • The Australia Patch 3 release contains important problem fixes.

    Australia Patch 3 was released on June 16, 2026.
    • Build date: 06-12-2026_1106
    • Build tag: glide-australia-02-11-2026__patch3-05-25-2026
    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

    Australia Patch 3 includes 501 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 Australia Patch 3

    Activate a pre-release feature
    Activate a pre-release feature on the instance so your users can try it out and provide feedback to the product team.
    Activate Data snapshots
    • Starting with Australia Patch 3, if the instance is eligible, this plugin is installed automatically.
    • Activate Data snapshots for each eligible indicator, either one-at-a-time or in bulk.
    Authentication release notes
    • Email OTP as an authentication factor for AI voice service: Use Email OTP as a standalone factor, a primary factor, or a secondary factor in AI voice agent authentication flows. When a caller reaches the voice agent, a one-time password is sent to their registered email address. The caller provides the password to complete authentication.
    • KBA for AI voice service: Use the KBA setup to configure Knowledge-Based Authentication (KBA) for the voice channel. Choose from base system questions at both the identification level and the authentication level. AI voice service mappings are populated automatically from your Assistant Designer selection, so manually mapping voice services is no longer a mandatory step in the KBA setup.
    • Authenticate callers at the start of every call: Prompt callers for authentication or identification details at the start of every call, before the voice-only assistant responds to any request, using the Authenticate at the start of the call option on the Assistant Designer's Caller verification page.
    Clone Admin Console release notes
    The ServiceNow® Clone Admin Console application copies data and metadata from one ServiceNow instance to another ServiceNow instance to easily synchronize your instances. Clone Admin Console was enhanced and updated in the Australia release.
    Code Signing actions and required roles
    Reference table of Code Signing actions, their descriptions, and the roles required to perform them.
    Create a Universal Request from the Supplier Collaboration Portal
    Create a Universal Request (UR) in Employee Center when your request involves multiple departments or the right department to contact is unclear.
    Data snapshots and multiple breakdowns
    If you have Australia Patch 3 or later, the plugin is installed automatically on qualified instances.
    Data snapshots jobs and tables
    Instance Eligibility Check Job for Data Snapshots and Instance readiness for Data snapshots Scheduled jobs installed.
    Deactivate a pre-release feature
    Deactivate a pre-release feature if it is not working as expected or if you no longer need the feature.
    Feature Preview Program
    The Feature Preview Program provides access to pre-release capabilities on your instance. You can activate, test, and provide feedback on individual features before they are generally available.
    Hermes background jobs
    These background jobs are associated with Hermes settings. The table lists their default run frequencies and descriptions.
    Hermes Settings page
    The Hermes Settings page is a centralized interface that enables Hermes administrators and maintenance users to monitor and control the configuration properties that govern the Hermes Messaging Service.
    Install Universal Request for Sourcing and Procurement Operations
    Install the Universal Request for Source-to-Pay Operations [sn_fsc_ur_common] plugin to enable the Universal Request in Sourcing and Procurement Operations.
    Limitations and requirements for Data snapshots
    If you have Australia Patch 3 or later, the Data Snapshots (com.snc.pa.mlb) plugin is installed automatically on eligible instances. This includes instances with domain separation, but on such instances the Data snapshots feature is disabled when the first job runs.
    Manage a background job in Hermes Messaging Service
    Manage background jobs in Hermes Messaging Service to control when and how often scheduled tasks run. You can make a job inactive, re-enable it, or adjust its interval from the Hermes Settings page.
    Managing Hermes settings
    View, modify, and manage configuration properties that control the behavior of Hermes Messaging Service. You can update property values, manage background job states, or adjust settings where automated detection is unavailable.
    Performance Analytics release notes
    If you have Australia Patch 3 or later, the Data snapshots plugin is installed automatically if you have RaptorDB Professional. If your instance is also domain separated, the Data snapshots feature is installed but disabled.
    Reviewing prediction errors with the Observability Dashboard
    View this table's records directly by entering ml_predictor_error_logs.list in the navigator.
    ServiceNow AI Platform core feature release notes
    • The Feature Preview Program provides a centralized location to discover, activate, and test pre-release capabilities on your instance. When a pre-release feature is added to your instance, you receive a notification and can access the Feature Preview Program to review feature details, activate features for testing, and provide feedback.
    • Use the Feature Preview Program to choose which pre-release capabilities to activate and test on your instance.
    Theming for AI Search in Service Portal
    transparent
    Update Hermes messaging settings
    Review and modify the current the Hermes configuration properties to control Apache Kafka integration, topic management, and other messaging behavior.

    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

    Change Management

    PRB2021441

    KB3032668

    Unable to rollback the plugin 'com.snc.itsm. foundation.license _control'

    Refer to the listed KB article for details.

    Database Persistence - Data Access

    PRB2007256

    KB2925734

    The text search doesn't return results in non-English languages After downloading language plugins and switching the system language to a non-English language, results aren't returned when the property 'glide.db_ query.replace_ distinct_with_ groupby' is set to 'false.' When the language is set to English, results are returned.

    Refer to the listed KB article for details.

    Password2 Encryption

    PRB2015257

    KB2978056

    There's excessive growth on the sys_rollback _incremental table and higher binlog generation due to the 'Mass Encryption' job This causes a large increase in the disk space on the database server.

    Refer to the listed KB article for details.

    Related Lists

    PRB2025356

    KB3032264

    A user can't add records in a related list because of the strict ACL check and missing ACLs for required roles Users with missing ACLs are not able to add new records in the related list due to a strict ACL check.

    Refer to the listed KB article for details.

    Server-side scripts

    PRB1994381

    KB3006010

    Discovery has issues on some node after upgrading in Australia After upgrading to Australia, JavaScript running in app nodes fails to call Java functions. The following warning appears: '*** WARNING *** Evaluator: com.glide.script. RhinoEcmaError: undefined is not a function.' This impacts various features, including Discovery and Event Management.

    All other fixes

    Problem Short description Description Steps to reproduce

    Access Analysis Instrumentation API

    PRB1984283

    Analyze Access in any record's hamburger menu isn't working Adding 'access-management' into the URL doesn't work either; it navigates to Access Analyzer's 'Analyze Permissions'.
    1. Navigate to any record in any table.
    2. Right-click the header or select the hamburger menu.
    3. Select Analyze Access.

    Expected behavior: The page redirects to Access Analyzer to analyze that record.

    Actual behavior: 'The page you are looking for cannot be found'. It navigates using the previous URL.

    Access Analyzer

    PRB1993028

    KB2820230

    (Access Analyzer) Instance scan jobs can hang and are not terminated due to checks not being optimized Instance scan jobs triggered by the Access Auditor Suite, which is a part of the Access Analyzer (sn_access_analyzer) store application, may hang or fail to terminate. This may cause multiple jobs to accumulate over several days, consuming multiple workers and preventing other jobs from running. This may cause performance issues on the instance. This issue affects Access Analyzer (sn_access_analyzer) versions 6.0.0 through 6.0.5, as well as version 6.1.0.

    Refer to the listed KB article for details.

    ACL Engine

    PRB1998171

    The store_app_write_audit_acl table was created in a Store app scope instead of the global scope

    Activity Stream

    PRB2005727

    Navigation fails for sources beyond sliding windows in an activity stream When selecting a citation source in an incident summary response, navigation doesn't work properly if the cited activity (comment or email) is more than three pages away or above the current activity stream view. The user receives a message stating 'The source may be hidden in your current view', even though the source exists and isn't filtered.
    1. Navigate to any instance on track/anowassist.
    2. Open Service Operations Workspace.
    3. Open a record with 200+ activity stream entries.
    4. Scroll to a recent AI-generated response containing citation references.
    5. Select Show sources.

      The cited source (comment/email) should be an older entry — at least 3+ pages above the current viewport.

    6. Select the citation link with work notes/comments.

    Activity Stream

    PRB2008384

    The Copy button on journal entries doesn't always copy text or notify users correctly This is reproducible in UI16 and Workspace.
    1. Navigate to any relevant workspace.
    2. Open any incident record.
    3. Turn on the 'Rich text editor' in activity stream's Compose.
    4. Add a work note or comment to the activity stream with some of the text set to bold.
    5. Select the Copy to clipboard button on the new journal entry.

    Expected behavior: When rich text is copied, a notification should display saying 'Copied to clipboard'. When pasted into a plain text editor, there shouldn't be [code] tags around the text.

    Actual behavior: When rich text is copied, a notification doesn't display, and when pasted into a plain text editor, there shouldn't be [code] tags around the text.

    Activity Stream

    PRB2011415

    AI skill attribution issue in an activity stream Activity stream entry grouping logic should account for AI skills registered via setValueWithAuditIdentity. The grouping currently does not use sys_updated_by as the grouping key when UserAgentContext isn't set, so field-level audit entries attributed to distinct AI skill sys IDs along with the session user involved are not getting shown as expected.

    Activity Stream

    PRB2013162

    Add filter a configuration, such as a slushbucket This is a product update.

    Activity Stream

    PRB2013164

    Integrate translations into the Java REST API This is a product update.

    Activity Stream

    PRB2013167

    Dynamic translations in the activity stream convert to Lit This is a product update.

    Activity Stream

    PRB2013171

    Create a Java REST API This is a product update.

    Activity Stream

    PRB2016617

    Unguarded Jelly expression in form.xml causes RhinoEcmaError warnings on every classic form load On any classic UI16 form load, the platform Jelly template evaluator throws a RhinoEcmaError warning in the system log. The warning is present on every classic form, regardless of application scope or record type. There is no functional outage; forms load and save correctly, and all transactions return HTTP 200 with normal response times. The main impact is high-volume system log noise.
    1. Log in to a Zurich instance.
    2. Open any classic UI16 form record without a sysparam_citation query parameter in the URL.

      Example without activity stream: Navigate to /sys_dictionary.do and open any record.

      Example with activity stream: Navigate to /incident.do and open any record.

    3. After the form loads, open the system log.

    Expected behavior: No RhinoEcmaError warnings are generated during a standard form load.

    Actual behavior: On forms without an activity stream, one warning entry is generated per form load. On forms with an activity stream, two warning entries are generated per form load.

    Activity Stream

    PRB2018487

    A citation URL is retained and fields are highlighted when a user logs in to an instance again
    1. Navigate to any instance with the 'Record Summarization' skill activated.
    2. Open any incident in Workspace.
    3. Ensure that the activity stream has several entries for the 'Record Summarization' skill to pick up.
    4. Run the 'Record Summarization' skill.
    5. Select a citation source that points to an activity stream entry.
    6. Log out of the instance.
    7. Log back in to the instance and return to the same record.

    Expected behavior: The citation URL shouldn't be preserved after triggering the citation source flow.

    Actual behavior: The URL that is created after selecting a citation source is preserved, and causes the citation scroll and highlight to trigger.

    Activity Stream

    PRB2023624

    For the Core UI only, update the activity stream icon for AI specialist vs Agentic Workflow This is a product update.

    Activity Stream

    PRB2033885

    A new activity comment has the type as 'Field changes' instead of 'Comments'
    1. Open any incident in UI16.
    2. Post a comment.

    Note that the comment type (top right of tile) is 'Field changes [dot timestamp]' instead of 'Comments [dot timestamp]'.

    Advanced Work Assignment

    PRB1996219

    The END_WRAP_UP event is published twice when wrap-up is timed out This behavior causes 'openframe_wrap_up_submitted' to trigger twice, which isn't expected while users are using OpenFrame to handle wrap up with external systems.

    Advanced Work Assignment

    PRB2026676

    Enhanced updateSegment API (wrap-up) to support agent-initiated wrap-up As a CCaaS Developer, the updateSegment API should be able to be used in the CCaaS plugin. This API should allow users to update a wrap-up segment at the same time as closing/updating the segment without requiring a separate API call. This allows the voice plugin to support agent-initiated wrap-up. Agents should have the ability to initiate a wrap-up before the call ends. If the system has wrap-up with a timer, they should get a timer on the wrap-up modal to provide the count down timer until the wrap-up is submitted.

    Agent Chat

    PRB1992614

    Dirty screens in Document Object Model (DOM) experience data loss if one of the middle tabs are closed, triggering a screen reorder and refresh Screens between deleted screens lose edited data due to incorrect DOM detachment/reattachment. When incident is closed, screens 2 and 4 are removed. The updateChildren algorithm uses two-pointer comparison (from both ends). Elements at the ends that match are patched in place, but elements in the middle that need repositioning are moved via insertBefore. This movement triggers a re-render of sn-canvas-screen, and due to vnode-DOM desynchronization (the view renders a p but loadScreen manually replaces it with the macroponent), the section element is destroyed and recreated. This causes hook-insert to fire, which calls loadScreen again, recreating the macroponent and losing all unsaved data.
    1. Open the Service Operations Workspace list URL.
    2. Navigate to an incident list.
    3. Open any incident.
    4. Select the + menu.
    5. Select Create Interaction.
    6. Edit the new interaction record fields.
    7. Navigate to an incident record.
    8. Open any reference field in a sub tab.
    9. Close the incident record.

    See that the focus shifts to an interaction record and the edited field values are lost.

    Agent Chat

    PRB1993857

    Agent chat inbox notifications appear in HTML The incident card on the agent chat appears as HTML on a desktop notification.

    Agent Chat

    PRB2000390

    The date format is incorrect in the Active Chat window The date/time format is displayed as 'MMM DD, YYYY HH:MM AM' instead of 'DD-MM-YYYY HH:MM:SS' in the Active Chat window.
    1. Enable the conversation history by navigating to Conversational Interface > Agent chat settings.
    2. Set the value for 'Number of conversations to display'.
    3. Hop to an instance where Advanced Work Assignment (AWA) is configured in two browsers.
    4. Log in as Abel Tuter.
    5. Set the date/time preference to 'DD-MM-YYYY HH:MM:SS'.
    6. Initiate a chat from the portal.
    7. Connect to a live agent.
    8. Log in as an agent.
    9. Accept the chat.
    10. Close the conversation.
    11. Initiate a new chat.
    12. Connect to a live agent.
    13. Accept the chat as an agent.

      Observe that the previous chat conversation is visible in the Active Chat window.

    Expected behavior: The date/time format should display as 'DD-MM-YYYY HH:MM:SS' at the top of the Active Chat window.

    Actual behavior: The date/time format is displayed as 'MMM DD, YYYY HH:MM AM' in the Active Chat window.

    Agent Chat

    PRB2013947

    Inbox Advanced Work Assignment (AWA) interactions are not presented according to the Configuration field and order for the walkup experience When an agent receives multiple chats in Service Operations Workspace (SOW), they are initially displayed in descending order, with the most recent chat at the top. However, after a refresh, the chat order appears to change and seeimingly displays in a different order.
    1. Open an instance.
    2. Impersonate an agent with the role 'system_administrator'.
    3. Open SOW.
    4. Set the agent status as 'available'.
    5. Open the instance again in a new incognito tab, or in any another browser.
    6. Initiate 4-5 live agent chats by impersonating the end users from Service Portal.
    7. Check the order of the chats the agent received.

      Notice that it would be in descending order, with the most recent chat appearing first.

    8. Refresh the page as an agent.

    Notice that the chat order is jumbled in a different order.

    Agent Chat

    PRB2014178

    Optimize the request to fetch previous interactions for a requester to show conversation history in Agent chat If there are no custom filters, there is no need to create the list of interaction records by going through all the returned records from the DB query.
    1. Enable the 'Conversation history' feature in Agent Chat settings.
    2. Set the limit to 10.
    3. Ensure that there's a large number of closed interactions (more than 100) for Abel Tuter.
    4. Check the server memory in /stats.do.
    5. Start a new conversation as Abel Tuter.
    6. Accept the work item as Beth Anglin.
    7. Ensure that the history shows in the agent chat.
    8. Check the server memory again in /stats.do.

    Observe that the server memory has gone up significantly.

    Agent Chat

    PRB2021490

    Enhance the chat desktop notification When the user selects the new chat message desktop notification, they should get focused back on the workspace tab. The workspace tab that the new chat message belongs to should also be focused and opened.

    Agent Chat

    PRB2022900

    AWA workItem responder changes Update WorkItemResponder's onEnter and OnExit to add and remove notifications in the ui_notification_inbox table. Also, create a system property (glide.awa.work_item.notifications.enabled) to determine whether to show or hide user preference at the agent level.

    Agent Chat

    PRB2022906

    Add user preference for app shell notifications Add support to display a new user preference 'Inbox Workspace Notifications' based on the system property glide.awa.work _item.notifications .enabled.

    Agent Chat

    PRB2022911

    Next Experience app shell changes This is a product update.

    Agent Chat

    PRB2022913

    Component inbox logger changes

    Agent Chat

    PRB2023682

    Add the interaction number to desktop notifications to differentiate between interactions The desktop notification should contain the IMS number to indicate which chat the notification is for.
    1. Enable desktop notifications in the Agent Workspace.
    2. Start a live agent chat so that a new desktop notification is rendered.

    Expected behavior: The desktop notification contains the IMS number to indicate which chat the notification is for.

    Actual behavior: The desktop notification only says that a new chat arrived.

    Agent Chat

    PRB2026678

    Dynamic wrap-up timer update on the UI when a call has ended Agents should have the wrap-up timer updated automatically when CCaaS provides the wrap-up context after a call has ended. The wrap-up modal should be refreshed automatically without intervention. The wrap-up modal shouldn't require users to close or open to have the timer count down.

    Agile Development

    PRB2022589

    Add 'None' choice to the rm_epic.status field and make it the default for new epics The Epic Status field (rm_epic.status) currently doesn't include a 'No status' option, which prevents epics from having an unset/neutral status. This causes ambiguity in reporting and makes it difficult to distinguish between epics that have not yet been assigned a status versus those intentionally marked as green, yellow, or red.
    1. Navigate to Agile Development > Epics (or open an Epic from a board/backlog).
    2. Open any active Epic record.
    3. Select the Status field.

    Expected behavior: 'No status' is available as a selectable option to represent epics with no status assigned, enabling accurate status transition tracking for usage analytics.

    Observed: 'No status' isn't available as an option in the Status field list. Available options are limited to green, yellow, and red.

    AI Agents (Glide Family)

    PRB2011068

    Data to Glide from offGlide isn't getting logged with the actual user Any record update or creation doesn't have the created_by or updated_by set as the actual user.

    Make a set cache call to Glide from offGlide.

    Observe that any record update or creation doesn't have the created_by or updated_by set as the actual user.

    AI Agents (Glide Family)

    PRB2018916

    AI Agent execution fails with 'Tool access denied' for triggering user after the update set migration After migrating AI Agents (built in Agent Studio) from a development environment to a client test environment via update set, the agents fail to execute. The triggering user receives an error indicating that they don't have access to the agent's tools, and the agent never starts.
    1. In a source instance, build an AI Agent in Agent Studio with one or more tools (e.g. a subflow tool).
    2. Configure the agent's ACL to allow any authenticated user to trigger.
    3. Configure the agent's dynamic user with the snc_internal role.
    4. Verify the agent runs successfully end-to-end in the source instance.
    5. Capture the agent, its tools, ACLs, and dynamic-user configuration in an update set.
    6. Move the update set to the target instance.
    7. Commit it.
    8. As any authenticated user on the target instance (admin or otherwise), trigger the agent.

    Observe that the agent fails to start. An error states that the triggering user doesn't have access to the agent's tools.

    AI Agents (Glide Family)

    PRB2022336

    Caching improvements for NextWave architecture This is a product update.

    AI Agents (Glide Family)

    PRB2022344

    Java changes for conversation history support for a Knowledge Graph tool in AI Agent Studio This is a product update.

    AI Agents (Glide Family)

    PRB2022649

    AI Agents are stuck indefinitely and the facts response is empty When running AutoEval for the Enterprise Architecture Explorer – Query Agent, the evaluation run gets stuck indefinitely while processing certain questions and datasets. During execution, AutoEval doesn't progress to completion, progress keeps retrying without advancing, and the run never completes successfully. GenAI logs repeatedly show: 'JSON{ "facts": []}Show more lines'. Despite retries, no new facts are generated and the evaluation pipeline makes no forward progress.
    1. Navigate to Now Assist Skill Kit > Evaluation Results Dashboard.
    2. Start an AutoEval run for:
      • Agent: Enterprise Architecture Explorer – Query Agent
      • Dataset containing multiple evaluation questions
    3. Allow the run to process.

    Observe that the evaluation stalls on certain questions, AutoEval keeps retrying internally, and the run never completes.

    AI Agents (Glide Family)

    PRB2025221

    Cache service intermittently fails and gets calls across different keys

    AI Agents (Glide Family)

    PRB2025859

    The OffGlideScriptObject. generateAuthorizationInfo API creates JSON Web Tokens (JWT) with current session users The API sn_cs_offglide. OffGlideScriptObject. generateAuthorizationInfo() creates JWT with current user sessions, even though the userID value is passed in the request.

    AI Agents (Glide Family)

    PRB2025974

    A user session is logged out when opening AI-generated interaction records The user session is logged out when opening AI-generated interaction records that were created/updated by the incident_intelligence_agent. The interaction record remains in the WIP state, even though the associated conversation has been marked as faulted. The issue is specific to the in Service Operations Workspace (SOW) workspace view, as opening the same record in platform view works without issue.

    AI Agents (Glide Family)

    PRB2030410

    An instance isn't invoking DARE calls due to new properties not being allowed in the cache configuration's invalidation script
    1. Turn on the DARE sysprop.
    2. Open Now Assist Portal.
    3. Run the utterance 'List my incidents'.

    Expected behavior: The response should be received from DARE.

    Actual behavior: The response is coming from NextWave.

    AI Agents (Glide Family)

    PRB2030948

    Tools using data stream actions aren't able to retrieve data in NAVA
    1. Log in to an instance with user credentials.
    2. In Service Portal, give an utterance, such as 'using smartsheet agents, look up groups stream'.

    Observe that the tool isn't able to retrieve data.

    AI Experience Framework - Glide

    PRB1980207

    Implement the logic of 'Mark as read' in the notification

    AI Experience Framework - Glide

    PRB1986457

    The icon color on notifications uses a hard-coded hash value

    AI Experience Framework - Glide

    PRB1994093

    'Mark all as read' isn't working due to GlideRecordSecure and updateMultiple methods being used
    1. Trigger notifications to any non-admin user.
    2. Log in.
    3. Navigate to a portal.
    4. Open a notification tray.
    5. Select Mark all as read.

    Notice that it's not marking as read in the background.

    AI Experience Framework - Glide

    PRB2010223

    Glide assets release This is a product update.

    AI Experience Framework - Glide

    PRB2011879

    Allow the 'Notification content' table to have separate records per experience Currently, users can only map a single experience for the portal. Allow the 'Notification content' table to have separate records per experience and also allow content configuration to map multiple experiences.

    AI Experience Framework - Glide

    PRB2012479

    AIX Webserver Glide integration This is a product update.

    AI Experience Framework - Glide

    PRB2018366

    /api/now/aiux_service/sysprops doesn't enforce an allowlist

    AI Experience Framework - Glide

    PRB2024769

    Chat gate service uses a GlideRecord query with ACL evaluation, blocking non-admin users from reading the 'Deployment channel' table In chat-gate-service.js (line 13), the chatEnabled check uses glideRecord_query to query the 'Deployment channel' table. This evaluates all ACLs for the current user, so only admin users have the necessary read access to that table. Non-admin users are blocked from fetching chatEnabled, which prevents the chat from functioning for them.
    1. Log in as a non-admin user.
    2. Navigate to an AI Control Tower (AICT) page where the chat is expected to load.

      Observe that the chat doesn't initialize because chatEnabled can't be fetched.

    3. Log in as an admin user and repeat.

      The chat works correctly.

    Expected behavior: chatEnabled is fetched successfully regardless of the user role.

    Actual behavior: glideRecord_query evaluates ACLs and denies non-admin users read access to the deployment channel table.

    AI Experience Framework - Glide

    PRB2027126

    AIX Webserver Glide integration This is a product update.

    AI Experience Framework - Glide

    PRB2027128

    Migration in Glide This is a product update.

    AI Experience Framework - Glide

    PRB2027770

    Remove the 'Applicability' table (sys_aix_applicability) and move the fields applicable for and not applicable for glide_list (user_criteria) into a multi-theme table This is a product update.

    AI Gateway

    PRB2010156

    A scheduled job overwhelms a clickhouse service in sk8s with queries An app has a scheduled job that runs daily that uses a query service to query AI Gateway data for the previous day. There's a large number of instances querying at the same time (around 12,000), causing every clickhouse node in the cluster to hit its max concurrent query limit and start rejecting incoming requests.

    AI Gateway - Security

    PRB2024062

    AI Gateway security Q2 complete feature backport This is a product update.

    AI Search (Glide)

    PRB1951236

    In DirectUserImport, a multiple user match isn't reported The connectors create user mapping for the first matched user, but not for the second user without reporting an error for the second user.
    1. For a known user ID, create two users in sys_user with the 'First name' column containing the same user ID as the value.
    2. Configure the 'first_name' column as a mapping field in the connector configuration.
    3. Run user mapping crawl.

    AI Search (Glide)

    PRB1986147

    Extend branding properties to support the update to the dynamic landing page 'Search My Servicenow' placeholder

    AI Search (Glide)

    PRB2001677

    A Knowledge Graph (KG) NLQ call should pass the caller ID in the Caller field, not meta

    In an instance with KG, navigate to 'Make a kgnlq query'.

    Observe one_api_service_ plan_feature invocation. It doesn't match the design with respect to the Caller field.

    AI Search (Glide)

    PRB2002346

    When a KB only has an embedded KBB with embedded_match = false, the KB should send itself instead of the KBB The KBB content is sent to the LLM instead of KB.
    1. Create a KB titled 'abc' with some text content and an embedded KBB 'defhi'.
    2. Perform a search for 'abc' in the search preview with the 'Now Assist in VA' profile in sys_generative_ai_log.

      Observe the KB is sent to the LLM.

    Expected behavior: The content of the KB is sent to the LLM.

    Actual behavior: Only the KBB content (defhi) is sent to the LLM.

    AI Search (Glide)

    PRB2006426

    When a document with an attachment is removed by late binding, the next attachment where the user has access is also removed When ds_document_version parent documents are filtered by an ACL and their children are skipped (the continue at line 516–518 bypasses the recursive child processing), the sys_attachment sparse cursor falls out of sync. It was built assuming every child would be processed in order, but skipped parents leave gaps.
    1. Create 3 KBs with an attachment.
    2. Ensure that the KBs and attachments are relevant to a query (KB1 is most relevant. KB3 is least relevant but still matches a query).
    3. Add an ACL to block the second KB but allow the first and third.
    4. Force a late binding KB in ais_datasource or the 'everything by' property.
    5. Query in a search preview as a user.

    Expected behavior: KB3 should be displayed with an attachment.

    Actual behavior: KB3 is displayed but with no attachment.

    AI Search for Service Portal

    PRB2023882

    The 'View all results' option isn't available in the chat response shared by assistant
    1. Open an instance.
    2. Impersonate the system admin.
    3. Navigate to /csm portal.
    4. Input 'How to repair fan fuse'.

    Expected behavior: The 'View all results' option is visible.

    Actual behavior: There is no 'View all results' option in the side panel bottom.

    AI Search UX

    PRB1989246

    When records are searched in global search, it isn't opening the form directly When a user tries to search the incident number in the global search when the zoom size is 150% and left navigator is pinned, then the incident record isn't opening directly. It instead displays a search result page. However, when the zoom size is 100%, then the incident record is opening directly in a form page.
    1. Navigate to an instance where AI Search is turned on.
    2. Update the browser zoom to 150%.
    3. Pin the 'All' option in the filter navigator.
    4. Copy any incident number.
    5. Search with the incident number in the global search and press enter.
    6. See the search results page.

    Expected behavior: Users should see the incident form record directly.

    Actual behavior: Users are seeing the search results page.

    AI Search UX

    PRB1991340

    Search input intermittently skips characters The search input intermittently drops characters when users type quickly, especially under a heavy event load.
    1. Open any workspace/heavy loaded page.
    2. In the global search, type quickly.

    Observe intermittent character loss.

    AI Search UX

    PRB1994212

    The hidden description in the source code is visible in the chatbot for 'Order guide' and not for 'Catalog item' in Now Assist Virtual Agent (NAVA) On the catalog item, it's possible to hide the description using the following in the code source: 'div style=''display: none;'' TEXT TO HIDE <p>.' When attempting to do the same in the order guide, it's not working properly in the chatbot, and both texts are visible. This issue occurs only on the chatbot preview of the order guide, and not when consulting it directly from portal.
    1. Open an instance.
    2. Navigate to /esc.
    3. Enter the utterance, 'Standard Laptop'.

      Notice that the preview does not show the utterance since the description of the catalog item has the following: '<div style="display: none;"> TEXT TO HIDE <p>'.

    4. Enter the utterance "Request Developer Project Equipment".

      The preview does show the utterance even though the description of the catalog item has the <div style="display: none;"> TEXT TO HIDE <p>.

    AI Search UX

    PRB1998976

    Search event records don't indicate the search mode (keyword, hybrid, or semantic) When a search is executed in an AIS-enabled portal with Hybrid Search enabled on the corresponding search application, the resulting sys_search_event and sys_search_signal_event records don't capture the search mode (keyword, hybrid, or semantic) that was used to execute the query. This makes it impossible to distinguish query types in search analytics and signal data.
    1. Turn on Hybrid Search on a Search Auto-complete Configuration (SAC).
    2. Navigate to a Dynamic Window-enabled portal that uses the configured SAC.
    3. Perform a search in the portal.
    4. Open the corresponding sys_search_event and sys_search_signal_event records generated by the query.

    Observe that neither record contains any field or indicator specifying the search mode used (keyword, hybrid, or semantic).

    AI Search UX

    PRB2000828

    The 'Async Genius Result Processor' Asynchronous Message Bus (AMB) channel subscription is delayed by session sync contention The 'Async Genius Result Processor' sys_amb_processor record doesn't have dedicated_session_sync enabled. Without this flag, AMB subscribe transactions for this channel share the same global per-session lock as HTTP transactions. When long-running HTTP transactions are active in the same user session, subscribing to the Genius Result AMB channel is blocked waiting for the session lock, causing delayed delivery of Now Assist results.

    AI Search UX

    PRB2011697

    RAG popular search suggestion reader doesn't consider sys_rag_search _suggestion.active The sys_rag_ search_suggestion records with active=false are still returned.
    1. Generate sys_rag_ search_suggestion entries.
    2. Query the Suggestion API.

    Observe that the sys_rag_ search_suggestion records with active=false are still returned.

    AI Search UX

    PRB2012802

    Indexed source types shouldn't be hardcoded in the API The AISIndexSourceAPI.fetchIndexingState() method only returns for internal type indexed sources. It should include all indexed sources.

    AI Search UX

    PRB2014138

    $sp-search- result-title-highlight --background-color in sp-variables.scss There is no default assigned for variable '$sp-search- result-title-highlight --background-color'.
    1. Log in to Portal with AI Search enabled.
    2. Search for 'laptop'.
    3. Navigate to the AI Search page.

    Notice that the variable '--search-result -title-highlight --background-color: $sp-search-result- title-highlight --background-color;' isn't resolved.

    AI Search UX

    PRB2016024

    Synthesized responses on a mobile sized screen don't display 'Show full answer' after truncation in Zurich on Safari The answer is truncated without the option to expand: 'Show full answer'.
    1. Find a Zurich instance with multi-content synthesized Genius Results (GR) working in Portal that can work on the Safari mobile browser.
    2. Search for a term that would yield a synthesized GR.

    Observe that the answer is truncated without the option to expand: 'Show full answer'.

    AI Search UX

    PRB2021873

    Facets aren't rendered as the sensitivity filter fails quietly Facets aren't returned because of a failure to fetch hasMatch.
    1. Make sure the Now Assist setup isn't done.
    2. Make sure the sensitivity filter is null.

    Observe that facets aren't returned as a result of above line failing to fetch hasMatch.

    AI Search UX

    PRB2024551

    New/Different experience in the search when AI Search is turned on in the portal level
    1. Navigate to an instance.
    2. Impersonate as system admin.
    3. Navigate to /csm portal.
    4. In search bar, search 'Controllers and applications'.

    Observe that there's no follow up and articles displayed are shown previously in the enhanced chat.

    AI Search UX

    PRB2026614

    Auto-Enable Hybrid Search on Now Assist for Search Installation When a new users installs the 'Now Assist for Search' plugin, the system should automatically enable Hybrid Search for all search applications configured in the instance. This ensures new users benefit from Hybrid Search by default without requiring manual configuration. The behavior applies to all new user installations going forward and shouldn't retroactively affect existing users who have already installed Now Assist for Search.

    AI Search UX

    PRB2031624

    Enhanced Chat's search bar appears on portals with NextWave Note that the NextWave omni-bar displays on the homepage as expected. However, the search bar from Enhanced Chat is also appearing on other pages unexpectedly.

    AI Service - Glide Interfaces

    PRB1970597

    KB2977679

    Machine Learning (ML) trainings fail with a 401 error due to ACL errors, unless the 'Predictive Intelligence' plugin is explicitly repaired When the ML trainer attempts to fetch data from the instance, it receives an HTTP 401 unauthorized error for gml_service, which is resolved after explicitly repairing the 'Predictive Intelligence' plugin.

    Refer to the listed KB article for details.

    Analytics Data API

    PRB1844011

    Using 'Trend by week' leads to an incorrect record count when the new year starts When using 'Trend by' with the options 'Opened', 'Calendar', 'Standard Calendar' and 'per-week' and running the report, the record count is 3 but the List view record count is 5.

    Analytics Data API

    PRB1998034

    Single score data visualization ignores the 'Apply time series to result' indicator configuration Starting in the Zurich release, the Single Score Data Visualization with AVG (or SUM) aggregation does not respect the 'Apply time series to result' configuration on formula indicators. When this option is unchecked, the Single Score continues to display the time-series-based result instead of updating accordingly.

    Analytics Data API

    PRB2003111

    Pivot table using multiple data sources shows 'No data' on the widget when one of the data sources returns no data Even though data is available, the chart shows 'No data available'.
    1. Provision an instance with the com.snc.itsm _pa.demo plugin installed to have more test data.
    2. Open the list with records of the problem table (problem.LIST).
    3. Filter records by Assigned to = Abel Tuter and State = Assess so that two records appear.
    4. Remove one of the records.
    5. Move the other record to the Fix in Progress state by selecting the Fix button.
    6. Navigate to All > Library > Data visualizations.
    7. Select New.
    8. Select Visualization type: Pivot table.
    9. Specify the following data sources:
      • Incident table with the conditions Assigned to = Abel Tuter and State in (New, On Hold, Resolved).
      • Problem table with the conditions Assigned to = Abel Tuter and State in (New, Fix in Progress, Assess).
    10. Specify group by's:
      • Columns: Assign to; Show all; Individual metric.
      • Rows: State.
    11. Set 'Show row total' and 'Show column total' to false.
    12. Check the chart.

      Observe that the chart renders and shows expected data.

    13. Open the list with records of the problem table (problem.LIST).
    14. Filter records by Assigned to = Abel Tuter and State = Fix in Progress so that one record appears.
    15. Open that record.
    16. Change the status to Re-Analyze.
    17. Refresh the chart.

    Expected behavior: The chart is rendered and shows the expected data with zeros.

    Actual behavior: The chart shows 'No data available', despite data being available.

    Analytics Data API

    PRB2005078

    When using dynamic date ranges, appliedFilters returns incorrect dates
    1. Open UI Builder.
    2. Create a page.
    3. Add a data visualization component.
    4. Use the type, 'Line'
    5. Check the Define Data Manually toggle under 'Under data sources'.
    6. Copy and paste the 'defect response.txt' in the 'Data' section.

      Notice that the chart is rendered, though no information from March is present.

    7. Edit the 'Data' section.
    8. Update the 'end' information in appliedFilters, from ''end':'2026-02-28' to ''end':'2026-03-31'.

    Notice that data for March is now visible.

    Analytics Data API

    PRB2006926

    Geomap doesn't fetch locationData correctly when the incorrect query gets applied Locations which have valid data in cmn_location table aren't getting plotted. Every valid location should get plotted correctly.
    1. Navigate to Platform Analytics > Library > Dashboards.
    2. Create a dashboard.
    3. Add a Geomap widget based on the [sys_user] table with the following configuration:
      • Metric: Count
      • Group by: 'Location'
    4. Save the dashboard.
    5. Exit 'Edit' mode.

    Observe that the created Geomap widget doesn't render all the data points and shows an error: 'Some of the data you selected cannot be visualized on the map due to latitude/longitude mapping errors'.

    Analytics Data API

    PRB2020263

    Remove PowerMock to fix broken tests

    Analytics Export API

    PRB1977076

    There's a blank page when exporting Boxplot data visualizations Boxplot emits 2 SN_PAR_VISUALIZATION#RENDERED events, but it sends expectedRenderEvents = 1 in the export payload. That's why this fails intermittently when the chart isn't loaded completely.
    1. Navigate to Boxplot.
    2. Select Export.
    3. Pick JPEG as the file type.
    4. Download the JPEG file.

    Observe that a blank page is displayed. The same issue occurs with an embedded PNG and with PowerPoint files in a dashboard.

    Analytics Export API

    PRB1996615

    Scheduled export with omit if no records enabled, no attaching the exported file in Email log
    1. Create any visualization with some data.
    2. Schedule that visualization and while scheduling, turn on 'omit' if no records toggle.
    3. Select the export type of other > ppt > embed png.
    4. Save the scheduled export.
    5. Select Send Now.
    6. Navigate to email logs to find the email record of the scheduled export.
    7. Open that email record.
    8. Select the 'Email attachment' tab at the bottom.

    Expected behavior: The exported visualization should be attached there.

    Actual behavior: Nothing is attached.

    Analytics Export API

    PRB2007025

    Dashboard PDF export doesn't apply dashboard filters on the list Dashboard filters aren't applied to the list in the dashboard PDF exports. Only the filters configured in the list are honored.
    1. Export a dashboard to PDF with list visualization.
    2. Make sure the dashboard has dashboard filters and the list is following the filters.

    Observe that the filters are applied correctly on the dashboard to the list, but they aren't applied in the exported PDF.

    Analytics Export API

    PRB2019202

    Show the total row count in the 'Analytics' list The list-simple property 'hideTitleRowCount' should migrate to showRecordCount in the new 'Analytics' list.
    1. In Yokohama, create a list-simple visualization.
    2. Change the Hide total number of records toggle in the configuration.
    3. Save the visualization.
    4. Upgrade the instance.
    5. Open the same visualization.

    Observe that it doesn't migrate to the new list visualization and have the corresponding property set for showing count.

    Analytics Export API

    PRB2023200

    Hide the export option when its disabled or the roles list is empty The system provides export on demand functionality at dashboard and data visualization level (server-side) for the Next Experience. There is a need to control the availability of the export option based on system properties and user roles.
    1. As the system administrator, configure a system property to enable or disable the export feature.
    2. Make sure the export feature is enabled.
    3. Configure a second system property with a comma-separated list of roles that are allowed to use the export feature when it is enabled.

    Observe the system checks if the user's role is included in the configured list of roles (if the list is not empty). If the second system property (roles list) is empty, the export feature is available to all users when enabled. If the second system property (roles list) is populated, only users with roles in the list can access the export feature.

    Application Manager

    PRB2020279

    Users can't uninstall the 'Universal Request' application After installing the 'Universal Request' plugin, it isn't possible to uninstall it. There is a message stating that it can't be uninstalled because of the dependent plugin 'Universal Request: Reporting'. When attempting to uninstall 'Universal Request: Reporting', we are not able to because 'Universal Request' needs to be uninstalled first: 'This application cannot be uninstalled because one or more applications are dependent on it. In order to uninstall this application, please uninstall the below dependent applications first'.
    1. Provision an instance with the 'Universal Request' plugin installed.
    2. Navigate to the record on sys_store_app.
    3. Attempt to uninstall.

    See that it isn't possible.

    Application Rationalization

    PRB1990668

    Malformed sn-lucid-chart-intg.properties There's a missing comma in a dependency list.
    1. Open oob-apm-apps/ src/main/oob_apps /sn-lucid-chart-intg.properties.
    2. Locate the 2.4.1-dependencies= block.
    3. Find the line containing sn_lucdchart_spoke:1.1.1\.

    Confirm that there's no comma before the backslash continuation.

    Application Rationalization

    PRB1993865

    Base instance business rule fails to exclude the current record during duplicate name validation due to incorrect property reference The business rule on the cmdb_ci_business_app table incorrectly blocks updates when changing the case of a Business Application name (e.g., 'abc' to 'ABC'). This happens because it uses current.sysId instead of current.sys_id, resulting in an undefined sys_id comparison.
    1. Create a Business Application (cmdb_ci_business_app) with the name 'abc'.
    2. Edit the same Business Application and change the name to 'ABC' (only change the case).
    3. Attempt to save the record.

    Expected behavior: The save is allowed because it's the same record, just with a different case.

    Actual behavior: The save is blocked with the error: 'A Business Application exists with the same name. Please verify.'

    Appointment Booking

    PRB2026901

    Appointment Booking's scripted mode doesn't consider the territory resource demand feature
    1. Create a 'Records in Territory Resource Demand' table.
    2. Turn on this feature in the configuration.

    Appointment Booking in scripted mode should consider agent availability based on the territory demand channel association.

    Asset Management

    PRB2018791

    The navigation filter isn't applied correctly The relevant filter should be automatically applied after navigation.
    1. Navigate to Software Asset Workspace.
    2. Open the 'Software Asset Overview' page.
    3. In the 'Activity Center' section, select the Asset Request link.

      Observe the navigation to the target page.

    4. Verify whether the expected navigation filter is applied.

    Expected Result: The relevant filter is automatically applied after navigation.

    Actual Result: On navigation, the filter isn't applied.

    Attachments to Records

    PRB2018059

    GlideSysAttachment. writeContentStream() fails in the Scripted REST API in Australia GlideSysAttachment(). writeContentStream() fails with 'Can't find method com.glide.ui. SysAttachment. writeContentStream (object,string,string,com. glide.communications. GlideScriptableInputStream)' when called from a Scripted REST API in the Australia release. The issue is not present in Zurich.

    Audit History

    PRB2019035

    The sysID of sn_nowassist_skill_config is displayed in the username of the work notes This issue is observed only in Workspace. In UI16, it's working fine.
    1. Make a GenAI Skill call.
    2. After the GenAI Skill call, update any record.

    Observe that the sysID of sn_nowassist_skill_config is displayed in the username of the work notes, but it shouldn't be.

    Authentication Factors

    PRB2026011

    Introduce a new MFA factor, Email OTP This is a product update.

    Authentication Factors

    PRB2026012

    KBA improvements of Platform capabilities This is a product update.

    Authentication Factors

    PRB2026014

    KBA session context persistence This is a product update.

    Authentication Factors

    PRB2026015

    NextWave AI authentication migration to a new authentication service This is a product update.

    Authentication Factors

    PRB2026060

    The kba_session_context value is not in JSON format The kba_session_context value is logged in this format: '{q1_keyword=q1_user_input, q2_keyword=q2_user_input}'.
    1. Create three scriptable authentication type answers.
    2. Attach them to three different questions.
    3. Log kba_session_context in these three answers, along with kba_auth_result=true.
    4. Navigate to a voice deployment.
    5. Select the three questions as a KBA auth factor.
    6. Call the voice agent.
    7. Authenticate a user.
    8. Navigate to the syslog table.

    Observe that the kba_session_context value for the third question is logged in this format: '{q1_keyword= q1_user_input, q2_keyword= q2_user_input}'. It should be logged in a standard json format.

    Authentication Factors

    PRB2030597

    Fall back to secondary identification when the primary resolves a non-sys_user In cases when the identification questions are configured to a non-sys user, then it should ask fallback questions. This isn't happening in v2 and the call is ended since the userID isn't resolved. It should fallback to the secondary identification to get the userID. In cases where both the questions lead to a non-sys_user, then it should fail.

    Authentication

    PRB1969882

    KB2718536

    Log in screen performance issues on iOS 26.2 RC and in Zurich instances After upgrading to iOS 26.2, users are unable to log in to any instance using the Now Mobile app. The login page is extremely slow or unresponsive, and it can fail to load or accept credentials. The issue affects multiple users and device models. It's reproducible across different instances, and it also impacts the Agent app.
    1. On iOS, navigate to the Now Mobile app.
    2. Connect to a Zurich or later family release instance.

    Observe that the screen loads slowly and is non-responsive.

    Authentication

    PRB2033124

    Case-sensitive comparison is applied during knowledge-based authentication (KBA) answer matching Case sensitiveness of KBA answer matching is controlled by the system property 'glide.auth_factors. kba.case_insensitive _validation'. It is by default case insensitive in previous patches, but seems to have the incorrect default value in recent tracks.
    1. Set up knowledge_based_answer for a KBA Service.
    2. As an end user, try to pass answers and validate identification/authentication.

    Expected behavior: The user-given input should be matched case insensitively.

    Actual behavior: Answers are matched case sensitively.

    Automated Test Framework (ATF)

    PRB2015508

    Workspace load time performance fixes in Automated Test Framework (ATF) cache
    1. Navigate to an Australia instance.
    2. Create a test to open SOW Workspace > Incident Form > UI action visibility > Save.
    3. Run the test.

    Observe the test takes up to 40 seconds to complete successfully. Sometimes intent timeout errors are seen.

    Automated Test Framework (ATF)

    PRB2022891

    MVP - UI test script (Testing Library) test step in ATF for UI testing This is a product update.

    Cache

    PRB1947736

    DBVideoProvider shouldn't use a synchronized LRU This lock displays contended in most p90+ UI transactions.

    Case and Knowledge Management for HR Service Delivery

    PRB2015420

    RCAs for Now Assist Agents for requestor
    1. Open NAVA.
    2. Give the utterance: 'I need to verify the status of my tickets' to invoke 'Request Status AI Agent'.

    See an error and see the requested RCAs.

    Change Management

    PRB1994240

    Translation issues in the Conflict Checker Progress modal window Translation issues were observed after upgrading from Yokohama to Zurich. The 'conflict_detection' header appears to be missing the message completely when it previously read 'Conflict Detection'. The message 'The conflict check is complete' is translated into Finnish, even when the user's language is in English. This issue also occurs when the instance language is set to French, and the label is translated in English.
    1. Open a Zurich instance.
    2. Ensure that the instance is set to the English language.
    3. Open a change record.
    4. Select the Check Conflicts button in the 'Conflicts' tab.

    Notice that the progress bar title displays as 'conflict_detection' and the value is shown rather than the label, 'The conflict check is complete'. The label is translated in Finnish even though the user's instance language is set to English.

    Change Management

    PRB2011052

    Users are unable to add a change model state attribute for a major model from a scoped app Application access settings don't allow writes to the sttrm_state_attribute table. The ACL is restricting to set the State field on sttrm_state_attribute record.
    1. Create a change model with a set of states from a scoped app.
    2. Try to add an existing change model attribute to one of the states.

    Observe that the record isn't generated properly.

    Change Management

    PRB2011527

    Applying a template can lead to URL size issues and invalid encoding This appears to be potentially two issues. The template being added to the URL to apply it on the new form causes URL size and encoding issues. Observe that there's an error message in the developer console. A 500 error is returned from the instance: 'URLDecoder: Illegal hex characters in escape (%) pattern - Error at index 0 in: |",%\'''.

    Change Management

    PRB2021436

    Instances should not get license restriction ACLs This issue was observed in Australia. Licensing controls are enforced when there are entries in subscription_entitlement.

    Log in to any Australia non-prod instance.

    Notice that the licensing controls are enforced when there are entries in subscription_entitlement, even if the instance is open.

    Change Management

    PRB2024681

    Add a missing entry for an advanced/change admin experience for Auto Install Framework Auto Install Framework was shipped to Australia users. The missing entry record related to advanced admin experience should be added so that the framework installs this experience as well for net-new users.

    Code Signing

    PRB2014768

    Increase the code signing validity window maximum from 60 minutes to 4 hours In the 'Scan Signatures' module, the Data source field is incorrectly set to false for records that have valid, successfully created signatures. These signatures return true when validated via a background script. The issue occurs because the effective maximum of com.snc.kmf.signature .validity_window is 60 minutes, which prevents users from configuring longer validity windows, especially when the consecutive signature generation takes time.
    1. Open an instance.
    2. Navigate to 'Update Set: Test Code Signing Updates'.
    3. Validate that the signature is created for the Data source field.
    4. Select Scan Signature.

    Observe that the signature state for the Data source field still reflects as false.

    Code Signing

    PRB2014831

    Scheduled scripts incorrectly appear in 'Update Set Signature States' Currently, users are required to hold the security_admin role to perform code signing operations on update sets. This creates several operational and security challenges. Instead, there should be a separate role that grants the ability to perform code signing operations on update sets and related artifacts within the Code Signing framework. It shouldn't grant access to security policies, ACLs, encryption contexts, or other security administration functions.
    1. Open an instance.
    2. Navigate to 'Update Set: Code Signing Scheduled Jobs'.
    3. Navigate to the tab 'Update Set Signature States'.

    Observe that there's no option to run signing jobs unless elevated to the 'security_admin' role.

    Code Signing

    PRB2014833

    Enable digest creation for users with the code signing role For users with the code_signing_user role, the 'Create Digest' functionality should be enabled for Flow Designer flows and actions. The current dependency on the security_admin role should be removed.
    1. Open an instance.
    2. Navigate to 'Update Set: Code Signing Scheduled Jobs'.
    3. Navigate to the tab 'Update Set Signature States'.

    Observe that the user can't generate digest for flows unless they have the 'security_admin' role.

    Column Level Encryption

    PRB1978716

    Encryption isn't applied correctly for comma separated list values in a Glide record query for IN and NOT_IN clauses

    Condition Builder in Workspace

    PRB2001225

    The messaging for deleting saved filters is misleading The confirmation dialog says 'Active will no longer be available in your saved filters. This action can't be undone.' Instead, it should be more explicit that the filter may be deleted for everyone.
    1. Navigate to a list in Service Operations Workspace.
    2. Open the condition builder.
    3. Add some filters to the condition builder.
    4. In the 'Saved Filters' list, select Save Filter.
    5. Select Save.
    6. Open the 'Saved Filters' list.
    7. Select the Trash Can icon next to the saved filter that was just created.

    Expected behavior: The confirmation explicitly says that when a filter is deleted—especially one that has been shared to a group or globally—it is deleted for everyone.

    Actual behavior: The confirmation dialog opens and shows: 'Active will no longer be available in your saved filters. This action can't be undone'.

    Condition Builder in Workspace

    PRB2011310

    The SLA field is read-only in a related condition when creating a list in Workspace

    Configuration Management Database (CMDB)

    PRB1992684

    KB3005930

    CMDB Query Builder with the system language set as Japanese displays empty results There are missing values in queries when using Japanese. The French language can lead to errors.

    Refer to the listed KB article for details.

    Customer Service Portal Base

    PRB1966219

    Additional comments are duplicated in the Customer Service Management (CSM) Portal if the state is 'Awaiting Info' Duplicate comments are occurring due to two identical network calls being made with the same journalEntry content. This duplication specifically happens when the spUtil.recordWatch method (part of the client-side script) triggers these service calls under slower network conditions (3G speed simulation).
    1. Impersonate a CSM agent.
    2. Open a case.
    3. Add an additional comment and request information.

      The state of the case is set to 'Awaiting Info'.

    4. Impersonate a user account (external).
    5. Open the case.
    6. Add a comment.

      Note that the comment appears twice in the case activity log.

    7. Add a second comment (the state of the case is now open).

      Note that the comment isn't duplicated.

    Database Persistence - Data Access

    PRB1919872

    There's duplicate edges in the output of jsFunction_getEdgeList for custom created graphs and when includeEdgesForTablesOutsideGraph is true

    Database Persistence - Data Access

    PRB1930279

    Users are able to create a cyclic relation through graph hierarchy
    1. Create a graph.
    2. Name it test1.
    3. Create another graph with the parent as test1 (with extension model) and name it test2.
    4. Edit test1 to have a parent as test2 (with extension model).

    Notice that it creates a cyclic relation in graphs test2-parent-test1 and test1-parent-test2.

    Database Persistence - Data Access

    PRB1946286

    Workflow Data Fabric (WDF) queries fail when trying to execute on connection for trino_primary When trying to get a specific column instead of the entire record, the error occurs in the response: ''FAILED TRYING TO EXECUTE ON CONNECTION trino_primary'.

    Database Persistence - Data Access

    PRB1962536

    The prefix is missing on some places for the Knowledge Graph UI
    1. All > Knowledge Graph Designer.
    2. Select the Open global graph button.
    3. Select Start with user table > Any node.

      Note that the prefix is missing for some of the columns.

    4. Expend any node on canvas.

      Note that the prefix is missing for expended nodes.

    5. Open the contribution graph.

      Note that the prefix is missing for all the nodes, columns, and relations.

    Database Persistence - Data Access

    PRB1969193

    KB2747470

    SELECT isn't generated correctly for a script when a business rule is active with ORDER BY for Postgres There's an error message: 'FAILED TRYING TO EXECUTE ON CONNECTION glide.1 (connpid=3758451): SELECT...'

    Database Persistence - Data Access

    PRB1984070

    KB2928335

    Trend reports and dashboard show inaccurate data by week across the end of a year On instances using a PostgreSQL database, an incorrect year reference (yearref) is returned for the non-ISO week functions sunday_week and monday_week. As a result, the column data displays trends for future dates where no actual record data exists. This issue affects reports and dashboards that group or summarize data by week across the end of a year. Reports may display an unexplained empty week in one year, a duplicated week in another, or records appearing in the incorrect annual bucket.

    Refer to the listed KB article for details.

    Database Persistence - Data Access

    PRB1986459

    The 'Add OR Clause' with multiple filters is not working as expected

    Database Persistence - Data Access

    PRB1998050

    Glide-side changes for label population in picker tables

    Database Persistence - Data Access

    PRB2027220

    ColumnName.resurrect() re-shortens long names, corrupting external store column names on deserialization ColumnName.resurrect() reconstructs a ColumnName from its serialized form using new ColumnName(name), which re-applies the preFujiShortColumnName() 30-character shortening algorithm. However, serialize() writes the already-resolved fName directly. For external-store columns (Snowflake, BigQuery, Trino) whose physical names exceed 30 characters, the name is corrupted on deserialization — the resurrected ColumnName points to a shortened name that doesn't exist in the external store.
    1. Create a ColumnName with shortening turned off: new ColumnName ("external_column_ with_a_very_ long_name", false) (37 chars, exceeds MAX_LENGTH of 30).
    2. Serialize via ColumnName.serialize(writer, cn).
    3. Deserialize via ColumnName.resurrect(reader).

    Observe the resurrected name is the 30 character shortened form, not the original 37 character name — a round-trip corruption.

    Database Persistence - Data Management

    PRB1999855

    The 'One Time Archive Max Length Sync' job widens the max length of reference fields incorrectly
    1. Create an archive table with retain reference enabled:new GlideArchiveTable() .create (<primaryTableName>, true);.

      This operation creates an archive rule and corresponding reference fields on the archive table.

    2. Run the one-time job.
    3. Since no explicit archive rule exists on the table at runtime, verify that the one-time job recalculates the maximum length of reference fields based on the reference display element length, resulting in those fields being widened.

    Expected behavior: The one-time job should not widen reference fields when they are already reference types created with retainReference = true. In this scenario, the reference fields are already correctly defined, and recalculating their length based on display values is unnecessary and incorrect.

    Actual behavior: The one-time job widens the max length of reference fields, even though the fields are already of reference type and were created with retainReference = true.

    Database Persistence - Data Management

    PRB2004780

    Use batch deletion for the 'Columnar' archive table during bulk archive restore Deleting records one by one is not efficient for a 'Columnar' archive table because it requires scanning the same bucket multiple times. Batch deletion would only scan each bucket once.
    1. Migrate some archive tables to columnar.
    2. Attempt to run archive bulk restore.

    Expected behavior: Archive restore should be performed.

    Actual behavior: Archive restore isn't performed.

    Database Persistence - Data Management

    PRB2005218

    Archive-Tier2-Bulk-Restore handle has silent exceptions when missing an archive log or bucket If there's no archive log for the relevant cidx_record during restoration to the ar_* table, the process fails silently and also moves the cidx_* record to the cidx_*_backup table. If the sys_s3_bucket value is missing in the cidx_* record, which shouldn't occur, it loses the key value needed to restore the record. In this case, the chunk is processed, but the cidx_* record remains unchanged, making it appear as though the record was not processed. sys_s3_bucket value is missing for any cidx_* records which are still pending to be offloaded. The pending cudx_* records needs to be ignored.
    1. Offload a bunch of records to tier2 (using the 'Offload' job).
    2. For a couple of records, remove the value from the sys_s3_bucket field.
    3. For another couple records, find its sys_archvie_log record and delete it.
    4. Turn on the tier2 bulk restore.

    Database Persistence - Data Management

    PRB2015142

    There's a slow query during archiving records to the 'columnar archive' table The archived incident has a reference field whose referenced record has already been archived; it no longer exists in the live incident table, only in ar_incident. When copyFields tries to get the display value of that reference, live table lookup fails (record already moved to archive), GlideElementReference falls back to ArchiveResolver, and ArchiveResolver confirms it's in ar_incident via sys_archive_log, then queries ar_incident to fetch the display value.

    Database Persistence - Data Management

    PRB2016927

    Avoid reparenting the 'Columnar' archive table with a documentID reference after restoring a record

    Database Persistence - Data Management

    PRB2022327

    Data Management Console fails to load live archive object storage data Data Management (DM) Console fails to load live archive object storage data on instances using the new Live Archive / Tier 2 archive feature (com.glide.db.columnar.archive). This is because S3StorageInfoEligibilityChecker.isEligible() calls ArchiveEntitlementAPI. passedEntitlementCheck(), which only validates the legacy plugin com.snc.tier2_data_offload via isBaseTermsAndConditionsAccepted(). Users on the new columnar archive plugin fail eligibility and the S3StorageInfo daily job aborts.
    1. Provision an instance with the Live Archive feature.
    2. Turn on the Live Archive feature.
    3. Offload a lot of data.
    4. Browse to the 'DM Console' page.
    5. Look for the 'Object Storage' widget.
    6. Verify that the data isn't visible.

    Expected behavior: The S3StorageInfo job should run for eligible users.

    Actual behavior: The S3StorageInfo job isn't running for eligible users.

    Database Persistence - Data Scale

    PRB1974343

    A query hint isn't including the change number and is causing the hint to be ignored

    Database Persistence - Data Scale

    PRB2002323

    When dry run mode is false, a successful external transfer causes TM to lock itself in a failed state and prevents any automatic failover during that window

    Database Persistence - Graph

    PRB1923336

    The isTableExcluded API should exclude text search tables

    Database Persistence - Graph

    PRB1932536

    An error should show 'Display Name' instead of the table name
    1. Create a graph.
    2. Add nodes - 'User' and 'Location'.
    3. Save the graph.

    Observe an error: 'No properties found for node sys_user'.

    Database Persistence - Graph

    PRB1938573

    A 'WHERE' clause appends all query node conditions with an 'AND' operator, even when there are 'OPTIONAL MATCH 'statements When trying to a build cypher query for the following use case, 'Identify all CI's which are connected to Database catalog or Application', in the final built cypher query the 'WHERE' clause is using all 'AND' conditions to append all node filters to the query. When using 'OPTIONAL MATCH' statements, an 'OR' logic is expected.

    Database Persistence - Graph

    PRB1944327

    Global graph should be the default and all other graphs should be non-default when the instance is upgraded from Yokohama to Zurich Default graphs and global graphs are all set to non-default.
    1. Create two default graphs on a Yokohama instance.
    2. Upgrade the instance to Zurich.
    3. Check the graphs on sys_meta_graph.

    Expected behavior: Global graph should have default = true and the other two graphs that were created in step one should have default = false.

    Actual behavior: Both of the created default graphs and the global graph are default = false.

    Database Persistence - Graph

    PRB1967193

    CMDB Query Builder doesn't work when multiple OR conditions are used on location attribute When multiple OR conditions are used on the location filter, the CMDB query builder doesn't return any results.

    Scenario 1:

    1. Navigate to the query builder.
    2. Open the configuration item query block.
    3. Select Filter.
    4. Run the builder with multiple OR conditions on the location filter.

      Observe that no results are returned.

    5. Remove all the OR conditions for location (or use one location filter).
    6. Run it.

    Observe that once a second condition is added, the query builder fails.

    Scenario 2:

    1. Navigate to the CMDB Query Builder.
    2. Add a server node to the canvas.
    3. Apply filters to the node with the following conditions:
      • Location contains 'bock'
      • Location contains 'via'
    4. Run the query.

      Observe that no results are returned.

    5. Remove one of the conditions (e.g., 'Location Contains 'via'').
    6. Rerun the query.

    Observe that results are now returned.

    Database Persistence - Graph

    PRB1975732

    There's a repeated query execution in GraphUtils #getGraphByQualifiedName for a metadata child table [sys_meta_graph] for every iteration/execution

    Database Persistence - Graph

    PRB1988516

    Weeks, milliseconds, and microseconds aren't supported in a DURATION map There's an error: 'com.glide.db. DBGraphApiException: Error executing cypher: FAILED TRYING TO EXECUTE ON CONNECTION...Syntax Error or Access Rule Violation detected by database (ERROR: function duration_between(date, date) does not exist Hint: No function matches the given name and argument types. You might need to add explicit type casts. Position: 294)'.

    Database Persistence - Graph

    PRB1988520

    TimeKeyExpression isn't supported as a DURATION function parameter in DBSqlParser There's an error: 'Error: com.glide.db. DBGraphApiException: Error executing cypher: FAILED TRYING TO EXECUTE ON CONNECTION...Syntax Error or Access Rule Violation detected by database (ERROR: function duration_between(timestamp with time zone, date) does not exist Hint: No function matches the given name and argument types. You might need to add explicit type casts. Position: 307)'.

    Database Persistence - Graph

    PRB1990632

    Node/edge types should allow special characters for GraphMetadataAPI Predefined filters fail in the Graph API version of the CMDB query builder. After a platform upgrade, CMDB query builder throws the 'Problem Running Query' error.

    Database Persistence - Graph

    PRB1995712

    Weeks, milliseconds, and microseconds aren't supported in the 'Duration' map

    Database Persistence - Graph

    PRB1996879

    Guardrail for maximum number of edges returned from getForTables The number of nodes returned from getForTables is capped to 1000, but there's no such limitation for the number of edges. When inbound edges are specified and the number of nodes is at maximum, the number of edges can be quite large.

    Run getForTables for sys_user with inbound edge flag = true.

    Database Persistence - Graph

    PRB1997409

    L2 query displays non-empty edge values
    1. Navigate to Query Builder.
    2. Drag the 'Database and Computer' class into the canvas.
    3. Connect them with the L2 relationship edge.

    Expected behavior: Observe with the data, there should be two L1 relationships and three L2 relationships with edge shown as '(empty)'.

    Actual behavior: The three L2 relationships have unexpected edge values.

    Database Persistence - Graph

    PRB2007566

    com.glide.db. DBGraphApiException has an error executing cypher There's an error: 'This user (admin) is not allowed access to table: sys_user_has_role'.

    Database Persistence - Graph

    PRB2008809

    Rename the ScopedGraphQueryBuilder .createNode method To avoid potential confusion with createNode as a write operation, rename the 'createNode()' method to 'node()'.

    Database Persistence - Graph

    PRB2020140

    Union queries aren't supported

    Database Persistence - Graph

    PRB2021889

    GlideRecord. setCategory() is used in a way that prevents routing to read-replica databases The query is categorized as 'graphqueryexecutor' instead of 'cmdb_queries', and therefore doesn't get routed to the read replica because the category isn't a second database category.
    1. Ensure that the instance is set up with a read replica database.
    2. Ensure that the CMDB Queries (or all Secondary Database Categories) are enabled and are mapped to the read replica.
    3. Execute a KG query from the CMDB Query Builder app.

    Expected behavior: The query is categorized as 'cmdb_queries' and is routed to the read replica.

    Actual behavior: The query is categorized as 'graphqueryexecutor', and since that category isn't a secondary database category, is not routed to the read replica.

    Database Persistence - WDF

    PRB1975615

    GlideAggregate. getDisplayValue issues a separate query per each returned record for GlideAggregate

    Database Views

    PRB2004420

    Data fabric (DF) tables in DBViews uses an old connection even after doing a change connection/remap flow on DF tables
    1. Create two DF tables on any two tables from an existing established connection on Snowflake Zero Copy Connector.
    2. Create DBView on these two tables, joining them on any field.
    3. Navigate back to the DF tables and change connection on that existing DFtable that was initially created.
    4. Query DBView.

    Observe that the underlying DF tables in DBView still looks for an old connection.

    Data Management Console

    PRB1974031

    A repeated query with the hash -423529530 comes up when running stats gatherer

    Data Management Console

    PRB1976295

    The confirmation checkbox is missing on the 'Summary' page when scheduling a rule

    Data Management Console

    PRB1979259

    The data on Data Management Console (DMC) is inconsistent when the 'Stats gatherer' job runs The data on DMC is inconsistent when the 'Stats gatherer' job runs because the latest available data is chosen, even when the data isn't completely generated.

    Data Management Console

    PRB1980674

    There's a potential of orphan sys_peripheral _table_stats records for a duration of 1 year with the existing Data Management Console (DMC) table's table cleaners Revisiting the table cleaners for sys_peripheral _table_stats and sys_physical _table_stats in order to accommodate a new data model. Cascade delete should be turned on so that orphan records are cleaned up regularly.
    1. Check the 4 table cleaners for sys_physical_table_stats.
    2. Observe that cascade delete isn't enabled.

    Expected behavior: Cascade delete should be enabled and in the sys_dictionary. The reference column's reference_cascade_rule should be 'delete'.

    Actual behavior: Cascade delete isn't enabled.

    Data Privacy (Classic)

    PRB2001965

    'Run once' Data Privacy jobs take a long time to complete on large tables As part of Zurich, Data Privacy jobs were enhanced to support incremental and recurring anonymization. As part of this, 'sys_updated_on < jobStartTime' was added to the query condition while creating segments and querying a batch of records for processing. Generally, sys_updated_on column isn't indexed. As a result, the jobs take lot of time to create segments, which require querying boundary records involving filtering on sys_updated_on and ordering by sys_id. While the sys_updated_on filter condition is necessary to support incremental, this dependency can be removed on 'Run once' jobs, where all records in a table are expected to be anonymized.
    1. Provision an instance with the Data Privacy plugin installed on a large clone.
    2. Set up a privacy configuration on a table with large number of records.
    3. Configure and run a 'Run once' dp_job.

    Expected behavior: Segment creations (dp_work_item) should happen within few a minutes.

    Actual behavior: It takes hours to create segments (dp_work_item).

    Data Privacy (Classic)

    PRB2002556

    Data Privacy Clone (federated) jobs can't handle pause/resume scenarios During a clone job execution, if the node on which the clone job is executing is restarted, scheduler reschedules the job on a different node. When the job is restarted on a different node, it fails due to inability to deserialize and restore the state items (that dictate where the job should resume from).
    1. Provision an instance with Data Privacy installed.
    2. Create a data class with classified fields of table - cmn_location.
    3. Create a clone Data Privacy policy.
    4. Schedule the clone policy by creating a clone.
    5. Notice a clone job is created in the dp_federated_job table and the job is running.

    Expected behavior: The job should be completed.

    Actual behavior: The job errored out with 'Error creating job handler for type null from serialized state : [Interfaces can't be instantiated! Register an InstanceCreator or a TypeAdapter for this type. Interface name: com.glide.data_privacy.jobs.stateitem.StateItem]'.

    Data Privacy (Classic)

    PRB2006453

    The Data Privacy job's policy child table filtering isn't working as expected if the parent table is selected as a child table filter If a task table is selected as child table for any of its dictionary selected tasks as the child table, then it's expected to anonymize records that belong to sys_class_name = task, and the rest of the records, the incident or problem, are expected not to be anonymized. It's anonymizing the entire task table.
    1. Create a Data Privacy policy using the task table, short description, description columns.
    2. Select the child table filter for any of the columns.
    3. Add a task.
    4. Save and publish the policy.
    5. Schedule a Data Privacy job.

    After the job completion, notice that the entire task table is anonymized, but it's expected to only anonymize the task records, not any others.

    Data Privacy (Classic)

    PRB2017470

    Job conditions aren't applied by additional jobs during parallel execution This is caused because of dp_additional_job not applying the condition setup for the job. Since, the conditions in dp_job_condition is tied to parent job, querying from additional job won't find them unless it uses the parent job ID to query.
    1. Create a privacy policy for a task table.
    2. Set up sys_properties to com.glide.data_ privacy.max_ parallel_workers=2.
    3. Configure a job with conditions.
    4. Ensure sufficient data to create at least 2 segments.
    5. Run the job.

    Expected behavior: Only records matching the setup condition should be anonymized.

    Actual behavior: Record not matching the condition are also anonymized.

    Data Privacy (Classic)

    PRB2017592

    A minimum segment size of 100K characters restricts parallelization and lacks work item table cleanup The current minimum segment size is hardcoded at 100K characters, which artificially caps the number of segments that can be generated for a given dataset. As a result, the number of worker threads that can be utilized for parallel processing is also restricted — even when additional infrastructure capacity (CPU, memory, available workers) is available to be consumed. If the minimum segment size is reduced to improve parallelization, the number of work items inserted into dp_workitem grows significantly, accelerating the rate at which this table accumulates rows. Without a corresponding cleanup mechanism, this will lead to unbounded table growth, increased storage consumption, and potential degradation of query performance over time.
    1. Create/update the sys_property 'com.glide. data_privacy. max_records_ per_work_item' to 10000
    2. Create a data class Data Privacy job on a table containing at least 20K records.
    3. Run the job.
    4. Examine dp_work_items.

    Expected behavior: There should be at least 2 work items.

    Actual behavior: There's 1 work item.

    Data Privacy (Classic)

    PRB2017660

    Users aren't able to switch to a GPU-based Named Entity Recognition (NER) service from CPU-based services for privacy jobs

    Data Product Backend Services

    PRB2017091

    Users are unable to remove a source table from Data Interface syncDataInterfaceM2MTable DAO method wasn't removing M2M rows for sources absent from the new list. Delete path lacked compensating-action registration, leaving stale rows on partial failure.
    1. Navigate to Data Workbench.
    2. Create a Data Interface.
    3. Try to add a new source to the interface.

    Observe that the user isn't able to add/remove a source from the interface.

    Data Product Backend Services

    PRB2017092

    Users are unable to add a new source to Data Interface The syncDataInterfaceM2MTable DAO method isn't inserting rows for sources present in the new list but that are absent from the database. Insert path lacked compensating-action registration, leaving the interface with no implementors on partial failure.
    1. Navigate to Data Workbench.
    2. Create a Data Interface.
    3. Try to add a new source to the interface.

    Observe that the user isn't able to add a new source to the interface.

    Data Product Backend Services

    PRB2017094

    Users are unable to roll back if the creation or editing of a data interface fails in the middle DataProductDAO edit methods had no rollback mechanism. A failure mid-transaction left the interface partially mutated with no way to restore prior state.
    1. Navigate to Data Workbench.
    2. Create a Data Interface.

    Observe that the data interface creation failed in the process, a few artifacts were created, and a few are missing.

    Data Product Backend Services

    PRB2017095

    Once an interface is created, the metadata JSON for existing interface tables is missing DataProductDAO didn't call TableManager.invalidateTable for existing source tables after interface creation. Users received stale cached metadata JSON rather than the newly registered interface state.
    1. Navigate to Data Workbench.
    2. Create a Data Interface
    3. Add a new source to the interface.

    Observe that the metadata is missing, causing the UI to break.

    Data Snapshots

    PRB1999238

    There's a node outage due to an out-of-memory error as a result of a memory bloat in ScriptableCDCDataCollector .jsFunction_mineAllChanges() During the investigation, it was noticed via heapdumps that the com.snc.db.cdc. implementation. ReplicationTableReader object held an array list of size 500. Each entry in this array list held up to a max of 800 Glide record objects. The size of each of these 500 entries was ~21 MB. The Glide record objects were from the cmdb_ci_vm_instance table. These were particularly heavy in terms of row size (reaching ~400 KB). The existing sizing must be revisited to take into account this outlier. In particular, in addition to a limit on number of rows to be polled from cdc_queue_par, it should also include a limit to cap the memory size.
    1. Create an 'All activity data snapshots' source on the em_alert table.
    2. Run the 'Incremental all activity' job.
    3. Run the first snapshot job and let the first mining complete.
    4. Run the 'Incremental all activity' job.

    Notice the memory bloat in the worker thread running for the 'All changes' job.

    Data Snapshots

    PRB2018876

    Turn on automatic installation of the plugin com.snc.pa.mlb on eligible instances This is a product update.

    Developer Sandboxes

    PRB1995018

    NowMQ messages can be claimed by an unexpected recipient If the user sets the App Operation Queue Health Monitor job to disabled, it should prevent the sandbox from claiming any application operation queue messages in sys_nowmq_message. On an instance without sandboxes, any messages that were left unclaimed or any newly added messages should still be claimable when the job is re-enabled.
    1. Make sure one controller and one sandbox are running.
    2. On the sandbox, set the App Operation Queue Health Monitor job to disabled.
    3. Enqueue an operation on the sandbox by initiating an app install from app manager or via /sn_cicd/update_set/commit.
    4. Navigate to sys_nowmq_message.

    Observe that the corresponding message from step 3 is unexpectedly gone. It should still be present but unclaimed as a result of step 2.

    Developer Sandboxes

    PRB2011753

    Sys_flow_trigger_plan_chunk is currently shared and causing updated flows to error out If you update the base flow, the sandbox flow errors out with 'Compiled flow not found for snapshotId'.
    1. On a base instance, create a flow that is scheduled to run every minute.
    2. Navigate to Flow Designer > Operations > Flow > Today's execution.

      Observe that the flow is running successfully.

    3. Create a sandbox.
    4. In the sandbox, navigate to Flow Designer > Operations > Flow > Today's execution.

      Observe that the flow is running successfully.

    5. In the sandbox, update the flow.
    6. Select Activate.
    7. Navigate to the base instance.

    Observe that, under 'Today's execution', the flow starts erroring out with 'Compiled flow not found for snapshotId'.

    Developer Sandboxes

    PRB2015080

    The scheduled flow inherited from the main instance does not run automatically on the sandbox instance The flow runs in main instance at the scheduled interval, but the flow doesn't run in the sandbox instance even though it exists.
    1. Open the main instance.
    2. Navigate to All > Flow Designer.
    3. Create a flow.
    4. Schedule that flow to run at a certain interval, for example, 'Repeat every minute'.
    5. Activate the flow
    6. Navigate to All > Flow Designer > Operations > Flows > Today's executions.

      Notice that the flow is running every minute.

    7. Create a sandbox instance.
    8. Navigate to All > Flow Designer.

      Notice that the flow exists.

    9. Navigate to All > Flow Designer > Operations > Flows > Today's executions.

    Notice that the flow is not running.

    Developer Sandboxes

    PRB2017438

    DSB update sets aren't exported before clone Because sandboxes are retired, update sets from a sandbox should be saved as remote update sets on the base instance on upgrade. However, due to this problem, they may not be saved correctly.
    1. Create a sandbox.
    2. Make changes in the sandbox.
    3. Upgrade the instance.

    Expected behavior: There is a way to recover the work.

    Actual behavior. The work is gone. Logs show jsFunction_exportUpdateSets is called.

    Developer Sandboxes

    PRB2018545

    BA conversations are shared between sandboxes/base instance The base instance conversation contains messages from the sandbox, and vice versa.
    1. Provision an instance with BA installed.
    2. Create a sandbox.
    3. From the base instance, open IDE or Studio.
    4. Start a conversation (for example, 'What's 1+1').
    5. Visit the sandbox.
    6. Open IDE or Studio again.

      Observe that the conversation already contains the messages from the base instance, even though it should be empty.

    7. Add another prompt in the sandbox.
    8. Refresh the base instance.

    Expected behavior: The conversation doesn't contain what was typed in the sandbox.

    Actual behavior: The conversation contains messages from the sandbox.

    DirectSQL

    PRB2000506

    A correlated sub query loses outer table references The correlated condition is translated incorrectly, resulting in incorrect results.

    Run the following query: SELECT number, (SELECT COUNT(*) FROM incident AS x WHERE x.priority < incident.priority) AS lower_pri_count FROM incident ORDER BY number.

    Expected behavior: The query returns each incident with a count of how many other incidents have a strictly lower priority value. Incidents with priority > 1 should have a non-zero count.

    Actual behavior: Every row returns lower_pri_count = 0, because the correlated condition is translated as x.priority < x.priority (always false).

    DirectSQL

    PRB2014682

    DirectSQL extract epoch support is broken Users can't extract epoch and must use unix_timestamp instead. Also, the cypher-related code may be breaking the postgres implementation.

    DirectSQL

    PRB2016811

    Disallow queries that use an inaccessible offrow array in non-select items For example, select * from sys_user where roles is not null. If users don't have access to sys_userroles for the roles offrow array, then this query should error out indicating that is the case. Currently, null is substituted into the 'where' clause instead, which is confusing.

    DirectSQL

    PRB2019852

    SELECT * must exclude columns that don't exist in the database Select * from a table that has a function field, like cmdb_data_management_policy, won't work because it's trying to find the function fields on the database. A filter should be added to exclude these fields.

    Discovery

    PRB1986211

    Discovery.complete and discovery.canceled are triggered incorrectly Discovery may trigger both discovery.complete and discovery.canceled events for the same status, and it may trigger discovery.canceled twice.
    1. Create or pick a cloud-resource Discovery schedule configured to use a specific MID server (midSelMethod = 'specific_mid').
    2. Ensure that the MID server is in a state where validateMIDCondition() returns false (typically because the MID is down / not validated).
    3. Run the schedule (or trigger it via the Discover Now action).

    Observe that discovery.canceled fires twice for the same status record. The StartDiscovery error log for 'Discovery canceled on previously started schedule ... due to mid not available' appears twice. Instead, there should be a single discovery.canceled event and a single error log entry per cancelled run.

    Discovery

    PRB2014076

    Update Discovery references to the new error framework from a scoped app to zboot This is a product update.

    Discovery

    PRB2016944

    Classifier probes aren't firing if the 'First checked' probe has already been fired Discovery should fire further probes, but instead completes prematurely.

    Document Intelligence Unified Backend

    PRB2018937

    Local naively checks for empty text rather than 'blank' when classifying PDF pages for DocReader The PDF page is classified as 'digital' instead of 'scanned' because it checks for empty text instead of a blank PDF page.

    Call DocReader Local with a scanned PDF containing blank text, for example, '"\n\n\n"'.

    Notice that the page is classified as 'digital' rather than 'scanned'.

    Document Intelligence Unified Backend

    PRB2029867

    Users can configure more than 50 fields per use case, which does not match the product and pricing based limitations

    Dynamic Scheduling

    PRB2021720

    Capacity console isn't loading after changing the default date format
    1. Log in to an instance.
    2. Change the default date format from sys properties.
    3. Create a capacity assignment for any territory.
    4. Try to load the capacity console.

    Expected behavior: Events display for the territory.

    Actual behavior: No events display as demand metrics data aren't created.

    Dynamic Scheduling

    PRB2025038

    Dynamic Scheduling isn't considering recurrence if more then 1 record for same resource is present in the 'Territory resource demand' table For example, if 2 records for the same date range with da ifferent recurrence are created for same territory and demand channel, such as: May 1st to May 30th - Monday Recurrence and May 1st to May 30th - Tuesday Recurrence, then Dynamic scheduling isn't considering the Tuesday recurrence.

    Edge Encryption

    PRB1945424

    There's high memory utilization on proxy servers after the Yokohama upgrade After upgrading and running Yokohama, the memory consumption is above the limit set in wrapper.conf. The user set the memory limit for 10G in the wrapper.conf, but the edge proxy doesn't respect this setting in the build. The memory goes to the physical limit and causes the proxy server to restart.

    Email Notifications

    PRB1970107

    There's an issue with adding an email template in Zurich
    1. If no record exists, create a record for a sys_email_template for sn_customerservicecase.
    2. Navigate to CSM/FSM Configurable Workspace.
    3. Select the 'Lists' icon on the left navigation pane.
    4. Navigate to Cases > All.
    5. Open case CS0001001.
    6. Stay on the 'Comments' tab in the right-side pane.
    7. From the right navigation, select Email Templates.
    8. Apply any template.
    9. Do this repeatedly until an error displays.

    Email Notifications

    PRB2003711

    There's inconsistent behavior on bringing the /r response template in the email body
    1. Create a response template with the channel type as 'email'.
    2. Navigate to Customer Service Management/Field Service Management configurable workspace and impersonate as a frontline agent.
    3. Create a case with 'email' as the channel type.
    4. In the 'Email' section, type '/r'.
    5. Look for the created response template.

    See that the response template isn't displaying.

    Email Notifications

    PRB2006670

    Push Notifications aren't sending the badge count This issue occurs on mobile instances.
    1. Log in to a mobile instance.
    2. Fire a notification.

    Observe that the badge count isn't sent in the push payload.

    Email Notifications

    PRB2022602

    Client script include should be created to make client scripts modular and reusable In Zurich, the wiring's not implemented for mini composer in CSM when activity stream compose isn't present.
    1. Update the 'glide.email_ client.configurable _send_enabled' value to 'sn_customerservice_case'.
    2. Make sure configuration is done.
    3. Log in as a user with elevated privileges.
    4. Navigate to CSM workspace.
    5. Open a case record.
    6. Ensure activity stream isn't present.
    7. Select Compose Email to open a modeless dialog.
    8. Add [private] in the Subject field.
    9. Add 'unknown user' in the To field.
    10. Select the Send button.

    Expected behavior: The pop-up is displayed based on the configuration.

    Actual behavior: The pop-up isn't displayed when the user selects the Send button.

    Employee Relations Case Management

    PRB2009979

    Moving an RCA from the Employee Relations scope to the Evidence scope

    Error Framework

    PRB2014079

    Migrate the error framework from a scoped app to Glide universe/zboot This is a product update.

    Error Framework

    PRB2014080

    Log analysis and error refinement This is a product update.

    Error Framework

    PRB2014081

    Error framework backlog for UI Builder unit tests and QoL This is a product update.

    Event Management

    PRB1980951

    KB2738069

    When text-based grouping is turned on, tag-based grouping doesn't work consistently When text-based grouping is turned on, the related tag-based alerts aren't always grouped. This behavior isn't consistently reproducible and occurs at random. If text-based grouping is turned off, the related alerts are grouped by tags.

    Refer to the listed KB article for details.

    Event Management

    PRB1999707

    An app node crash occurs due to OutOfMemory (OOM), and GroupingDebugLogger accumulaties log messages even if logging is disabled After stimulating alerts for Metric rule/Event rule and checking the tables for node restarts and active transactions, the queue in the sys_trigger table is huge.
    1. Install the following in the instance:
      1. sn-dex-4.0.0-SNAPSHOT
      2. agent-client-collector-framework-6.0.1
      3. com.snc.samp
      4. com.sn_sam_saas_int.
    2. Load 400k agents with E2E data simulation using SIM Version: 3.2.45.
    3. Simulate alerts for Metric rule/Event rule at 300k-600k per 5 minute rate, so that it runs at 1-2k per second.
    4. Check the node restarts from the v_cluster_nodes table.
    5. Check the active transactions from the v_cluster_transaction table.

      Notice that there are slow 'Event Management – process events' jobs.

    6. Check queue in the sys_trigger table.

    Notice that there is a huge queue found in the sys_trigger table.

    Experimentation Platform

    PRB2027972

    Feature flagging under the feature preview program This is a product update.

    Explicit Roles

    PRB2011506

    The NullPointerException in ExplicitRoleCollisions .handleSysUserGrmember invalidates ATF rollback context during CreateUserStepRunner execution During the scheduled nightly ATF test execution, a null pointer exception occurs in the explicit roles collision check logic, which propagates up and invalidates the ATF rollback context. This prevents automatic rollback of test-created records (e.g. Incidents, Users, Business Services), leaving orphaned data in the environment.
    1. Activate the explicit roles plugin.
    2. Create a test user.
    3. Assign the user the snc_internal role only.
    4. Create a group with any one role.
    5. Add the test user to the created group.

    Expected behavior: There is no null pointer exception in the node log.

    Actual behavior: There is the following null pointer exception in the node log: 'Error: java.lang.NullPointerException: Cannot invoke 'com.glide.explicit_roles. MutuallyExclusive RoleCheckResult $MutualExclusion ResultType .ordinal()' because the return value of 'com.glide.explicit_roles. MutuallyExclusive RoleCheckResult .getResultType()' is null'.

    Flow Engine

    PRB1992819

    Impact handling of Scripting Governance disable switch A disable switch for the Scripting Governance feature is being backported. Any ACL or Java code dependent on the scripting role/group will break if a user flips the disable switch.
    1. Check the ACL and Java code for usage of the snc_required_ script_writer_ permission role and conditional script writer group.
    2. Ensure that the feature doesn't break when the switch is turned off/on.

    Flow Engine

    PRB2014479

    Add the roles 'taas writer' and 'taas reader' with API access only, and not with table ownership Adding the role trigger_designer directly to policy_manager was evaluated and ruled out, as the 'policy manager' role should not have access to trigger the 'designer' role.

    Form Templates

    PRB1833484

    A workspace template with a currency-type field fails to apply A workspace template fails to apply if it contains a currency-type field. However, a template created from the platform applies in workspace as expected, even with a currency-type field.

    Generative AI Controller

    PRB2026284

    Agents aren't working in Zurich nightly with the latest snapshot
    1. Navigate to agents playground.
    2. Trigger any agent.

    See that the agent is stuck in starting and no context is passed to it.

    GlideRecord

    PRB1922298

    Assessment Metrics (asmt_metric) in a question bank disappear after they're used in a published survey On an instance running on RaptorDB (postresql), the assessment metric in the question bank can disappear. The issue can't be reproduced on MariaDB.

    GlideRecord

    PRB1958518

    KB2942052

    A Null Pointer Exception is thrown if a table has a GlideElement WikiText type field and queries at startup before extension points are loaded Adding a GlideElement Wikitext type field to the user table can cause an outage. The page is blank and errors are seen. On a local instance, the instance throws servlet exceptions and doesn't start.

    Refer to the listed KB article for details.

    Global Ranking

    PRB2005044

    Remove 'defect' and 'enhancement' as options from the 'Demand' type Removing 'defect' and 'enhancement' as drop down options in the 'Demand' type from the SPM_agile_commons plugin repository that are c entries to appear in 'Demand'. Removing these files from the repository prevent these demands from being created.

    Hardware Asset Management

    PRB2023375

    Stockrooms missing a distribution channel yield empty records in the 'list' view The following exception is thrown when navigating to the 'list' view: 'com.snc.kittyscript.SecurityCallbackException: Scope objects cannot be passed as function arguments'.
    1. Log in to a Zurich instance with HAM 12.1.2 installed.
    2. Navigate to Hardware Asset Workspace > Inventory.
    3. Select the View button on the Stockrooms missing distribution channel.

    See that no records are visible.

    HR Service Delivery

    PRB2016516

    RCA is generated for 'Populate Manager Reportee Count Using Eligible Users' and 'EmployeeHubOrg ChartReporteeUtilSNC' The following two RCA's are generated for the new scripts, causing test failures: sys_script_include_ a302f8807873f250 f877079523d275e1 and sysauto_script_ 33a5e72453f7 b210f2ebffc 230e5e69d.

    Instance Clone (Family)

    PRB2023467

    Incorrect values are shown on the clone summary page

    Instance Scan

    PRB1992382

    KB2901125

    Instance scan jobs get stuck in a sleep loop for days, which causes the subsequent scans to fail Instance scan findings are written to the database asynchronously and are tracked using a global counter. If any write fails, the counter doesn't decrement properly; it goes up but never comes back down. This causes all future scans to hang indefinitely, waiting for a counter that will never reach zero. There's no timeout or logging to flag this, so scans can get stuck silently.

    Refer to the listed KB article for details.

    Instance Scan

    PRB2017072

    Instance scans detecting custom records instead of other records are modified from the baseline Instance scan checks like 'Differs from baseline' are detecting custom records created by users. As per the script used, only the records which are modified should be detected.

    Instance Scan

    PRB2022691

    Instance Scan Linter Check fails on sys_module with an error: 'Rhino error: missing ; before statement'
    1. Create an app in ServiceNow IDE.
    2. Create at least one file (e.g. business rule) that stores code in a sys_module application file.
    3. Build and deploy the app.
    4. Create an Instance Scan Linter Check.
    5. Scan the resulting app (or the individual sys_module record) using the linter check.
    6. In the scan result record on the 'Failures' related list.
    7. Validate that one or more errors are logged: 'Rhino error: missing ; before statement'.

    Integration Hub

    PRB1870601

    A PowerShell step error message is no longer populated On flow engine V1, the user ran a flow execution and can observe 'Error Code' and 'Error Message' are outputed in the 'Output Data' section when the PowerShell script returns an error. However, if users switch to flow engine V2, the same error code and error message can not be rendered into the 'Output Data' section.

    Interactive Filters

    PRB2007031

    Applying the filter in the Dashboard shows 'Some applied options are currently unavailable' when the filter options have a comma ',' in the value While trying to apply an indicator filter with the 'Filter' option in the breakdown, the messages 'Some applied options are currently unavailable' and 'Unavailable option' appear.
    1. Create a filter with a data source as an indicator.
    2. Create a breakdown on any table.
    3. Ensure the field has a comma in the field value.
    4. Add the filter to a dashboard.
    5. Apply the filter.

    Notice the message, 'Some applied options are currently unavailable.'

    Internationalization Features

    PRB1892286

    KB2277705

    A non-admin user can't change a dashboard name by specific steps when the system language is set to Japanese The dashboard name should be updated correctly and reflected in both the primary record and its translated fields, as it is in the Washington and Xanadu versions. In the Yokohama version, the update to the dashboard name fails silently when the Japanese language is enabled and the sys_translated record exists.

    Refer to the listed KB article for details.

    Issue Auto Resolution for Virtual Agent

    PRB1657388

    KB1307989

    Issue Auto Resolution (IAR) for HR isn't able to execute for users who remove HR roles from the 'admin' role due to internal data governance policies Affects users using IT and HR products on the same instance. Due to the data internal visibility/governance policies, users have removed a number of HR roles (i.e. 'sn_hr_core.admin' role) from the admin role, resulting in users in the IT business units not having access to the HR side of the platform. Removing the roles from the admin profile prevents the 'system' user from executing the AutoResolution scripts includes. The 'system' user no longer has access to the HR tables of the instance, hence it can't extract the necessary information for auto resolution ML Configuration Language solution, auto resolution context, or write to HR records.

    Refer to the listed KB article for details.

    Key Management Framework (KMF)

    PRB1964424

    WebServices Mutual Auth connections fail if the instances are in FIPS mode If an instance is using FIPS mode, REST Web Services connections fail if the authentication type is 'Mutual Auth'. The following error is thrown: org.bouncycastle.tls.TlsFatalAlert: unsupported_extension(110).
    1. Turn on FIPS mode on an instance.
    2. Set up an outbound REST call to a third-party API.
    3. Make sure the authentication type is 'Mutual Auth'.
    4. Set up a protocol profile record to associate to the REST connection.
    5. Apply the API's endpoint .bsfks keystore certificate to the Protocol Profile Keystore record.
    6. Run a test connection to the endpoint.

    See that it fails with an error: 'org.bouncycastle.tls.TlsFatalAlert: unsupported_extension(110)'.

    Knowledge Blocks

    PRB2000541

    There are formatting issues in the KB article view compared to the 'Details' tab view There are differences in the formatting of the KB article between the 'Details' tab and the 'View article' view.
    1. Open the Compliance workspace.
    2. Navigate to List modules > All Policies.
    3. Create any policy record with all the required fields completed.
    4. Switch to the 'Policy text' tab.
    5. Select Import word document.
    6. Import the word document.
    7. Select Request review.
    8. Select Request approval.
    9. Switch to the 'Approvals' tab.
    10. Approve the record.
    11. Switch back to the 'Details' tab.

      Notice that there is a KB article generated in the Published policy field.

    Notice that the formatting in the KB article 'Details' tab and the 'View article' view are different.

    Knowledge Graph (Family)

    PRB2021133

    Knowledge Graph (KG) description deactivator triggers long-running queries, causing HLL spikes Post Version Upgrade Job : KG Description Deactivator triggers Long running queries and causes HLL spike

    Knowledge Management

    PRB1976775

    A KB's article title is empty under the 'Event property values' column in the 'Article Title' report
    1. Navigate to an instance.
    2. Navigate to the User Experience Analytics dashboard.
    3. Select Employee Center in the menu.
    4. Navigate to Data Foundation > Events section.
    5. Open the 'View Knowledge Article' event.
    6. Under 'Event properties', navigate to the 'Article Title' and 'Article SysID' widgets.
    7. Observe the '...' empty value on the report chart.
    8. Export the data to Excel.

    Observe the exported report contains an empty field under the first column labeled 'Event property values'.

    Knowledge Management

    PRB2009818

    The Recall button isn't displayed for the author of the article in Service Operations Workspace The Recall button in a workspace is nested behind the Edit button, which is intentionally hidden from the author while the article is in review. However, authors are blocked from editing content that is currently under review. The Recall button only appears after selecting Edit, but since the Edit button isn't visible to the author in this state, the Recall button is unreachable.

    Knowledge Management

    PRB2010029

    Knowledge blocks aren't honoring Knowledge Center (KC) redirection properties
    1. Turn on redirection properties for KC: sn_km_center. glide.knowman. redirect.enable.
    2. Navigate to 'Knowledge Blocks' in Navigator in UI16.
    3. Select Create.

    Expected behavior: Knowledge blocks should honor KC redirection properties.

    Actual behavior: Creating or editing a from UI16 doesn't redirect to KC.

    Knowledge Management

    PRB2010576

    kb_translate page padding and alignment must be revisited There's no padding at all and the page content and buttons are near to the borders and not what users see in other workspaces. The kb_translate page should be properly padded as in other workspaces for a consistent experience.

    Knowledge Management

    PRB2014935

    KB Portal's image dimensions don't match with the Native UI The image dimensions displayed in the KB Portal don't match with the dimensions configured in the article body within the Native UI, although they should.

    Knowledge Management

    PRB2027236

    True-up for KC and NAKM, ECE, and KC in UI Builder This is a product update.

    List Administration

    PRB1970036

    List type data visualization doesn't show new lines (multi-lines) The data visualization doesn't add new lines (multi-lines) in Zurich, but it does in Yokohama.
    1. Open an incident record.
    2. Enter the following strings in the Description field:
      • 改行1
      • 改行1
      • 改行1
      • 改行1
      • 改行1
      • 改行1
    3. Create a dashboard.
    4. Add a list data visualization based on the incident table.
    5. Show the description column on the data visualization.

    Observe that the data visualization doesn't add new lines (multi-lines).

    List Administration

    PRB1989840

    There's unintended creation of temporary list copies when refreshing a default list via address bar When a user refreshes a default list by selecting the browser address bar and pressing Enter, the system creates a new temporary copy of the list and stores it under 'My Lists' > 'Opened by link'. When the page reloads, that view is opened. This happens without any explicit user action or intent to create or save a new list, and the newly created list is not shared with anyone by default. This behavior creates large volumes of unnecessary list views, leads to user confusion, and pollutes My Lists governance and storage with artifacts.
    1. Open any default list in the workspace.
    2. Select the browser address bar (don't modify the URL).
    3. Press Enter to reload/refresh the page.

      Observe that once the page reloads, it automatically navigates to My Lists > Opened by link.

    Expected Behavior: Refreshing a default list via the browser address bar doesn't create a list artifact.

    Actual Behavior: A new temporary copy of the default list is automatically created. The list appears in My Lists > Opened by link, even though the user never requested a copy. The list is not shared with anyone by default.

    List Administration

    PRB1999574

    The user has no information about who shared a list with them
    1. Open Customer Service Management or Field Service Management Configuration Workspace.
    2. Navigate to the 'List' page as an admin user.
    3. Create a few lists in the 'My Lists' tab.
    4. Share one list with another user, like Fred Luddy.
    5. Impersonate Fred Luddy.

      Observe the shared list in the 'Shared with me' section inside the 'My List' tab.

    Expected behavior: There's some info or indication on who shared the list.

    Actual behavior: The Fred Luddy user has no information regarding who shared this list.

    List Administration

    PRB1999583

    The user can't re-order the lists 'Shared with me' lists or 'Opened by Link' to keep the important lists at the top and move less important lists to the bottom Lists can't be re-ordered in the 'Shared with me' section in the 'My List' tab.
    1. Open Customer Service Management or Field Service Management Configuration Workspace.
    2. Open the 'List' page as an admin user.
    3. Create a few lists for as an admin user in the 'My Lists' tab.
    4. Share all these lists with the user, Fred Luddy.
    5. Impersonate the user, Fred Luddy.

      Notice that there is a shared list in the 'Shared with me' section inside the 'My List' tab.

    6. Attempt to reorder the lists by using the drag and drop function.

    Expected behavior: There should be a re-ordering capability to arrange the shared lists when there are many lists in 'Shared with me' section. This should also apply to the 'Opened by Link' list.

    Actual behavior: The user Fred Luddy can't reorder the lists in the 'Shared with me' section.

    List Administration

    PRB2003558

    Users are unable to select 'presentational' variables when using the list selector to build out list configurations
    1. Verify that sn-list-selector has been updated to Version 26.0.0.
    2. Create a list visualization against the incident table.
    3. Select Edit.
    4. In the configuration panel in the 'Columns and rows' section, next to 'Columns', select Add.
    5. Scroll to 'Questions' and expand it.
    6. Scroll on the list of variables and look for 'Legal Section'.

    Observe that it can't be found. Users would like to be able to choose presentational variables as well, even if they don't contain any values.

    List Administration

    PRB2009991

    'Workflow'-type fields are displaying as 'Pending - has not started' for all values This requires a single-line change that adds a defensive .clone() call to deep-copy the choice list before WorkflowIcons.process() mutates it. This prevents the shared cache from being poisoned by in-place label overwrites.
    1. Navigate to the table schema for the 'Incident' table.
    2. Create a custom field named 'Test column' with the field type set to 'Workflow'.
    3. Configure 2-3 choice options for the newly created custom field.
    4. Select 2-3 incident records and set values for the Test column field using any of the available options.
    5. Open UI Builder.
    6. Create an experience and page by using the 'List Page' template.
    7. Once the page is created, navigate to it on the instance.
    8. From the sidebar navigation, navigate to Incidents > All.
    9. Select the Personalize fields button on the list page.
    10. Add the Test column custom field to the visible columns.

      Observe that the workflow stages for the custom workflow type field appear empty.

    11. Open any incident record that has a value set for this field (can be opened in classic view as well). If the field is not visible, add it to the 'Form' view.
    12. Observe that the field displays 'Pending - has not started'. Note that even when the field value is changed via background script, it continues to display 'Pending - has not started'.

    Expected behavior: The display value should be as per available choices.

    Actual behavior: It displays 'Pending - has not started' even after changing value. 'Pending - has not started' is not even available as a choice option for a field.

    List Administration

    PRB2012758

    List fails to load due to a DataFetchingException from NowAssistSkillConfig The list page in Service Operations Workspace doesn't load; it looks like the page is processing. NAA code is called and throws an exception, which results in list load error.

    List Administration

    PRB2014997

    In Service Operations Workspace, live updates of Alert Express List displays en 'Invalid Row Data, Duplicate Row Keys' error on auto-refresh handleLiveListChange() (~line 448) dispatches LIVE_LIST_FETCH_ROW_LAYOUT_REQUESTED for every AMB event with no in-flight deduplication. When multiple AMB events arrive for the same sys_id before the first GraphQL fetch completes, findRowByFullKey() (parentChildBehaviorUtils.js:95) returns null for each event and each event triggers its own fetch. Each fetch response then adds the row via addEnteredRowToRowDefinitions() (~line 676), resulting in duplicate row keys. hasDuplicateRowKeys() (rowBehavior.js) detects duplicates and triggers the error overlay.

    List Administration

    PRB2023617

    Grouping and summarization for telemetry for Multi-Record Actions (MRA) - List AI This is a product update.

    List Administration

    PRB2023634

    Implement add/remove an AI indicator for the rows created/modified by an AI agent and clear an AI indicator when inline edits are made This is a product update.

    Live Archive

    PRB1976776

    There's an error when restoring to long table name aliased tables This happens with both chunking and hex based approaches. It happens in both related records and payload parsing. Also, the state in sys_archive_restore_request is set to 'complete' instead of 'Error' in this case.
    1. Create a long table name aliased table in sys_db_object.
    2. Add records to the table in step one.
    3. Create and run an archive rule for the table.
    4. Create a bulk restore request for the ar_ aliased table.
    5. Run a bulk restore or wait on an hourly trigger.

    Expected behavior: All records matching the restore request conditions should be restored.

    Actual behavior: The chunks error out and an error is seen in the logs.

    Live Archive

    PRB1980314

    After archiving, bulk restoring, and killing a node, checkpoint rows aren't populated in sys_archive_restore_checkpoint

    Live Archive

    PRB1982265

    There's an error in the logs after running the DMscheduler daily trigger There's an error: 'ERROR *** #808133feature= AttachmentMigration AttachmentMigrationService: Error migrating attachment sys_id: 73dec36dcc623210 f877c28b1770b27b from: ROWSTORE to: COLUMNSTORE'.
    1. Migrate ar_incident with 10k attachment records to columnstore.
    2. Trigger the 'Attachment Storage Migration' job using DMscheduler daily in sys_trigger.
    3. While the chunks are processing, shut down the app node that the job is working on.
    4. Start the appnode.

    Once job resumes, notice there's a chunk stuck in a 'processing' state and an error in the logs after running DMscheduler daily trigger.

    Live Archive

    PRB2007788

    Data Management Console isn't reporting Tier 2 data correctly Recently, data was offloaded to the new 'Columnar' solution for multiple tables to S3 storage. The Data Management Console displays a negative value, which is incorrect, and also doesn't match with the PG stats.
    1. Offload data from 'Columnar' tables.
    2. Log in to the instance to check the data for Tier 2 on Data Management Console.

    Expected behavior: 'Tier 2 Storage Used' should match the actual amount of data offloaded.

    Actual behavior: 'Tier 2 Storage Used' is negative.

    Live Archive

    PRB2010081

    Tier 2 archive plugins (com.glide.columnar.archive & com.glide.data_management. columnar_attachment) and the legacy archive plugin (com.glide.auxdb) need to be renamed The plugin ID should remain the same.
    1. Browse to the 'Plugins' page.
    2. Search for the archiving plugin shipping with Australia and the legacy plugins.

    Expected behavior: Marketing has changed the plugin names:

    • com.glide.data_ management.columnar _attachments: New Name = Live Archive Attachments
    • com.glide. columnar.archive: New name = Live Archive
    • com.glide.auxdb: New name = System Archive

    Actual behavior: The incorrect plugin names are displayed.

    Live Archive

    PRB2017269

    Archive Destroy operations against archive tables that have attachments aren't performed The 'Destroy' job deletes attachment data from sys_attachment_ doc_columnar one attachment at a time, with each attachment requiring two SQL operations. Each attachment pair takes ~2.7 seconds. The ColumnarDeleteService is cleaning up related/peripheral records (attachments, journals) but the actual archive table row deletion either happens in a separate phase, was skipped, or happened in a subsequent chunk.
    1. Set up Tier 2 Live Archive.
    2. Archive a lot of records that have attachments.
    3. Configure an archive destroy rule that deletes these archived records.

    Expected behavior: The archive destroy operation should be performed.

    Actual behavior: Archive destroy is taking 1hr 40mins to delete 2,000 records.

    Live Archive

    PRB2022367

    In AttachmentMigrationService, copy-then-delete causes silent data loss through cascade delete on sys_attachment_attribute, dp_attachment_protection_history, and sys_attachment_migration_status AttachmentMigrationService migrates attachments between the storage backends 'ROWSTORE' and 'COLUMNSTORE' by creating a new sys_attachment row with a new sys_id, and then deleting the old one. Deleting the old sys_attachment triggers reference_cascade_rule='delete' on every child table that references it, which silently destroys records that reference the old sys_id, even though a valid replacement exists. The cascade engine has no knowledge of the new sys_id, so the new sys_attachment ends up with no associated child rows. The following child tables suffer silent data loss on every migrated attachment: sys_attachment_attribute (per-attachment metadata), sys_attachment_migration_status (migration tracking history), and dp_attachment_protection_history (data-privacy / compliance audit trail).
    1. Open an instance with the columnar attachments plugin, 'com.glide.data_ management.columnar _attachments,' enabled.
    2. Create a sys_attachment row for any storage type, such as 'ROWSTORE', and note that the sys_id equals 'X'.
    3. Insert child rows referencing 'X' with the following:
      1. sys_attachment _attribute: row with the sys_attachment = X
      2. sys_attachment _migration_status: row with the attachment = X
      3. dp_attachment _protection_history: row with the attachment = X
    4. Trigger the migration via AttachmentMigration Service.migrate Attachments([X], AttachmentStorageType .ROWSTORE, AttachmentStorageType .COLUMNSTORE).
    5. Query each of the three child tables for the original sys_id 'X' after the call returns.

    Expected behavior: All three child tables still contain rows for the migrated attachment, either against the same sys_id, or under copy-then-delete which is re-pointed to the new sys_id.

    Actual behavior: All three child tables contain zero rows for the original sys_id 'X'. The new sys_attachment record, the new sys_id 'Y', exists with the migrated chunk data, but contains no rows in any of these three child tables. The data is silently lost and no error is logged. This occurs in any instance running on a build that includes AttachmentMigrationService for track, datamanagement, and downstream.

    Major Incident Management

    PRB2030990

    The Major Incident Management (MIM) plugin is installed automatically after upgrading in Australia The MIM family plugin is added as a dependency on the Service Operations Workspace MIM application. The dependency of the MIM plugin should be removed from the sn_sow_mim plugin.

    Upgrade an instance to Australia.

    Expected behavior: The MIM family plugin shouldn't be installed on the upgrade.

    Actual behavior: The MIM family plugin is installed on upgrading to Australia.

    MetricBase

    PRB2008126

    The rollup scheduling script has a race condition that allows duplicate event queuing in MetricRaptor When no classic shards are configured and the mb_shard_mapping table is either empty or has no rows with stores_classic_data = true, there is excessive logging for ClothoClientManager and ClothoRrdWriter. The error '*** ERROR *** No endpoints available' occurs for ClothoClientManager, and '*** WARNING *** No Classic Clotho Shard Configured' occurs for ClothoRrdWriter.
    1. Have an active mb_raptor_table with the rollup spec configured.
    2. Wait for the scheduled script to queue an mb_rollup event.
    3. While the event is in 'processing' state, trigger or wait for the next scheduled run.
    4. Wait for one minute interval.

    Observe that a duplicate mb_rollup event is queued because the state = 'ready' check misses the processing event.

    MID Server

    PRB1998489

    Root Cause Analysis (RCA)/Cross Scope Access changes are casuing the 'MAW' list and record declarative actions to be blocked from execution Changes made in RCA/Cross Scope Access on the platform side have impacted the declarative list and record actions for MAW from working. When attempting to execute any of these actions which call the MIDManage API, users see an error that the RCA record isn't present for this script execution, despite the Cross Scope Access record being defined.
    1. Install MID Admin Workspace on any release on a fresh instance.
    2. Try to validate MID Server.

    Notice that this action is blocked and the corresponding error banner displayed to the user.

    MID Server

    PRB2024310

    MID Admin Workspace isn't auto-installed with ITOM Infra Services Workspace app In an Australia instance, the ITOM Infra Services Workspace is installed but the MID Admin Workspace is not, though it should be.

    Mobile Platform

    PRB1984253

    When in offline mode for external uses, cost and currency display inaccurately

    Mobile Platform

    PRB1999865

    Support onSubmit UI Rule Configure and execute UI Rules at the time when the input form screen is submitted both online and offline.

    Multi-Instance Framework

    PRB2019094

    Async messages from a JavaScript layer aren't signed so they aren't validated on a receipt MIF async messages sent from the script layer aren't signed because the two argument 'MessageSender.createTrusted (scopeName, messageProducer)' factory method uses a no-op identity augmentor instead of 'EnvelopeTrustAugmenter'. However, the Hermes receiver still expects and validates ISK signatures on all incoming messages, causing a failure when attempting to decode the null Base64 signature field.

    Multimodal Service (Family Channel)

    PRB2022350

    Vision Agent MMS Glide changes This is a product update

    Multimodal Service (Family Channel)

    PRB2022351

    Implement improvements to the MMService plugin This is a product update.

    Multimodal Service (Family Channel)

    PRB2029152

    Update vision agent AIA records to consume new multimodal service-backed video Q&A subflows

    Multimodal Service (Family Channel)

    PRB2029156

    Move MMS to GA The MMS plugin name displays 'MAINT ONLY', and should be updated.

    Next Experience Unified Navigation

    PRB2022500

    If a work item is assigned to the same agent repeatedly, the desktop notification stops appearing entirely A new desktop notification should appear on every work item assignment.

    Next Experience Unified Navigation

    PRB2034454

    Record Summarization isn't using the page context In Now Assist Portal (NAP), when standing on an incident record and if the user type is 'summarize this record', NAP should pick up the incident from the page context.
    1. Open an incident on Service Workspace.
    2. Open NAP.
    3. Type 'summarize this record' in NAP.

    Expected behavior: NAP should summarize the incident the user is seeing.

    Actual behavior: NAP asks the user to enter the incident record number.

    Now Assist in AI Search

    PRB1920760

    GenAI log IDs are not returned for Now Assist Genius Results This issue occurs in Virtual Agent, portal, Now Assist Actions, Now Assist Q&A, Synthesized Response, or anywhere a Now Assist Genius Result (GR) can be returned. Feedback is not logged even though there should be a value after the user selects the Thumbs up icon or Thumbs down icon on the Genius Result (GR).
    1. Open Virtual Agent.
    2. Perform a search that returns at least one Now Assist Genius Result (GR).
    3. Select the Thumbs up icon or the Thumbs down icon on the GR.
    4. Run the background job to process queued signals.
    5. Open the sys_generative_ai_log table.
    6. Inspect the Feedback field for the transactions relevant to the Genius Result the user provided feedback on.

    Expected behavior: There should be a value such as 'Rejected' for negative feedback or 'Accepted' for positive feedback.

    Actual behavior: The feedback is not logged.

    Now Assist in Document Intelligence

    PRB2030125

    Support attachments where the file names doesn't contain '.type' at the end There's an error: '{"attachment":{},"task":{"708a54b23b 810f50141a0 e0f23e45a0b":{"error_msg":"Prediction server is not able to process the attachments: begin 0, end -1, length 9"}}}'.
    1. Have a png image file with no errors.
    2. Rename it to have a file name with '.png'.
    3. Upload it to an instance.
    4. Test the attachment summarization.

    Observe an error.

    Now Assist Panel

    PRB2025041

    A mic enabled for NAVA Premium Chat is incorrectly surfaced on Enhanced Chat
    1. Use the latest version of NAVA.
    2. Enable a mic from NAVA assistant designer.
    3. Change the experience to Enhanced Chat.

    Expected behavior: The Send button appears in the input bar.

    Actual behavior: On-Glide mic seen in input bar.

    On-Call Scheduling

    PRB2030962

    The On-Call Scheduling family plugin is installed on upgrading to Australia. The On-call plugin has been added as a dependency for the sn_sow_on_call plugin as part of core IT changes. This is causing issues for some users. On-call is automatically installed for new users via zboot. However, upgrade users need to install it manually. Due to the new dependency on the Store app, On-call is installed for some users when the commons bundle is upgraded. The dependency of the On-Call Scheduling plugin should be removed.
    1. Open any pre-Madrid instance where the On-call plugin isn't installed.
    2. Upgrade to Australia.

    Expected behavior: The On-Call Scheduling family plugin shouldn't be installed on upgrading to Australia.

    Actual behavior: The On-Call Scheduling family plugin is installed on upgrading to Australia.

    OneExtend

    PRB2025105

    Responses fix for Java flow Validate all the Java flow from NAVA, NAP and Skill Kit.

    OneExtend

    PRB2025250

    Correlation Insights skill is stuck on the progress bar when off-Glide is enabled Insights should be generated and displayed. Instead, the progress bar spins indefinitely and no generative AI logs are produced. The issue occurs because the app prepares a bulk request with three payloads and invokes it in async mode with a callback handler. When off-glide is enabled for the capability, the async callback flow ('NowAssistforSIR CorrelationInsights Callback') appears to break silently. No generative AI logs are generated, indicating the LLM call never completes or the response isn't handled correctly.

    OneExtend

    PRB2025367

    A cloning instance should preserve mosaic functionality in the target instance

    OneExtend

    PRB2025540

    Off-glide Mosaic pipeline ignores the per-request timeout and every call falls back to the platform default, regardless of caller intent or service-plan configuration All Mosaic calls fall back to the platform default; caller / control-setting / service-plan values are ignored. There's no phase-boundary timeout enforcement and requests run well past their stated SLA. DT translation always uses 0L.
    1. Enable off-Glide execution.
    2. Ensure the Mosaic endpoint is reachable.
    3. Submit an off-Glide execution request with an explicit short timeout (e.g., 5 seconds) that targets a capability with a slow model/heavy prompt so that the Mosaic call takes around 10–20 seconds.

      Observe that the request doesn't abort at 5 seconds. It runs until the platform default (around 60 seconds) or the upstream gateway times out.

    4. In the Mosaic-client logs, confirm timeoutMs=0 (or the default) on the outgoing HTTP call, regardless of the caller-supplied value.
    5. Update the sys_generative_ai control setting (Mosaic timeout) to a small value.
    6. Send a request with no explicit timeout.

      Observe that the control setting is also ignored.

    7. Update one_api_service_plan.timeout_ms for the plan backing the capability.
    8. Send a request.

      Observe that the service-plan value is not applied either.

    9. Pick a capability whose postprocessor emits a _dtRequest (DT reverse translation).
    10. Send a request with timeout=5 seconds where the primary Mosaic call returns at around 4 seconds.
    11. Confirm the subsequent DT-translation call still fires with timeoutMs=0 (platform default), so the total elapsed time exceeds 5 seconds.
    12. Repeat steps 9-11, driving the budget to exhaustion before postprocess.
    13. Confirm the DT call still fires instead of being skipped, and there is no 400001 / timeout response.
    14. Send a request via the routed-from-Mosaic > OneExtend callback path (validateOffGlideConfig) that triggers DT translation.
    15. Confirm that no timeout is honored there either.

    Expected behavior: The caller-supplied timeout is the strongest signal and is honored by every Mosaic HTTP call in the pipeline (preprocess gate, primary execute, postprocess DT translation). In its absence, the control-setting, service-plan, and 60 second default apply (in that order). Exhausting the budget at any phase returns a timeout response (status=error, errorCode=400001). Override values are persisted to one_api_service_ plan.timeout_ms and cascade.

    Actual behavior: All Mosaic calls fall back to the platform default; caller / control-setting / service-plan values are ignored. There's no phase-boundary timeout enforcement and requests run well past their stated SLA. DT translation always uses 0L.

    OneExtend

    PRB2025975

    Do not log prompts or responses to Splunk for in-country routing users Prompt and response information is removed from logs for users with in-country routing SKU.

    OneExtend

    PRB2026081

    There's a 100501 error with an async call

    OneExtend

    PRB2028533

    Java scriptable methods aren't working in some instance nodes

    Performance Analytics Dashboards

    PRB1993682

    'This report has been migrated to a visualization' banner is shown when the unified property is false The banner message appears: 'This report has been migrated to a visualization. Migrated visualization is here.' The link redirects to a random visualization.
    1. Open an instance with sys_ui_context menus.
    2. Navigate to Migration Center (/now/platform-analytics-workspace/migration-center).
    3. Perform a bulk migration.
    4. Activate all content.
    5. Navigate to System Properties.
    6. Set the property 'com.glide.par. unified_analytics .enabled' to false.
    7. Navigate to any record list (e.g., /incident_list.do).
    8. Create a bar or pie chart report from any column to open the Report Designer.

    Expected behavior: The banner isn't shown, as no report was migrated.

    Actual behavior: The banner message appears: 'This report has been migrated to a visualization. Migrated visualization is here.' The link redirects to a random visualization.

    Performance Analytics Dashboards

    PRB2005720

    The CoreUI dashboard selector triggers excessive ACL checks The ACL is evaluated with a different access path and context for each check, so it is re‑executed repeatedly. When there are thousands of dashboards, this results in excessive ACL evaluations and causes the instance to hang.
    1. Open any CoreUI dashboard.
    2. Open the dashboard selector.
    3. Select All Dashboards.

    Expected behavior: The dashboard selector avoids excessive ACL checks and runs one check per dashboard.

    Actual behavior: It triggers permission evaluation for every dashboard the user has access to, including an ACL check per dashboard and multiple field‑level ACL checks.

    Performance Analytics Dashboards

    PRB2013831

    KB2959423

    There's a dashboard layout issue after upgrading an instance to Australia After an Australia upgrade, multiple users are reporting issues with alignments of reports in dashboards. While reports aren't missing, they are displayed vertically in dashboards. The issue is reproducible with core legacy dashboards.

    Refer to the listed KB article for details.

    Performance Analytics

    PRB1990900

    The system property com.snc.pa.dm.enable.mlb is set to true on non-Raptor DB Pro instances Users can install a plugin with Raptor DB (pro or standard). With a schedule job, they can disable the feature by disabling the global property com.snc.pa.dm.enable.mlb.
    1. Open an instance with raptor standard.
    2. Validate the system property: com.snc.pa. dm.enable.mlb.

    Expected behavior: The property is set to false. The user shouldn't be able to control it and set its values.

    Actual behavior: The property is set to true. The user can control it and set its values.

    Performance Analytics

    PRB1995131

    There are Query Builder (QB) and Workspace UI error popup clips in the surrounding UI if a query fails for CMDB NLQ Turning off the NLQ Prediction server results in an error message in both QB and in the CMDB Workspace, and the UI doesn't render as expected in CMDB Workspace.
    1. Turn off the NLQ Prediction server from sys_properties by deleting the URL value 'glide.prediction _service.url'.
    2. Navigate to Query Builder.
    3. Create an NLQ query, which adds nodes to the canvas.

      Notice that this results in the 'Oops...' error.

    4. Navigate to CMDB Workspace.
    5. Create an NLQ query, which should open a new tab.

    Notice that this results in the 'Oops...' error, and the UI is incorrect.

    Performance Analytics

    PRB1999245

    Discrepancies with Core UI on change and change percentage The change and change percentage may be displayed on the widget but not on the data visualization.
    1. Create an indicator (an indicator source isn't necessary).
    2. Enable Render continuous lines under the 'Other' tab.
    3. Open the scoresheet to edit the scores of the above indicator:
      1. Feb 28th: 200
      2. Jan 31st: 100
    4. Create a single score visualization using this indicator.
    5. Enable change and change percentage.

      Notice that the change and change percentage aren't displayed.

    6. Disable the system property 'com.glide.par .unified_analytics. enabled'.
    7. Create a single score PA widget on the above indicator, with Visualization: Latest Score.
    8. Leave all other fields as the default value.
    9. Add the above widget to a Core UI dashboard.

    Notice that the widget displays the change (100) and change percentage (100%).

    Performance Analytics

    PRB2009359

    Turn off/delete the 'Populate Indicator Source Row Count' job, as the guardrails are deprecated in Australia

    Performance Analytics

    PRB2014881

    KB2977667

    Core UI widget date settings aren't retained on dashboards

    Refer to the listed KB article for details.

    Platform Analytics Component API

    PRB2016214

    oob-pa-cxo-apps are missing from the Glide distribution due to an app packaging issue These apps have an incorrect scope and aren't included in the ZIP or DIST packaging. As a result, users aren't able to auto-upgrade to the latest versions of these apps through the monthly release pipeline.

    Platform Analytics Dashboard API

    PRB1988004

    Platform analytics displays an incorrect view for the most recently viewed dashboards The Recent Dashboards list includes dashboards that were not previously accessed. While actively using the instance, the list appears to update as the user opens certain dashboards. However, after logging out and logging back in, the Recent Dashboards list resets and once again displays dashboards that haven't been used.
    1. Open a base instance.
    2. Navigate to All > Platform Analytics > Library > Dashboards.
    3. Open any dashboard.
    4. Select the arrow to view the 'Recent Dashboards' list.

      If this is the first login of the day, observe that the list contains dashboards that may not have been previously accessed.

    5. Switch between several dashboards.

      Observe that the 'Recent Dashboards' list updates to reflect the dashboards opened during the session.

    6. Log out of the instance.
    7. Log back in using a new browser tab.

    Observe that the 'Recent Dashboards' list resets and displays a different, seemingly random list of dashboards instead of the ones previously accessed.

    Platform Analytics Dashboard API

    PRB1992984

    Can't share a dashboard to all internal users (users with at least one role) When the itil user opens the dashboard, the dashboard isn't found.
    1. Create a dashboard.
    2. Share the dashboard to the role 'dashboard_user' with view mode.
    3. Impersonate an itil user.
    4. Open the dashboard.

    Expected behavior: The dashboard is visible to the itil user.

    Actual behavior: The dashboard isn't found.

    Platform Analytics Dashboard API

    PRB1998865

    Sys ID is automatically populated for the value in sys_translated This happens when the user changes the value of a tab when using a non-English language.
    1. Navigate to Dashboards.
    2. Create a dashboard.
    3. Add a tab.
    4. Switch to a non-English language.
    5. Change the value of the tab.
    6. Save.

    Notice that the value in sys_translated contains sys ID.

    Platform Analytics Dashboard API

    PRB2002552

    Due to VCS update set collision, a dashboard save fails with a generic error: 'Your dashboard could not be saved' This problem only happens in scopes with VCS-controlled apps, no matter where users create the dashboard. The important factor is whether the scope has a repo configuration set.

    Platform Analytics Dashboard API

    PRB2005188

    Override the scope of any par_dashboard_* record with the scope received from the dashboard

    Platform Analytics Dashboard API

    PRB2006097

    Allow the user to turn on/off the AI summary generation in a dashboard
    1. Log in to an instance.
    2. Open any dashboard.

      The Now Assist context menu (NACM) component appears above the grid.

    3. Open the 'Settings' panel.
    4. Toggle off the AI summary generation.
    5. Save and reload the dashboard.

    Expected behavior: The NACM shouldn't appear.

    Actual behavior: The NACM appears again.

    Platform Analytics Dashboard API

    PRB2007784

    DomainService uses DomainSupport.hasAccess instead of DomainHierarchy for validation When the user tries to access the dashboard, an error appears: 'Error while getting domain for dashboard'.

    Platform Analytics Dashboard API

    PRB2014426

    A duplicated dashboard doesn't persist an AI summary generation value
    1. Log in to an instance.
    2. Open any Platform Analytics dashboard.
    3. Verify the dashboard summary component is visible on top.
    4. Verify the 'Setting' panel AI summary generation toggle is on.
    5. Duplicate the dashboard.

    Expected behavior: The dashboard summary should be visible in the duplicated dashboard.

    Actual behavior: The dashboard summary isn't visible in the duplicated dashboard.

    Platform Analytics Dashboard API

    PRB2025067

    The sys_translated record for par_dashboard_tab is overwritten This can cause translations to be lost.
    1. In English, create a sys_translated record as follows:
      1. Label: あいう
      2. Table: par_dashboard_tab
      3. Element: name
      4. Language: ja
      5. Value: TabName
    2. Create a PAE Dashboard.
    3. Add a tab with the same name as the sys_translated value (TabName).
    4. Save the dashboard.
    5. Create another dashboard.
    6. Add a tab with the same name as the sys_translated value again.
    7. Save the dashboard.
    8. Switch the language to Japanese.
    9. Return to one of the dashboards.
    10. Rename the tab あいう to さしす.
    11. Check the other dashboard tab.

    Observe that the translation is lost because the sys_translated record is overwritten.

    Platform Analytics Filters

    PRB2013316

    Addtional controls for single and multi select For both radio buttons and checkboxes, there should be a way to clear the selection instead of using the 'Clear all filters' capability on the dashboard level.

    Platform Analytics Filters

    PRB2014365

    JavaScript-based sys_choice labels are rendered as raw text in dashboard filters A sys_choice record uses JavaScript to dynamically populate the country label when the value is null. However, when this field is used in Platform Analytics dashboards (via indicator breakdown with sys_choice as the facts table), the JavaScript isn't evaluated and is instead displayed as raw text in the filter.

    Platform Analytics Migration API

    PRB1989820

    Users with the itil role are shown reports in read-only mode If a user has the itil role, there should be no read-only mode. It should display in 'Edit' mode.

    Platform Analytics Migration API

    PRB1998821

    The Platform Analytics Migration Center summary window isn't counting all domain dashboards when doing migration in the global domain

    Platform Analytics Migration API

    PRB2003834

    AppTier CPU increases by 4 points (~18%) when background jobs are turned on AppTier CPU increased in Australia compared to the Zurich baseline when background jobs are turned on during loadsim performance testing. The primary driver is the 'events_process_0' background job, which regressed +254% in average execution time. The 'Script Action: Refresh ready_to_migrate after XML load' runs every time there is an XML load on tables pa_m2m_ dashboard_tabs, pa_tabs, sys_portal, and sys_portal_preferences. The event action runs a script that looks at all dashboards' related artifacts, makes an assessment, and fills out the 'ready_to_migrate' column on each dashboard. This action is unnecessarily long-running because it attempts to update all dashboards, most of which aren't needed.

    Platform Analytics Migration API

    PRB2010427

    Turn off auto-conversion of homepages to CoreUI dashboards after upgrades 1000 homepages are migrated every day, and it triggers a business rule that migrates CoreUI automatically.

    Platform Analytics Migration API

    PRB2022823

    Allow users to configure the redirection of Core UI Performance Analytics widgets to the Analytics Hub instead of to 'KPI details' Users that activated Next Experience after migrating or upgrading to Australia will be redirected to 'KPI details' when selecting a Performance Analytics widget, even if they keep using Core UI dashboards. This issue occurs because the unified_analytics property forces the re-direction to 'KPI details'.

    Playbook Experience

    PRB2007586

    KB2994368

    Declarative Action marks playbook activity as complete despite throwing an error from the UI action When a custom declarative action is configured with the action model set to 'Playbook Card' in order to display a button on a playbook activity, the expected behavior after displaying an error is as follows: if the UI action invoked by the declarative action displayed an error message, the error was displayed to the user, and the underlying activity was not marked as complete. This allowed the user to address the issue before proceeding. As of the Zurich release, this behavior has changed. When the UI action returns an error message, the error is displayed to the user; however, the activity is also marked as complete. This represents a change in the expected workflow, as the activity now progresses regardless of whether the error condition has been resolved.

    Refer to the listed KB article for details.

    Playbooks (Family Channel)

    PRB2012190

    When any one pill value is null, it returns null for the value of the whole input field This happens for any multi pill-text inputs.
    1. Create action1, which takes in 1 input and 1 output of type 'String'.
    2. Create action2, which has 3 inputs of type 'String' and can be used as dynamic input action.
    3. Create a new subflow1, which has 3 inputs.
    4. Make 1 input a dynamic input.
    5. Assign the previously created action as the dynamic input action.
    6. Publish both of them.
    7. Create a playbook.
    8. Add a stage.
    9. In activity picker, enable 'Include all automation assets'.
    10. Select action1 and subflow1.
    11. Set the dynamic input to output of action1 and the other 2 dynamic inputs with some static value.
    12. Leave the value of that pill empty.

    Expected behavior: The dynamic input value returns for the other 2 dynamic inputs set.

    Actual behavior: The whole dynamic input value is set to empty.

    Playbooks (Family Channel)

    PRB2021433

    Dot-walkers aren't working on the 'Recommended actions' table for playbook inputs
    1. Provision an instance with the 'Customer Service' plugin installed.
    2. Navigate to All > Recommended Actions > Contexts.
    3. Open any existing context.
    4. Under the 'Rules' related list, create a rule with the Name and Condition fields filled out.
    5. Under the 'Recommended actions' related list, select New with the action type as 'Playbook'.
    6. Set action as any playbook with inputs and save the record.

    Expected behavior: The playbook inputs dotwalker should have content inside, and it's the case table meta fields.

    Actual behavior: The dotwalker opens to have empty content.

    Playbooks (Family Channel)

    PRB2023731

    Child agent changes in playbook snapshot for hybrid agent configuration This is a product update.

    Process Mining Workspace

    PRB1972729

    On the 'Opportunity details' page, when applying views on the process map, the progress tracker isn't displayed and the user has to hard refresh the page to apply views
    1. Mine a project with findings with more than 1 activity definition.
    2. From the S&I page, select any of the rule based improvement opportunities to open the 'Opportunity details' page.
    3. On the map, select the gear icon.
    4. Select a view and apply.

    See that the progress tracker isn't updating and the user has to hard refresh the page to apply the view. The 'Scheduled task completed' alert is displayed but the scheduled task isn't displayed in the 'Scheduled tasks' panel of the page.

    Process Mining Workspace

    PRB1980574

    The Process Mining app should be free on the store Process Mining is shown as a licensed app on the store. However, it's auto-installed on many instances, which causes confusion when users aren't able to upgrade.

    Scenario 1:

    1. Navigate to the store.
    2. Search for the Process Mining app.
    3. Check the pricing.

    Scenario 2:

    1. Navigate to the plugin list.
    2. Search for the Process Mining (sn_po) app.
    3. Make sure there are some app updates available.

    Expected behavior: Users can update the app to the latest version.

    Actual behavior: Users get a license error, so they can't proceed with the app update.

    Process Mining Workspace

    PRB1984137

    The 'Project' card gives an incorrect average duration

    Mine a playbook project.

    Observe the average duration on the project card and the average duration in the project itself. Notice that they are not the same. They should match.

    Process Mining Workspace

    PRB1990953

    Change the default number of records per cluster in a request to '50' Currently, it sends 200 records per cluster to create the intent and activities. Since there are 5 clusters in each request, it takes more processing time. By reducing the number to 50, the request should be processed in about 10 minutes.

    Process Mining Workspace

    PRB1994902

    When clustering on intermodal arcs, 'show records' redirects to a child table with 'No records to display'
    1. Mine a MDM project on incident and Task_SLA.
    2. Open Analyst Workbench.
    3. Select any intermodal arc.
    4. Once it's completed, select View result.
    5. Select Show records.

    Expected behavior: The user should be shown the incidents belonging to the cluster.

    Actual behavior: Observe that the user is redirected to the 'Task SLA' list page with a 'No records to display' message.

    Process Mining Workspace

    PRB2003893

    Duplicate results display when 'Intent and activity analysis' is applied on a filtered model
    1. Initiate 'Intent and activity analysis' on any node.
    2. Apply breakdowns that should have a WIP node.
    3. Select the WIP node.
    4. Observe the results already generated on WIP node and select View.

    Expected behavior: The 'View results' card shouldn't be displayed on a breakdown applied model. It's a new task altogether.

    Actual behavior: It triggers and 'Intent and activity analysis' and generates the duplicate results.

    Process Mining Workspace

    PRB2005530

    Users can't submit an automated finding def when the left navigation search panel is opened
    1. Log in to an instance.
    2. Keep the left navigation panel open.
    3. Try adding a new automated finding def.

    Observe that the buttons are not visible/accessible.

    Process Mining Workspace

    PRB2008088

    Project setup data fetch fails when a user with no role opens the shared project configuration
    1. Share a project with a user that has 0 roles.
    2. Open a shared project configuration as the shared user.

    Notice that data on project setup fails to load.

    Process Mining Workspace

    PRB2011383

    Backport the Appsee event

    Project Management

    PRB1980002

    There's an report_view ACL error for a few widgets

    Open Execution Dashboard > Data Quality tab in Strategic Planning workspace.

    Observe a report_view ACL error for the 'No Planned Cost' and 'No Planned benefit' widgets.

    Project Management

    PRB2009176

    Opening the Project Status Report in the Project Workspace triggers an update to the Overall Health field on the corresponding project record Opening the Project Status Report within the Project Workspace updates the Overall Health field on the corresponding project record to match the value from the status report.
    1. Open a project in the Project Workspace (PW).
    2. Navigate to the Status Report tab.
    3. Create a status report.
    4. Navigate to the Details tab.
    5. Locate the Status field.
    6. Ensure the Status field is different from the Overall Health field in the status report. If both values are the same, manually update the Status field on the project.
    7. Open the 'Status Report' tab from the left panel.
    8. Navigate back to the Details tab.

    Notice that the Status field is automatically reverted to match the Overall Health value from the status report.

    Project Management

    PRB2021806

    Add a 'No status' option to the Project status field The Project status field (pm_project.status) currently doesn't include a 'No status' option, which prevents projects from having an unset/neutral status state. This causes ambiguity in reporting and makes it difficult to distinguish between projects that have not yet been assigned a status versus those intentionally marked as 'On Track' or 'At Risk'. A 'No status' option should be added to the Status field choice list. This ensures that status transitions — including from an unset state to a defined status — can be accurately captured and reflected in usage analytics.
    1. Navigate to Project Management > Projects > All Projects.
    2. Open any active project.
    3. Select the Status field.

    See that a 'No status' option should be available.

    Record Hierarchy

    PRB2013585

    Reconciliation of record hierarchy with missing path field skipped If the user deletes the rh.hierarchy.create event, there is no 'Reconcile Hierarchy' link under Related Links. If the user executes SNC.RecordHierarchyAPI.get().reconcilePaths(sysId), no event is posted to resume creation of the hierarchy.
    1. Create a sys_record_hierarchy.
    2. Immediately delete the associated rh.hierarchy.create event that's generated in sysevent.

      Observe that the sys_record_hierarchy is in a PENDING_CREATE state with no event to progress it to the next step.

    3. Visit the sys_record_hierarchy record.

      Notice that there is no 'Reconcile Hierarchy' link under 'Related Links'.

    4. Copy the sysId of the sys_record_hierarchy record.
    5. Navigate to Scripts - background.
    6. Execute SNC.RecordHierarchy API.get(). reconcilePaths(sysId).

    Observe that nothing happens. No event is posted to resume creation of the hierarchy.

    Record Hierarchy

    PRB2014979

    Allow RecordHierarchies to always be usable optionally unless it is disabled The current behavior shows that after a record hierarchy is defined, any query operations that use the hierarchy will explicitly return 'false' until every record in the hierarchy has been assigned a path. After paths have been assigned, the hierarchy is said to be 'usable' as its fully initialized and ready for queries. A GP was added to optionally allow the hierarchy to be usable while records are being assigned paths. The results for queries may be incomplete or partially stale depending on how long the initialization takes place, but should otherwise be accurate. Users are beginning to use IN_HIERARCHY conditions for all sorts of features ranging in criticality, up to and including ACLs. If the record hierarchy runs into some sort of issue, such as it can render the record hierarchy unusable and all queries would begin to fail. However, the paths assigned to all records are still valid as long as changes are minimal, and can continue to return mostly accurate results while any issues with the record hierarchy feature are addressed. This fix is to address usability; as long as the record hierarchy isn't explicitly deactivated, it can be made 'usable' and queries will return results based on whatever paths may be assigned at the time.

    Record Watcher

    PRB2016869

    IndirectRecordCollector. setPreviousValueFrom PreviousRecord throws an error on a null ElementDescriptor in a dotwalked path, aborting Record Watcher enqueue and stalling flows When a sys_rw_indirect_query is configured with a dotwalked condition path that contains a field segment which does not exist on the traversed table (returns null from getElement()), IndirectRecordCollector. setPreviousValueFrom PreviousRecord at line 304 calls fieldEd.getReference() on a null ElementDescriptor and throws an error. This exception propagates up through RecordWatcherService.enqueue, aborting the entire enqueue and silently preventing all flow responders from executing for that record update. Flows waiting on a catalog task or incident completion stall permanently — the sys_flow_rw_action record is created but never processed, and DeferredResponderHandler does not recover this class of failure.
    1. Create a sys_rw_indirect_query on the task table (or any table) with a dot-walked condition path that traverses a field not present on all subtype records.
    2. Trigger a record update (GlideRecord.update()) on a record of that table.

    Observe in the transaction log: 'RecordWatcherService SEVERE *** ERROR *** record-watcher: Caught error attempting to enqueue change [table.sys_id] followed by java.lang. NullPointerException: Cannot invoke "com.glide.db.ElementDescriptor.getReference()" because "fieldEd" is null at IndirectRecordCollector. setPreviousValue FromPreviousRecord (IndirectRecordCollector.java:304). Observe that any flow responder waiting on that table/record never executes — sys_flow_rw_action record is created but state never advances.

    ReleaseOps - Family

    PRB1966100

    KB2733370

    Deployment Analyzer forms are broken Deployment Analyzer forms are empty, breaking reports. Users are unable to fix it because when they go to form layout, no fields are listed.

    Refer to the listed KB article for details.

    ReleaseOps - Family

    PRB2009639

    Instance scan failure doesn't return the correct message The scan failure doesn't mention a reason for the failure in the work notes.
    1. Open a Zurich instance.
    2. In development, start a full instance scan.
    3. In production, mark a DR as ready for assessment.

    Expected behavior: The scan failure shows the reason for the failure in the work notes.

    Actual behavior: The scan failure doesn't mention a reason in the work notes.

    Resource Management

    PRB2003945

    Cost plan breakdowns are duplicated When the user changes the start date and end date from a resource plan, the business rule (BR) UpdateCostPlanAssociatedToResourcePlan launches an event. The BR 'Recreate Requested Allocations' is also launched, updating the resource plan again and changing the planned cost. In summary, when the user updates the dates, the system updates the resource plan twice, one time for the dates and another for the planned cost, practically at the same time. Both changes trigger the BR UpdateCostPlanAssociatedToResourcePlan and two events are created. Since there are two events in the system, they will try to perform the same action, and this could lead to problem concurrency. The two events are processed at the same time and the cost plan breakdowns are created twice.
    1. Navigate to pm_project.list.
    2. Open the project where the duplicated cost plan breakdowns were created.

    Resource Management

    PRB2020809

    Updating dates in the assignment should update the resource availability Dependent choice config should also be supported in the project workspace bottom grid.
    1. Open the project workspace.
    2. Navigate to the project.
    3. Create an unassigned assignment from the bottom grid.
    4. Check any resource.

      Notice its availability.

    5. Update the assignment dates.
    6. Check the resource availability again.

      Observe that it's still the same, even though the availability should be updated as soon as the dates are updated.

    7. Create any field on the resource assignment table which is dependent on any other Reference field.

    Observe that the dependent config isn't supported in bottom grid choices. It should be supported.

    Resource Management

    PRB2024520

    Fetching choices with their dependent field values to prepare criteria The created field doesn't show the choices as per the dependent config defined.
    1. Create any field on the resource assignment table which is dependent on any other reference field.
    2. Add that field in the resource assignment bottom grid in PWS.
    3. Open the project workspace.
    4. Navigate to the project.
    5. Create an unassigned assignment from the bottom grid.

    Observe that the created field doesn't show the choices as per the dependent config defined.

    Restricted Caller Access (RCA)

    PRB2029429

    There's a Zboot error due to a syntax error There's an error: 'Error : *** ERROR *** invalid return (refname; line 7)'.

    Security Incident Response Explorer

    PRB2013795

    The sub-project oob-secops-npm-apps in oob-apps isn't picked up in a Glide build The apps are missing in Glide's distribution.

    Seismic Framework

    PRB1972265

    Ancestor path retains the parent element using hard references and can make small memory leaks larger, depending on retention In some cases, the retainer is the variable ANCESTOR_PATH, as it holds on to hard references to the ancestor elements. Since elements in the ancestor path are retained, it may make a small leak larger if the elements themselves are large in nature (lists, forms, client state data brokers, etc.).

    Server-side scripts

    PRB2022176

    The script name should be logged when a page title is unavailable in the 'Guarded Scripts' list entry The page title can be empty in some cases, such as a scheduled job and probably more. It should become the script name if there isn't a page name that makes sense.

    Server-side scripts

    PRB2022324

    Logging for all sandbox scripts is broken

    Execute a script in the sandbox.

    See that it should be logged, but isn't.

    Service Catalog Portal Widgets

    PRB1966196

    There's an issue with 'Also Request for' Duplicate requested items (RITM) are generated when the same user is selected in both the Requested For and Also Request For fields. When the Requested For user is selected first, it automatically removes that user from the Also Request For list, preventing duplication. However, when a user is selected first in Also Request For and then again in Requested For, the platform allows the same user to be selected in both fields. This results in multiple RITMs being generated for the same user.
    1. Log in to an instance.
    2. Navigate to the Service Catalog.
    3. Open a catalog item.
    4. On the catalog item form, ensure that the Requested For field is empty.
    5. Select the Also Request For (multi-user) icon or selector and select a user (e.g., User A).
    6. After selecting the user in Also Request For, attempt to select the same user in the Requested For field.
    7. Fill in all mandatory fields.
    8. Submit the request.
    9. Open the associated REQ record and review the generated RITMs.

    Actual behavior: Duplicate RITMs are created for the same user.

    Expected behavior: The system should prevent selecting the same user in both fields.

    Service Catalog

    PRB2014228

    Update the copy in the alert banner Catalog item forms should be automatically pre-filled using the context from the conversation. The user shouldn't have to to re-enter information they've already shared in the chat.

    Service Catalog

    PRB2020118

    Ensure that a search term is a minimum of 3 words before triggering the slot fill

    Service Mapping

    PRB1998724

    'Create Layer 2' connections causes Out of Memory (OOM) errors if the device has many router interfaces The creation of 'Layer 2 Connections ' can cause excessive memory and multi-node events.
    1. Create server with 30,000 router interfaces.
    2. Run the script in background scripts.

    Notice that all the records will be used for calculation.

    Service Mapping

    PRB2006053

    There's a missing conditional_table_ query_range ACL for the cmdb_ci_service_discovered in the plugin com.snc.cmdb.it_service Calls can fail at runtime, causing range query operations to be denied.

    ServiceNow SDK (Glide)

    PRB2016794

    Skip delete issue for 'Coalsce' tables When a Fluent app defines a role, the SDK generates a new sys_id. The existing ScopeConflictDetector keys off sys_update_name (which encodes the sys_id), and finds nothing in sys_metadata, so no conflict is flagged. The installer then coalesces onto the real global admin role by matching the Name field and silently overwrites its sys_scope, stealing a system-owned record into the app's scope.
    1. Navigate to IDE.
    2. Create a fscoped Fluent app.
    3. Create a role with the name as 'admin'.
    4. Build and install.

    Expected behavior: The Global role shouldn't be overridden.

    Actual behavior: The Global role is overridden.

    ServiceNow SDK (Glide)

    PRB2021468

    Dictionary updates aren't propagated when installed via FluentXMLUploader When the user deploys changes, the dictionary updates get skipped.
    1. Create a fluent configuration project.
    2. Update the table column maxLength value on the instance in the UI.
    3. Update it again in the fluent configuration project.
    4. Deploy the changes.

    Expected behavior: The maxLength of the column is updated.

    Actual behavior: The dictionary updates get skipped.

    Service Operations Workspace for Change Management

    PRB1921763

    A reference qual isn't working for a dependency field on the Service Operations Workspace (SOW) 'Overview' page A dependency field on the SOW 'Overview' page isn't working, as the 'Assigned to' field won't only return the available users from the assignment group value, but rather the whole itil user list.
    1. Navigate to the 'Change Models' module.
    2. Open the 'Normal' change model.
    3. Set the assignment group to 'Application Development' in the Record preset field.
    4. Save.
    5. Navigate to the 'Change Request' form in Core UI.
    6. Switch to the 'SOW-Overview-Change' form view.
    7. Right-click the form header.
    8. Configure > Form Layout.
    9. Modify the 'Summary' form section.
    10. Add Assignment group and Assigned to fields.
    11. Save.
    12. Navigate to Service Operations Workspace > Changes list > New > Normal card > Continue.
    13. On the 'Change' form, the Application Development is pre-populated. Search the Assigned to field for a list of available users.

    Expected behavior: See only users in the 'Application Development' group.

    Actual behavior: More users are shown that aren't in the 'Application Development' group.

    Service Operations Workspace for Change Management

    PRB1977258

    In Service Operations Workspace (SOW), there's a JavaScript (JS) error 'Assess risk', and the modal doesn't open
    1. Provision an instance with the Change Risk Assessment v2 plugin installed.
    2. Navigate to a change request (normal or emergency) in SOW.
    3. Select the 'Risk assessment' related link.
    4. Complete the assessment.
    5. Submit from the 'Overview' page.
    6. After it reloads, on the right-hand side (record information), there should be card titled 'Risk'.
    7. Select the 3 dots to open a contextual menu.
    8. Select Assess risk.

    This should open a modal with the assessment and its answers to allow changes, but nothing happens. Also, there's a JS error in the browser's console.

    Service Operations Workspace for Change Management

    PRB1981820

    KB2755016

    Service Operations Workspace action bar buttons aren't displayed even if 'Display action' is set to true for a change state

    Refer to the listed KB article for details.

    Service Operations Workspace for Change Management

    PRB1983773

    Overview tab sections are refreshed on an update When working in the Service Operations Workspace (SOW) change request overview, the sections are refreshed whenever any field in the 'Scope and Impact/Schedule/Summary' section is updated. This problem occurs only when the fields in the 'Assignment' section, specifically 'Assignment group' or 'Assigned to', are filled in. If these fields are left blank, the issue doesn't occur.
    1. Open or create a change request in SOW.
    2. Verify that the Assignment Group field is updated.
    3. In the 'Overview' tab, update a field in the 'Scope and Impact' section and move the control outside the field.

    See that the 'Overview' section begins to refresh, which shouldn't occur. This same issue arises when updating fields in other sections.

    Service Operations Workspace for Change Management

    PRB1987932

    KB2807996

    In 'Change Management' in Service Operations Workspace (SOW), the Assess Risk button isn't working When a user attempts to complete a risk assessment for a change request in SOW, the modal appears briefly and then immediately closes.

    Refer to the listed KB article for details.

    Service Operations Workspace for On-Call Scheduling

    PRB1993717

    On Service Operations Workspace (SOW), there's no place to set the rotation start time for the roster When users create the shifts on SOW, the rotation is automatically happening at midnight.
    1. Navigate to SOW.
    2. Navigate to schedules.
    3. Open one of the groups.
    4. Open a shift on the side panel.
    5. Navigate to the 'Members' tab.

    See no place to set the rotation start time.

    Service Operations Workspace

    PRB1982622

    The declarative action 'Copy Link' introduced in Service Operations Workspace (SOW) throws an error: 'Declarative Action scripted client condition expression evaluation failed' The declarative action 'Copy URL' was updated to include values in the scripted client condition in the latest upgrade of SOW. The scripted client condition was empty earlier. While this declarative action is in the SOW application scope, 'Enable for all Experience' is checked, so it's rendered for Project Workspace/other configurable workspaces as well. The error is thrown because it can't be evaluated for Project Workspace.

    Service Operations Workspace

    PRB2013463

    Customer Service Management workspace experience is not opening in UI Builder
    1. Navigate to UI Builder.
    2. Navigate to Customer Service Management workspace experience.

    Observe that it's opening with a 500 internal server error.

    Service Portal

    PRB1981788

    A non-admin user can't view the notification on a portal and are getting the recordUpdateCount

    Log in to a portal with some non-admin user.

    Expected behavior: A notification shall appear for the non-admin user.

    Actual behavior: Check for the notification and see that no notification is visible.

    Service Portal

    PRB1999839

    KB2983856

    When Multi-factor Authentication (MFA) and Password Needs Reset is true, the password reset workflow refreshes after selecting 'Submit' on the initial login and redirects to the backend Platform UI When MFA is configured on an instance and Password Needs Reset is set to true on a vendor contact record, they are presented with a screen to change their password on initial login. After changing the password on the initial screen and clicking submit, the page refreshes back to the same password reset screen. If they perform the same steps again and click submit, they are finally redirected but the redirect is incorrect and redirects the user to the backend UI.

    Refer to the listed KB article for details.

    Service Portal

    PRB2013342

    KB2974430

    In Australia, the Mission Control (/mc) portal fails to load the Bootstrap CSS (sp-bootstrap-rem.scss), while the same configuration works correctly in Zurich In Australia, the Mission Control (/mc) portal no longer auto-loads the Bootstrap CSS (sp-bootstrap-rem.scss), resulting in whole portal not loading correctly. The same portal, theme, and configuration work correctly on the Zurich instance, indicating a release-specific behavior change.

    Refer to the listed KB article for details.

    Service Portal

    PRB2014571

    Alignment of the Now Assist search results gets overflow This happens on the portal while loading on browser resolution size 360 x 640.
    1. Make sure the Now Assist Genius Result (GR) is enabled on the portal.
    2. Navigate to a base instance.
    3. Change the session language to Deutsch.
    4. Navigate to the /esc portal.
    5. Open the developer tool of the browser.
    6. Set the resolution as 360 x 640.
    7. Search for any keyword (for example, people manager).

    Observe that the filter text 'Am relevantesten' gets overflow.

    Service Portal

    PRB2020265

    The 'Homepage Search' section isn't available at higher zoom levels
    1. Open any instance in a Chrome browser.
    2. Append the url using /sp to open Service Portal.
    3. On the homepage, notice the 'How can we help? text search box.
    4. Open inspect.
    5. Expand the three dots menu to select the first option of 'Dock side', so that the DevTools window opens in a new tab.
    6. Change the page width to 1280px by dragging the edge of the browser window.
    7. Select the browser menu using the three dots button in the top right corner of the browser window.
    8. Zoom the page to 400% and note if the 'How can we help?' text search box that was visible at 100% (without zooming) is still visible at 400% zoom.
    9. Decrease the zoom.

      Notice that this section starts disappearing at the 175% zoom level.

    Actual behavior: The 'My Saved Bundles' section isn't available on a catalog page at higher zoom levels.

    Expected behavior: The 'My Saved Bundles' section is should be available on a catalog page at higher zoom levels.

    Session Management

    PRB2024286

    Make application nodes more resilient to DDoS attacks from unauthenticated traffic This is a product update.

    Sidebar (Family Release)

    PRB2019090

    the cached RecordCard is returned without checking if the user has access to record This is a caching issue, and occurs for both with Incident and HR records. When the code checks if the Record Card is in the cache, it does not re-check if the user can access the record or not. When clearing the cache, the record access check is calculated correctly.
    1. Create an incident (INC1) as the user Abel Tuter.
    2. Create a discussion on it.
    3. Paste INC1 in the chat.

      Notice that it renders a record card, and the user Abraham Lincoln cannot access INC1 in the sidebar chat.

    4. As the user Abraham Lincoln, attempt to paste the INC1 number in the chat.

      Notice that Abraham Lincoln can see the the INC1 record card and its details, when Abraham Lincoln should not be able to because they have no access.

    5. Create another incident (INC2) as the user Abel Tuter.
    6. Create a discussion on it.
    7. Paste INC2 in the chat.

    Notice that it renders a record card, and the user Abraham Lincoln cannot access INC2 in the sidebar chat. The INC2 record card is not in the cache.

    Sidebar (Family Release)

    PRB2023462

    Turn off the sidebar collab chat scope main enablement
    1. Provision an instance with the plugin com.sn_hr_core (Human Resources Scoped App: Core) installed.
    2. Create an HR case for Abel Tuter.
    3. Create a discussion with Abel.
    4. Try to upload an attachment.
    5. Ensure that it works with no errors.

    Expected behavior: The file should get attached to the discussion.

    Actual behavior: The error message 'User is not authorized' appears.

    Software Asset Management

    PRB2018383

    KB2986694

    A Microsoft per‑core license metric isn't visible after a Zurich or Australia upgrade The MS per core metric was moved from the apply_once folder to the update folder. The fix script to set the metric group was overwritten, since the update folder file insert ran after. Thus, the MS per core uploaded with no metric group.

    Refer to the listed KB article for details.

    Software Asset Management Workspace (Glide)

    PRB1992196

    In Software Asset Management workspace, the 'Assets Covered' tab is in English It should be translated.
    1. Log in to Software Asset Management workspace.
    2. Select the Licensing Operations module on the left pane.
    3. Under the standard list, select Software contracts in 'Contracts'.
    4. Select a contract.

    Note that the 'Assets Covered' tab isn't converted to German.

    Software Asset Normalization

    PRB1991265

    Regex normalization suggestions are incorrectly excluded when the product map sets suggested_rule_table on the Discovery model _createSuggestionsForRegexDMs() in NormalizationEngine has a 'NOT IN' filter that excludes DMs with suggested_rule_table in [PACKAGE_MAP_TABLE, PRODUCT_MAP_TABLE, PATTERN_RULES_TABLE, WIDE_NET_MAP_TABLE]. PRODUCT_MAP_TABLE shouldn't be in this exclusion list because product map rules don't create their own suggestions — they are only a stepping stone for wide-net suggestions.
    1. Manually normalize a Discovery model.
    2. Ensure that there's an active product map rule and an active Regex normalization rule that both match this Discovery model (DM).
    3. Ensure that there's no active package map rule, pattern rule, or wide-net rule for this DM.
    4. Run the 'SAM - Find Normalization Suggestions' job.

    Expected behavior: A Regex suggestion should be created, because product map rules don't generate suggestions themselves — they only serve as an entry point for wide-net processing. Regex should be evaluated for DMs where product map is the only suggested rule table.

    Actual behavior: No Regex suggestion is created. The DM's suggested_rule_table is set to samp_product_map (by the product map suggestion path), which causes _createSuggestionsForRegexDMs() to exclude this DM from regex processing via the NOT IN filter.

    Software Asset Normalization

    PRB2013453

    The 'Find Normalization Suggestions' job fails to create suggestions for Regex rules due to accessing the private closure variable _regexMap NormalizationEngine._createSuggestionsForRegexDMs() accesses regexEngine.regexMap, but _regexMap is a private variable inside RegexNormalizationEngine's IIFE closure. It is not exposed as a public property. The code also called getDM() and applyRegexRuleToDiscoveryModel() in a loop over this inaccessible map, so the entire regex suggestion path was non-functional.
    1. Ensure that the Regex normalization feature is active (com.sn_itam_samp plugin).
    2. Have at least one Regex normalization rule in the samp_regex_normalization_rule table.
    3. Create or have a manually normalized discovery model that would match a Regex rule.
    4. Run the 'SAM - Find Normalization Suggestions' scheduled job.

    Expected behavior: A normalization suggestion should be created linking the discovery model to the matching Regex rule.

    Actual behavior: No normalization suggestion is created for Regex rules. The job silently fails for the Regex code path.

    Software Asset Reconciliation

    PRB2015480

    Regex normalization discards edition_map (including versionMap) when edition_index is null on the rule In _buildRuleObject(), the edition_map is guarded by 'gr.edition_index && gr.getValue('edition_map')'. When edition_index is null/empty, the entire edition_map (including its versionMap) is replaced with an empty object.
    1. Create a Regex normalization rule with:
      • edition_index = null (no edition capture group)
      • edition_map populated with a versionMap.
    2. Create a Discovery model whose display_name matches the Regex pattern.
    3. Run the 'SAM - Normalize Discovery Models Using Content Rules' job.

    Expected behavior: The edition_map should be parsed regardless of edition_index, so that versionMap entries are applied to remap version values.

    Actual behavior: The versionMap isn't applied. The version value is not remapped because edition_map is discarded when edition_index is null.

    Software Asset Reconciliation

    PRB2018394

    Regex normalization ignores product license exception rules, as it stamps the product type directly from samp_sw_product instead of consulting the exception map Both setDiscoveryModelNormalizedValues() and findSuggestedValues() used ruleObj.productType directly (which comes from samp_sw_product.product_type) bypass product license exception rules. Other normalization paths (pattern, package map) already consult these exception rules via NormalizationEngine._getProductTypeFromRule().
    1. Create a product in samp_sw_product with the product_type=licensable.
    2. Create a product license exception rule for that product with a specific edition mapped to 'not licensable'.
    3. Create a regex normalization rule pointing to that product.
    4. Create a discovery model whose display_name matches the Regex pattern with the exception edition.
    5. Run the 'SAM - Normalize Discovery Models Using Content Rules' job.

    Expected behavior: The discovery model's norm_type should be 'not licensable' (honoring the Product License Exception Rule), consistent with how pattern and package map normalization paths behave via _getProductTypeFromRule().

    Actual behavior: The discovery model's norm_type is set to 'licensable' (taken directly from samp_sw_product.product_type). The same issue affects the suggestions path — findSuggestedValues() also returns the wrong productType, causing incorrect suggested values.

    Software Asset Reconciliation

    PRB2020394

    The 'Apply latest content changes' job fails for Regex normalization rules due to calling a private function as an instance method SampRegexNormalization RuleContentUpdate Handler.reEvaluate DiscoveryModels() calls this.regexEngine. buildRuleObject(ruleGr), but buildRuleObject is a closure-private function inside RegexNormalizationEngine's IIFE — it isn't exposed as an instance method. This causes every content update for Regex rules to crash.
    1. Ensure the Regex normalization feature is active (com.sn_itam_samp plugin).
    2. Have at least one Regex normalization rule record in the samp_regex_ normalization_rule table.
    3. Trigger the 'Apply latest content changes' scheduled job, or invoke SampRegexNormalization RuleContentUpdate Handler.processRecord() on a Regex rule record.

    See that the job fails with an error: 'Cannot find function buildRuleObject in object [object Object]'.

    Software Entitlements

    PRB2023511

    Add an asset tag, agreement number, and location to entitlement duplicate check attributes This is a product update.

    Standard Ticket Page

    PRB2023619

    Family changes to fetch summary fields from the m2m table This is a product update.

    System Archiving

    PRB1988156

    Archive reparenting doesn't work with peripherals and large table names The records for sys_audit and sys_journal_field don't reparent, and an error is found in the logs.
    1. Create a table with sys_audit and sys_journal records with a length that is over 60 characters. For example, 'u_supercalifragilistic expiextralongname_restore_destroy_test'.
    2. Attempt to archive it.

    Notice that the sys_audit and sys_journal_field records don't reparent. Instead, the log shows this error, 'Found in current data management track'.

    Table Administration and Data Management

    PRB2025009

    Ordering a query by a Function field that wraps a translated_text column returns blank values for that list
    1. Create a table.
    2. Add a translated_text column.
    3. Add Function field on that column.
    4. Navigate to v_plugin.LIST.
    5. Activate the plugin 'com.snc.i18n.swedish'.
    6. Insert records (New Name=Alice and New Name=Bob).
    7. Submit.
    8. Add the Swedish translations (Älice_sv for Alice and Bob_sv for Bob).
    9. Submit.
    10. Switch the session to Swedish.
    11. Open u_repro_translated_function.LIST.
    12. Personalize the columns to show 'Name' and 'Name Function'.
    13. Select the Name Function header to sort by ascending.

    Expected behavior: The 'Name Function' column shows Älice_sv and Bob_sv (or the English fallback).

    Actual behavior: The 'Name Function' column is blank for both rows.

    Trace Collector - Family Release

    PRB2023730

    Trace collector Epic This is a product update.

    Trace Collector - Family Release

    PRB2030648

    The Azure Application Insight throws an error During testing of the Application Insight feature, users are intermittently seeing an error: 'Unable to find app_insights_config.json'.

    UI Actions

    PRB2013168

    Support actions in AINPX This is a product update.

    UI Builder (Family Channel)

    PRB2023628

    Configuration table, APIs and ACLs This is a product update.

    UI Field Administration

    PRB1969665

    Currency values change automatically in workspaces The currency value changes automatically when selecting in and out of the Currency field, without actually changing the value.
    1. Open any record from incident.list.
    2. Select View - Service Operations Workspace.
    3. Create a field type 'price'.
    4. Give it any name and any value.
    5. Save the record.
    6. Open sys_user table for the name 'Beth Anglin' who has 'ITIL' role.
    7. Add a County Code field with the value set to 'system(US)'.
    8. Impersonate the user Beth Anglin.
    9. Open Service Operations Workspace.
    10. Select into the Price field under the 'Details' tab.
    11. Without changing anything, select out of the field.

      Notice that the value doesn't change.

    12. End the impersonation.
    13. Update the County Code field to 'Germany' or any other country for the user Beth Anglin.
    14. Impersonate the user Beth Anglin again.
    15. Open Service Operations Workspace.
    16. Select into the Price field under the 'Details' tab.
    17. Without changing anything, select out of the field again.

    Observe that the value changes.

    UI Field Administration

    PRB1982868

    The pop-up related to the Comment/Work Note web link only displays in the boundary of the 'Compose' tab The message, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix' is confined to the 'Compose' section and not overlaying the page. This occurs in the CSM workspace, Service Operations Workspace (SOW), and the HR workspace. This issue occurs in Safari browsers, but has been resolved in Chrome browsers.
    1. Open a Safari browser.
    2. Log in to a Xanadu instance.
    3. Open the CSM workspace.
    4. Open any non-closed incident.
    5. Navigate to the Activity Stream.
    6. Navigate to the Compose section.
    7. Under 'Subject, select the 3 dots (...) if formatting options are not available.
    8. Select the Link button.
    9. In the URL field, enter 'servicenow.com'.
    10. Select the Save button.

    Observe the message, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix'. The message is confined to the 'Compose' section, and not overlaying the entire page.

    UI Field Administration

    PRB1985085

    Quick action visibility script is executed in global scope, preventing access to scoped script includes The quick action runs into an error: 'Evaluator.evaluateString() problem: java.lang.SecurityException: Illegal access to package_private script include...'
    1. Create a quick action in a scoped app.
    2. From the visibility script, call a script include that is accessible only from the same scope.

    Notice the quick action runs into an error: 'Evaluator.evaluateString() problem: java.lang.SecurityException: Illegal access to package_private script include CMDBGenAICIFormContextualHelp: caller not in scope sn_cmdb_gen_ai: com.glide.script. RhinoEnvironment.checkScriptableAccess (RhinoEnvironment.java:723) com.glide.script. ARhinoScope.checkScriptableAccess (ARhinoScope.java:134)'. This happens because the visibility script is evaluated in the global scope.

    UI Field Administration

    PRB1998819

    WWNAglobal utils should be removed

    UI Field Administration

    PRB2017755

    The text command shortcut behavior is confusing
    1. Open the email composer on any incident record in Service Operations Workspace.
    2. Press /r.

      Nothing happens.

    3. Press /.

      It displays the text commands dropdown.

    4. Press esc.
    5. Press /r.

      It activates the response template command.

    The user finds this confusing and would rather that the text commands always have to be selected from the list instead of being triggered directly via the keyboard.

    UI Field Administration

    PRB2025633

    AI Agent modified fields API returns aiCreated instead of isAiCreated in JSON response The boolean field is named incorrectly.
    1. Provision an instance with Gen AI installed.
    2. Open any existing record page (for example, an incident in Ui16).

      Observe the AI Agent modified field API response.

    3. Inspect the JSON response body.

    Expected behavior: The boolean field is named 'isAiCreated'.

    Actual behavior: The boolean field is named 'aiCreated'.

    UI Form Administration

    PRB1988524

    The copy/paste functionality is not working in the 'Email' section of the workspace. This issue occurs after upgrading to Zurich.
    1. Log in to a Zurich instance.
    2. Open any workspace, such as Service Operations Workspace or HR workspace.
    3. Open any record.
    4. Navigate to the Compose email section.
    5. Enter the email addresses.
    6. Select any email address.
    7. Perform Copy (ctrl+c) or Cut (ctrl+x) on the email address.
    8. Paste it in the 'To' or 'cc' or 'bcc' section.
    9. Notice that the email address is not copied.

    Expected behavior: The user is able to copy and paste.

    Actual behavior: The user is not able to copy and paste.

    UI Form Administration

    PRB1999196

    The citation URL is retained and fields are highlighted when the user logs in to an instance again The highlight should happen only if the user selects links in a summary or the email outputs.

    UI Form Administration

    PRB2006958

    Introduce system property to hide form level TI banner The alert appears when the form is loaded. There's no way to avoid seeing the alert if not required.
    1. Open a SOW record with Task Intelligence field level recommendations.

      Notice that the form level banner appears with deep links to fields that have recommendations.

    2. Cancel the alert.
    3. Load the form.

    Observe that the alert appears again.

    UI Form Administration

    PRB2010217

    UI Policy date comparisons are stale after waiting on the page in Workspace

    UI Form Administration

    PRB2013158

    Form and client scripting work for Lit components This is a product update.

    UI Form Administration

    PRB2013160

    Handle a graphql error for a boolean choice field This is a product update.

    Upgrade Center

    PRB2023239

    KB3015307

    There is a mismatch in the Glide version between the app node and the database following an upgrade A new code path introduced the MariaDBI18NSQLFormatter class. When the sys_properties record of the 'com.glide.db.session _language_collation_feature' property is set to true, it takes a code path upon upgrade or restart where an instance will not come up. When 'com.glide.db.session _language_collation_feature' is false, the code path exits early and doesn't cause this issue.

    Refer to the listed KB article for details.

    Usage Analytics

    PRB2021289

    Long session durations are observed for few Usage Insights Sessions, causing inaccurate session duration metrics A fix for long session duration in some Usage Insights sessions.

    UX Framework

    PRB1969085

    KB2677276

    GraphQL schema changes for client-interaction.graphl in ux-metrics The user sees error logs from the ClientMetricsRestService.java file. The error logs are logged to the syslog table.

    Refer to the listed KB article for details.

    UX Framework

    PRB1986291

    List dynamic routing shouldn't be applied when creating a record from a related list Dynamic routing is handled within the recordRoutesMapping Client Script Include. Kb_knowledge mapping uses source_component: 'list' to route article clicks to kb_view. When the New button is selected on a related list, the kb_view route is incorrectly applied. Since kb_view can't handle new records, the page breaks.

    UX Framework

    PRB1995434

    Modeless dialog with dynamic content fails to render repeater-driven lists on subsequent opens Users experience a broken user interface when reopening modeless dialog windows that contain dynamically loaded content. On second and subsequent opens, repeater-driven lists fail to appear, preventing users from interacting with required dialog data. This impacts workflows that rely on repeatedly opening dialogs and creates a confusing, non-deterministic user experience. The failure is silent and no visible error is shown.

    UX Framework

    PRB2002772

    Preset for the presentational list (nested inside the record list bundle) wasn't discovered during pre-population The list is completely broken.
    1. On a base instance, build a custom UI Builder (UIB) page where the record list component is nested deeply under a tabs viewport.
    2. Perform cache.do.
    3. Visit the UIB page.

      Observe that the list component is empty and broken. No data is rendered.

    4. Visit the Service Operations Workspace (SOW) list page: /now/sow/list.

    Observe that the SOW list page is also broken and empty.

    UX Framework

    PRB2018001

    A blank page issue on some nodes during upgrade This issue occurs in Australia instances.
    1. Upgrade the instance.
    2. Navigate to the node.

    Observe that there is a empty page is displayed with a spinning wheel.

    UX Framework

    PRB2023614

    In-product surveys MVP This is a product update.

    UX Framework

    PRB2030213

    When a user navigates between two pages that both have IPS surveys configured, the survey triggered on the first page isn't dismissed upon navigation

    Virtual Agent Designer Legacy

    PRB1752802

    The virtual agent designer page isn't accessible on Safari All seismic and Core UI pages should work on Safari 17.1+ for Washington and 17.3+ for Xanadu.
    1. Open a Safari browser.
    2. Navigate to All > Virtual Agent > Designer.

    Observe the following error: 'Safari and older versions of Internet Explorer are unsupported browsers, please switch to a different or newer browser.'

    Virtual Agent

    PRB1977665

    The 'Pagination' API doesn't reset totalSearchResultsCount if a search term is removed
    1. Execute a topic with dynamic input.
    2. Scroll through the input list.

      Note that the totalSearchResultsCount is 0 in the response for /options, during scrolling.

    3. Enter a search text in the input.

      Note that totalSearchResultsCount has some valid integer values in the response for /options.

    4. Remove the search text in the input.

      Note that totalSearchResultsCount still has the same value from step three in the response for /options and isn't reset to 0.

    Virtual Agent

    PRB1985280

    Duplicate attachment is displayed in Virtual Agent after portal refresh
    1. Open an instance in two browsers.
    2. In browser one, impersonate the agent 'Fred Luddy'.
    3. Set the agent as available in Service Operations Workspace.
    4. Switch to browser two.
    5. Impersonate as admin.
    6. Initiate a chat from the portal or web-client.
    7. Connect to a live agent.
    8. In browser one, accept the chat as the agent.
    9. Send any image as end-user to agent.
    10. Refresh the portal at end-user.

    Expected behavior: Nothing happens.

    Actual behavior: The duplicate attachment/image is displayed only in Virtual Agent.

    Virtual Agent

    PRB1989524

    Consecutive chat interactions from Customer Service Management (CSM) portal have anempty 'Account' and 'Contact' field
    1. Log in as a contact/contact as a consumer.
    2. Navigate to the CSM Portal.
    3. Open Virtual Agent chat.
    4. Select the Live Agent Support topic.
    5. Close the conversation.
    6. Select Live Agent Support topic again in the new conversation.
    7. As an admin, open Interaction list(interaction_list).

    The 'Assigned to = Virtual Agent' has the first interaction has Account and Contact fields filled, but the next interaction records are missing the Account and Contact fields.

    Virtual Agent

    PRB1999511

    Message preview and unread badge count don't work on page refresh When the user refreshes the page, the message preview doesn't show up. On standard chat, there's also no unread badge count.
    1. Navigate to /sp.
    2. Query 'What is spam'.
    3. While standard or enhanced chat is processing, close the Virtual Agent.

      Observe that there is an unread badge count (1) and the message preview pops up.

    4. Refresh the page.

    Expected behavior: There is still an unread badge count and the message preview shows up.

    Actual behavior: The message preview doesn't show up. On standard chat, there's also no unread badge count.

    Virtual Agent

    PRB2003424

    External users are unable to delete closed chats from the Virtual Agent chat history External users are unable to delete closed chats from the Virtual Agent chat history and encounter the error message: 'Failed to delete conversation. Please try again'.
    1. Impersonate an external user.
    2. Navigate to the ESC portal.
    3. Open the Virtual Agent chat history.
    4. Select the Bin icon to delete a closed chat.

    Notice that the error message appears: 'Failed to delete conversation. Please try again'.

    Virtual Agent

    PRB2003812

    Sonar test coverage should be 80% for the Data Collector module

    Virtual Agent

    PRB2006240

    The Virtual Agent server doesn't process pre-chat surveys for bot 2 bot Users aren't routed to a live agent in bot to bot conversations. This was due to a misconfiguration where pre-chat survey was enabled and the user wasn't able to provide a response. Interactions aren't assigned to the queue or an agent in Agent Workspace. It was working when the user first upgraded, but recently has stopped.
    1. Start a conversation in crescendo using the ServiceNow Virtual Agent API.
    2. Send a request to transfer to a live agent using endpoint /api/sn_va_as_service/bot/integration.

    Notice that the conversation doesn't get routed to the live agent.

    Virtual Agent

    PRB2007255

    KB3045151

    There's memory pressure on nodes due to high memory for the cache 'com.glide.cs.qlue. module.coma. MessageBatchingSession' Users with 2GB nodes may encounter memory issues that can cause the events process jobs to yield.

    Run a heap dump.

    Observe that MacMessageBatchingSession or MessageBatchingSession uses over 50 MB of memory.

    Virtual Agent

    PRB2012889

    vaSystem.getSearchText isn't working with offGlide

    Virtual Agent

    PRB2013847

    Create a new scriptable API for endChatSummarization

    Virtual Agent

    PRB2015140

    Multiple interactions are created during live agent execution This only happens when a conversation is reset or abandoned.

    Virtual Agent

    PRB2015866

    Handshake fails when it fails to load an in-progress conversation The same error impacts async tool execution intermittently.
    1. Impersonate any user who has existing open conversations.
    2. Open Now Assist Portal.

    Expected behavior: It should load the chat client successfully with a new or older conversation.

    Actual behavior: It keeps loading and throws an error.

    Virtual Agent

    PRB2017392

    Add topic, agent execution to the sys_cs_now_ assist_execution table for NextWave When a topic/agent is run, the sys_cs_now_ assist_execution doesn't populate.

    Virtual Agent

    PRB2017869

    A custom navigation URL isn't working Users expect that custom URL mappings under sys_cs_portal_url_ mapping_list should only impact the portal/mobile device for which it was configured. Also, pages opened on Mobile NextWave should be read as iOS/Android, not mweb. However, custom URL mapping configured for Mobile impacts Portals or vice versa, and pages opened on Mobile NextWave are read as mweb.

    Virtual Agent

    PRB2018098

    AI agents incorrect are displayed on the Virtual Agent's topics list On Virtual Agent, users see AI Agent in the 'View All Topics' section under the 'Others' category. But none of those agents are marked to be visible on that section.
    1. Open Virtual Agent.
    2. Navigate to the 'View All Topics' section.
    3. Scroll to the 'Others' section.

    See that multiple AI Agents are visible there.

    Virtual Agent

    PRB2018878

    Employeeslate gets a 404 error for promoted-skills

    Navigate to Employeeslate's home.

    Observe the 404 error.

    Virtual Agent

    PRB2019099

    Starting '{0}' sys_cs_context_ profile_message isn't translated per user session language The message should be translated using SysMessage. getMessageLang before it's sent.

    Virtual Agent

    PRB2020252

    The Virtual Agent goes into a loop after selecting the feedback survey In Zurich, the Now Assist Virtual Agent in enhanced chat intermittently gets stuck in a loop selecting the feedback survey topic.
    1. Open the NAVA bot from the portal.
    2. Ensure that the survey topic is added in fallback.
    3. Search for a query that has no related knowledge articles and triggers the fallback topic (for example, 'What is quantum physics?').

    Observe that after the fallback is triggered, a form link is provided and a feedback message is triggered. After the feedback message is triggered, the Virtual Agent continues to return the same feedback message as the response.

    Virtual Agent

    PRB2022716

    NextWave Premium Chat doesn't work for external users (snc_external) on CSM portal The console error '403 FORBIDDEN' appears on ais_auth_token_refresh API. The external user can't use the chat experience.

    Virtual Agent

    PRB2024076

    Pickers aren't honoring pre-selected options This works in the web version and is considered a feature gap.
    1. Set up a topic that has pre-selected options.
    2. Execute a topic in MS Teams.

    Expected behavior: The pre-selected options defined in the topic should be presented to the user as selected.

    Actual behavior: An empty picker is presented with nothing selected.

    Virtual Agent

    PRB2024849

    Simplified handshake for NextWave needs fixes for session creation, channels, and context The existing session needs to be looked up by conversation before creating a new one. Also, if the consumer account context name is provided, it needs to be stamped and associated with the consumer account when created. Finally, the channel user profile needs to be properly resolved for channels.

    Virtual Agent

    PRB2025311

    Add an ai_greeting type mapping in getContextProfile MessagesNoDomain to support a Premium Chat greeting message feature The Now Assist Virtual Agent (VA) admin UI saves static AI greeting messages as sys_cs_context_profile_message records with type=ai_greeting. For these to load correctly, getContextProfile MessagesNoDomain in NowAssistIn VAAdmin ConsoleUtil needs an explicit branch mapping ai_greeting → aiGreetingMessage. Without this Glide-services change, the greeting message isn't populated for multi-domain instances when the feature ships.
    1. On a multi-domain instance, navigate to Now Assist VA admin UI > Chat Experience > Premium Messages tab.
    2. Configure a static greeting message.
    3. Save.
    4. Refresh the page.
    5. Navigate back to the chat.

    Observe that the custom greeting message isn't populated even though the message was saved earlier.

    Virtual Agent

    PRB2025956

    Resolved issues after introducing four tables for Virtual Agent (VA) analytics The search-related analytics can be written to the four tables instead of sys_ci_analytics as event entries.
    1. Make sure sn_nowassist_ va.analytics. persistence_strategy = 'table'.
    2. Launch VA client.
    3. Type anything in the search.

    Observe that all the expected entries are in the new tables and view.

    Virtual Agent

    PRB2026053

    sys_cs_context_profile_topics should be sent to the offGlide cache for Authorizing Official (AO) to read

    Virtual Agent

    PRB2026723

    In OGChannels, there should be a picker search update

    Virtual Agent

    PRB2026804

    getBrandingConfig() doesn't provide the correct response in NextWave api/sn_nowassist_va /og_branding_configs/ {deploymentId} doesn't provide the correct response for branding configuration. It's missing a value field and the type is null for the first item.

    Virtual Agent

    PRB2028137

    Glide-cs-test failures in Australia

    Virtual Agent

    PRB2029447

    Knowledge article links are broken in the sources citation when the article has an attachment There is an issue with the link formation in the source citations for the KB article if there is an attachment. The link generated by Now Assist uses the sys_id of the PDF attachment instead of the KB article sys_id in the URL.

    Virtual Agent

    PRB2030245

    External users can't upload files There's an HTTP 422 error and the file fails to upload.

    Virtual Agent

    PRB2031950

    AI-user fetch issue The conversation user for the ZTSD flow is AI L1 Service Desk Specialist, which is the identity type ai_agent. The cache configuration get_user|table:{table} |field:{field}| value:{value} explicitly ignores users of type 'ai_agent'.

    Perform a cache fetch call for the cache key 'get_user|table:{table}|field:{field}|value:{value}' for any user of the identity type 'ai_agent'.

    See that it doesn't return the User field value.

    Virtual Agent

    PRB2032108

    Glide-side changes for the NextWave release This is a product update.

    Virtual Agent Web Client

    PRB1993741

    When live_agent_only is set to true, the agent chat triggers the greetings topic instead of going to the live agent The /esc portal agent chat is configured to only trigger the live agent. However, when the user selects the 'Virtual Agent' icon, it triggers the greetings topic and doesn't go to the live agent. When the user ends the first conversation and creates another conversation, it then goes straight to the live agent. The issue only occurs the first time the user selects the 'Virtual Agent' icon in the session. It also only happens for Now Assist virtual agent sessions.
    1. Enable Now Assist in Virtual Agent.
    2. Configure the agent chat configuration for the /esc portal.
    3. Turn off all the other agent chat configurations, only keeping one active.
    4. Navigate to /esc.
    5. Select the Virtual Agent icon.

    Expected behavior: It triggers the live agent support topic.

    Actual behavior: It triggers the greetings topic. However, if you end the conversation and create a conversation, it goes straight to the live agent.

    Virtual Agent Web Client

    PRB2021136

    Selecting the Stop button during synthesized results streaming causes an error This issue occurs when the Stop button is selected in the small time interval between the receipt of the last chunk and the full synthesized response.
    1. Navigate to the esc portal.
    2. Select the Now Assist chat icon.
    3. Type the utterance: 'Adobe access'.
    4. Wait for the response to be streamed.
    5. Select the Stop button immediately after the response is streamed.

    Observe that there's an error.

    Virtual Agent Web Client

    PRB2033755

    SEARCH_FALLBACK_EVENT is missing in sys_ci_analytics SEARCH_FALLBACK_EVENT records are no longer created in sys_ci_analytics in Australia.
    1. Navigate to Dynamic Window.
    2. Create a conversation.
    3. Start a conversation.
    4. Search for 'iPhone'.
    5. Select See more of iPhone.
    6. Navigate through the conversation without starting a catalog request.
    7. End the iPhone search conversation with 'nothing else'.

    Visibility Content

    PRB2008571

    KB2946711

    Sybase Discovery failed due to an issue in the step 8 condition, causing instances to be created in the wrong class The Sybase Discovery pattern fails during execution, which results in database instances created in the parent table instead of the expected Sybase-specific class. Even after retrieving the instance name in step 7, the Sybase database pattern is failing in step 8.

    Refer to the listed KB article for details.

    Visual Task Boards

    PRB1994303

    In a Visual Task Board (VTB), the 'Select lane' menu displays lane values from all the boards available irrespective of the board selected to move

    Window Manager

    PRB2019525

    When the Now Assist panel is activated, the left side navigation is hidden and the margin remains applied, leaving an empty space

    Word Document APIs

    PRB1973625

    Support unzipped font size up to 20 MB in Word Doc API The property com.snc.word_doc_api .unzip_word_size_limit_mb supports only up to 10 MB file size. This is an enhancement request to support up to 20 MB.

    Work Order Management

    PRB2015160

    'Sort by distance' is degraded in Australia The 'Sort by distance' operation in the FSM Dispatcher Workspace is significantly slower in Australia than Zurich. The transaction response time increased from 2.2 seconds to 8.9 seconds — 6.5 seconds slower.
    1. Log in to an instance with dispatcher0400.
    2. Select the Dispatcher workspace button.
    3. Select a task from the left side pane.
    4. Select the Sort by distance button.

    Work Order Management

    PRB2017308

    Flat table records aren't invalidated when location attributes are inserted to Workforce Operations (WFO) events In Australia, when a location attribute (sn_shift_planning _sched_attr) record was inserted into or deleted from a WFO event, the related schedule flat-table records weren't invalidated. As a result, outdated event entries continued to exist on the agent's flat table instead of being re-inserted with the updated sn_shift_planning_ sched_attr sys_id. The issue was present in the 'Update schedule flat table' business rule in the Field Service Management (com.snc.work_management) plugin.
    1. Enable WFO.
    2. Insert a location attribute (sn_shift_planning_sched_attr) record to a WFO event.
    3. Navigate to a flat table.

    See the outdated events record still exist for the agent. When sn_shift_planning_sched_attr record is inserted or deleted, related flat table records should also be invalidated as they have to be inserted with an updated sn_shift_planning_sched_attr sysID into the table.

    Work Order Management

    PRB2023961

    The switch 'Enable/disable association of territory resources with demand channels' can be turned on even when FSM shift scheduling is turned off
    1. Provision an instance with FSM Territory Planning, Advanced Capacity, and WFO installed.
    2. Activate a territory model.
    3. Navigate to the 'Field Service Configuration Assignment' tab.

    Expected behavior: Enabling/disabling the association of territory resources with demand channels can't be turned on unless the 'Enable FSM shift scheduling' toggle is enabled.

    Actual behavior: The toggle 'Enable/disable association of territory resources with demand channels' can be set to enabled without setting 'Shift Scheduling' to true.

    Work Order Management

    PRB2026498

    Work order tasks (WOT) are unassigned after flexible breaks are updated by Schedule Optimization (SO) When a flexible break is optimized by the SO engine, it inserts/updates records in the sn_shift_planning_agent_schedule table to update the original break start and end time. This operation is triggering the business rule 'Re-assignment on shift deletion', which causes all of the tasks in the shift to be unassigned, even if they don't overlap with the break event.
    1. Set up a Workforce Optimization (WFO) schedule with flexible breaks.
    2. Set up an optimization batch or intraday configuration for the same group/territory.
    3. Run optimization.

    Observe that the tasks are assigned by SO, but then immediately unassigned after the flexible breaks are updated.

    Zero Copy Connectors (Glide)

    PRB2026100

    There's a reverse tunnel solution for Trino private connectivity This is a product update.

    Zing Text Indexing and Search Engine

    PRB2018016

    The 'TS Index Stats' job shouldn't check a table that's not indexed The 'TS Index Stats' job is pulling 45 million records from syslog and caused an out of memory error on the node.
    1. Run the 'TS Index Stats' job.
    2. Turn on the syslog(collection) text index attribute in sys_dictionary.
    3. Create a record in ts_index_name for syslog.
    4. In the background, run the new GlideTSIndexStatistician().allStats();.

    Expected behavior: It shouldn't load all records for the table.

    Actual behavior: There's a warning for syslog large table: 'Table handling an extremely large result set'.

    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.