Australia Patch 5
The Australia Patch 5 release contains important problem fixes.
- Australia Patch 5 was released on August 7, 2026.
-
- Build date: 08-03-2026_1111
- Build tag: glide-australia-02-11-2026__patch5-07-20-2026
For more information about the release cycle, see the ServiceNow Release Cycle.
For a downloadable, sortable version of the fixed problems in this release, click here.
Australia Patch 5 includes 539 problem fixes in various categories. The chart below shows the top 10 problem categories included in this patch.
Changes in Australia Patch 5
- Adoption Services release notes
- genai_admin role in Dynamic Guidance
- Configure
-
When sn_dyn_guidance_user role is assigned, it also includes the genai_admin role.Note:The genai_admin role does not grant administrative privileges.
- Integration Hub release notes
- OAUTHBEARER authentication for Stream Connect message replication
- Integration Hub Usage Dashboard
- The Integration Hub Usage Dashboard provides reports of usage by protocol. For more information about the service accounts contributing to each protocol, see Monitor inbound API integration usage.
- Kafka SSL credentials fields
- Updates to OAUTHBEARER, Token endpoint URL, Client ID, Client Secret, Scope, and OAUTH extensions.
- Monitor inbound API integration usage
- Monitor inbound integration usage requests, data egress, and domain-level usage through the Inbound API Integration Usage dashboard.
- Predictive Intelligence release notes
- The sys property ML Trainer - Glide communication KAA (glide.platform_ml.kaa_auth_enabled) implements KAA validation when mTLS is enabled.
- Properties for Identification and Reconciliation
- glide.identification_engine.batch_update_last_discovered.use_execute_lazy
Sets IRE mode for processing batch updates of the discovery timestamp fields first_discovered and last_discovered.
For optimized performance, when IRE processes CI records, it updates discovery timestamp fields in batches. This property controls when these batch updates are executed.
- true
- IRE defers database updates and uses batched operations, which improves performance.Usage:
- For standard production operations
- When performance is critical
- When no race conditions are observed
- false
- IRE processes updates synchronously without delay, ensuring immediate database consistency.Usage:
- When race conditions between discovery and CI deletion exist
- A deletion strategy is aggressively removing recently discovered CIs
- If immediate timestamp consistency is required
General details:- Type: true | false
- Default: true
- Learn more:
- Location: Add to System Properties [sys_properties] table.
- Properties for Identification and Reconciliation
- glide.identification_engine.batch_update_last_discovered.use_execute_lazy
Sets IRE mode for processing batch updates of the discovery timestamp fields first_discovered and last_discovered.
For optimized performance, when IRE processes CI records, it updates discovery timestamp fields in batches. This property controls when these batch updates are executed.
- true
- IRE defers database updates and uses batched operations, which improves performance.Usage:
- For standard production operations
- When performance is critical
- When no race conditions are observed
- false
- IRE processes updates synchronously without delay, ensuring immediate database consistency.Usage:
- When race conditions between discovery and CI deletion exist
- A deletion strategy is aggressively removing recently discovered CIs
- If immediate timestamp consistency is required
General details:- Type: true | false
- Default: true
- Learn more:
- Location: Add to System Properties [sys_properties] table.
- ServiceNow AI Platform core feature release notes
- Data Egress and Usage by Domain tabs added to the Inbound API Integration Usage dashboard
- ServiceNow Vault roles
- Learn and set up the roles necessary to use ServiceNow Vault.
- Using Dynamic Guidance
- Starting with Dynamic Guidance version 28.4.3, the genai_admin role is automatically included when the sn_dyn_guidance_user role is assigned. The genai_admin role does not grant administrative privileges.
- View Inbound API Integration Usage dashboard
- View integration request counts, data egress volume, and domain-level usage.
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 |
|---|---|---|---|
|
Database Persistence - WDF PRB2024733 |
Reports containing reference-type catalog item variables (lookup) fail to render data after upgrading to the Australia release | After upgrading to the Australia release, reports that contain reference-type catalog item variable columns fail to render data correctly. The affected reference-type variables don't resolve their lookup values, and their presence in the report additionally causes all other columns — including native table fields such as Number, Created, and Closed — to render as empty across all rows. |
Refer to the listed KB article for details. |
|
Key Management Framework (KMF) for Platform Encryption PRB2058369 |
MID Server is unable to fetch credentials after upgrading to Zurich or Australia | In certain versions, there's a Unified Secrets Gateway (USG) service for credential management. During the upgrade to those versions, a system trigger script is designed to automatically execute and populate the sys_secret_identity _group_member table with the MID Server identity group mappings required for USG authentication. However, this trigger fails to complete successfully, leaving the table incompletely populated. As a result, the MID Server can't authenticate with USG and fails to retrieve credentials. |
Refer to the listed KB article for details. |
|
Multi-Instance Framework PRB2040054 |
There's a flood of 'Unable to find vtable operation for operation id {}' messages that's generating millions of records in an instance for every Flow Designer execution | In a cloned instance, the root cause of the flood of errors messages 'Unable to find vtable operation for operation id {}' in the syslog is sn_mif_vtable_ operation_context.vtable _operation is empty. |
Refer to the listed KB article for details. |
|
Now User Experience PRB2038702 |
A scoped public UI page isn't accessible without a login unless 'Name' is used vs a scoped endpoint in a sys_public record | It should be accessible without a login, so a user can complete the authentication from Outlook. |
Refer to the listed KB article for details. |
|
System Events PRB1969068 |
The 'Events process 0' job yields to memory pressure, causing event processing delays | When node memory pressure is high (live set ≥ ~91%), the JobYieldCheck mechanism triggers a yield on events process 0 despite it being a priority 25 (high priority) job. High-priority jobs should not be subject to automatic yield throttling, as this directly delays critical event processing and can result in P1 incidents. The memory pressure itself may be transient or difficult to diagnose quickly — heap dumps often show no obvious culprit, and identifying the root cause of elevated memory usage takes time. During that window, events process 0 is repeatedly yielded, stalling event processing pipelines that users depend on for time-sensitive operations. JobYieldCheck WARNING Job=events process 0 yields due to memory pressure logged on affected nodes. Node memory is sustained at 91–93% of max, with live set at ~91.44% (~1.28GB). glide.memory.watcher logs no active transaction warnings alongside persistent memory pressure status = true. There's only a single job visible in the queue during the yield window, yet throttling still triggers. However, users expect priority 25 jobs (events process 0) should not be yielded under memory pressure conditions. Yield throttling should be restricted to lower-priority workloads. | |
|
Table Rotation PRB1959672 |
Shard tables aren't created on an initial plugin install | When a plugin is manually installed, shard tables aren't created automatically. |
Refer to the listed KB article for details. |
|
UX Framework PRB2027095 |
The latest component asset isn't selected when multiple asset associations exist in sys_ux_lib_ component_ m2m_asset, which impacts AI summary cards on UI Builder workspaces | When the AI summary card component was upgraded, its asset name changed from now-ai-summary-card/index to uxc-generative-ai/index. The upgrade doesn't clean up the old asset association, so the sys_ux_lib_component_m2m_asset table ends up with two associations for the same component (old and new asset). The component-to-asset selection query in GlideUxComponent DefProvider. getAssetNames ByComponentSysIds() had no ordering and relied on default DB ordering. When duplicate associations exist, this could return the stale now-ai- summary-card/index asset, which is incompatible with the latest Platform AI Agents and Skills app. As a result the AI summary card fails to load on UI Builder workspaces. Classic UI uses a different rendering path, so it is unaffected. |
Refer to the listed KB article for details. |
All other fixes
| Problem | Short description | Description | Steps to reproduce |
|---|---|---|---|
|
Activity Stream PRB2027954 |
An activity filter's field's slushbucket initially has every field selected when the glide.ui.{table}_activity.fields property doesn't exist | For non-task tables with an empty 'glide.ui.<table>_activity.fields' property, 'FilterFieldRepo.getTablePropertyFilters(' returned a hardcoded 'DEFAULT_FIELDS' constant. This default set was designed for task tables and didn't reflect the actual fields on the table, causing incorrect or missing fields in the activity stream. |
|
|
Activity Stream PRB2040417 |
The Copy button on the VTB view can't access copyJournalContent or GlideUIDefault | The content doesn't get copied to the clipboard API and doesn't show the 'Copied to clipboard' notification. |
Expected behavior: The content is copied to the clipboard API and shows a 'Copied to clipboard' toast. Actual behavior: The content doesn't get copied to the clipboard API and doesn't show the 'Copied to clipboard' notification. |
|
Agent Chat PRB2021594 |
An agent chat box isn't enabled when work is offer re-routed post blind queue transfer | In most recent Australia release, ServiceNow CSM Workspace agent isn't able to type messages in the chat input box after they are re-routed an interaction that was rejected by a previous agent. The chat box should be enabled after re-routing acceptance. | |
|
Agent Chat PRB2031080 |
Setting 'Disable agent inactivity check for API' to true makes the presence states disappear from the presence state picker in workspace's inbox | The presence state picker should display all available states, even when 'Disable agent inactivity check for API' is set to true. |
See that the 'Available' option is displayed in the SOW presence state picker. |
|
Agent Chat PRB2033499 |
Improve the presence state picker in workspace's inbox based on the new flag 'show_in_workspace' instead of 'Disable agent inactivity check for API' | ||
|
Agent Chat PRB2051353 |
Agent presence indicator should be shown in the 'Transfer to Agent' list for third party | When searchTargetList is set, a list of agents is shown, but there's no presence indicator. |
Expected behavior: It shows a list of agents along with presence indicator when searchTargetList is set. Actual behavior: It shows a list of agents with no presence indicator when searchTargetList is set. |
|
Agent Chat PRB2052028 |
Integration users can't read sys_cs_conversation_member for creating wrap up segment | The wrap up segment creation fails with a 400 status and the error message: 'Failed to create wrap-up segment. Segment not found in implementations for extension point: interactionSegment'. |
Expected behavior: The wrap up segment is created and the API returns success. Actual behavior: The wrap up segment creation fails with a 400 status and the error message: 'Failed to create wrap-up segment. Segment not found in implementations for extension point: interactionSegment'. |
|
Agent Chat PRB2055561 |
Rename Now Assist, Moveworks and AI experience to ServiceNow Otto | The Sparkle button for CRR should be replaced with the new Otto button. CRR button's tooltip 'Write with Now Assist' should be replaced with 'Write with AI'. Finally, the Sparkle icon and its label in the recommendation modal should be replaced with the Otto icon. | |
|
Agent Chat PRB2055562 |
Rename of Now Assist, Moveworks and AI experience to ServiceNow Otto | ||
|
Agent Chat PRB2058031 |
Add a missing flag on 'Requires ACL authorization' | A fix has ensured that the 'Requires ACL authorization' flag on 'Conversation Server' graphQL schema is set to true. However, due to a discrepancy in syncing branches, only the ACL changes added are live and not the graphQL schema changes. | |
|
Agent Chat PRB2063949 |
Some messages are hidden on the agent's side when hideControl is true and contains searchText | ||
|
Agile Development PRB2026219 |
The Group capacity field is read only in sprint records |
Note that Group capacity (points) is read-only. |
|
|
AI Agents (Glide Family) PRB2034699 |
GenAIMetadata M2MDaoImpl createAIAGenAI MetadataM2M doesn't assert that the genAILogId parameter is not NULL | This causes a full table scan of the sys_gen_ai_ log_metadata table. This code is invoked by the AsyncMessageProcessor. | |
|
AI Agents (Glide Family) PRB2037758 |
AI Agents randomly throw a tool execution error: 'Failed to execute async FDIH tool' | At any random tool call, the AI Agent throws: 'Sorry, there was a problem on my side trying to complete this request. Try asking again later'. In logs, it shows 'FDIH async tool call exception'. |
Observe that, at any random tool call, it throws: 'Sorry, there was a problem on my side trying to complete this request. Try asking again later'. In logs, it shows 'FDIH async tool call exception'. |
|
AI Agents (Glide Family) PRB2051367 |
TTL isn't honored in sys_og_conversational _cache_configuration in the absence of any other invalidation rule | The persona section doesn't show the new memories immediately, but they're visible after 24 hours. |
Observe that it doesn't show the new memories. However, they will be visible after 24 hours. |
|
AI Agents (Glide Family) PRB2059351 |
Record scope should override the user session scope | For AI Agents, when any record of a user instance is used, the record scope should override the user session scope of the MSP as per the domain separation policy. However, that's not happening. For example, when an AI Agent with a retriever tool is triggered by any record in a user instance (like C1), it fetches KBs/results from all the user instances under that MSP. | |
|
AI Agents (Glide Family) PRB2059390 |
Role masking isn't unset when running a workflow | ||
|
AI Experience Framework - Glide PRB2034740 |
aiux_service/ chat_check_access should work with the default experience name to query the deployment document ID | There should be a way to query by experience name so that there is no need to force pass a sys_id each time. | |
|
AI Experience Framework - Glide PRB2036766 |
Experience cache population only emits the default theme | Multi-theme (user-criteria) themes are missing from the edge cache, so targeted users get the wrong theme. | |
|
AI Experience Framework - Glide PRB2061584 |
True-up the AI UX Builder Store app | ||
|
AI Gateway - Security PRB2052119 |
As part of the name change, update error strings in MCPOAuthConstants.java that reference 'Now Assist' to 'ServiceNow Otto' | The changes will be made in Zurich and Australia. Also, an additional change is needed for the description in glide/glide-ai-security-scan. | |
|
AI Search (Glide) PRB1859571 |
A search retrieval agent returns an incorrect catalog item URL | ||
|
AI Search (Glide) PRB2052168 |
No_answer Genius Result is streamed intermittently | A Genius Result rarely shows, but it should not show at all. |
Observe that a Genius Result rarely shows. It should not show at all. |
|
AI Search (Glide) PRB2054276 |
The fix script shouldn't backfill non-default sources | When the user upgrades to an instance with additional sources in the multi-content feature, the additional sources are marked as 'Included'. |
Upgrade an instance without additional sources in the multi-content feature to a version with the feature. Observe that the additional sources are marked as 'Included'. |
|
AI Search (Glide) PRB2054932 |
In Moveworks API V2, support linking ServiceNow Security Center (SSC) to a search profile | This is a product update. | |
|
AI Search (Glide) PRB2054938 |
For the Moveworks API V2, return chunks when passing an additional flag | This is a product update. | |
|
AI Search (Glide) PRB2058047 |
Indexing with multiple semantic indexing configurations with the same name on different models isn't working | When multiple semantic index configurations are created on the same datasource with the same semantic field name but different embedding models, only the first configuration is loaded into the active semantic index field cache. Subsequent configurations are silently ignored, so ingestion and search only use one embedding model for that field. Only one embedding model is used for indexing and search when multiple semantic index configurations share the same semantic field name. Additional configurations with the same semantic field name are not visible in getSemanticIndexFieldMapping(). No error or warning is logged when the duplicate-name configurations are skipped. Thus, multi-embedding model support for a single semantic field is broken. Configurations are silently lost during cache population. This affects ingestion, search, and any callers that rely on getSemanticIndexFieldMapping(). |
Observe that only one SemanticFieldConfiguration is returned for semantic_search and the other is silently dropped. |
|
AI Search PRB1875924 |
AI search ingestion sticks when the 'Size in Bytes' column has an empty value in sys_attachment for an attachment that has a size more than 25MB |
Refer to the listed KB article for details. |
|
|
AI Search PRB1902419 |
The conversation ID isn't logged to the sys_search_event table |
Expected behavior: Since it was from VA, there should be a conversation. Actual behavior: The conversation ID is empty. |
|
|
AI Search UX PRB2004411 |
Refactor the synthesized Genius Result presence filter from Data Broker into the Java layer | Currently, the logic to conditionally execute the synthesized Genius Result — specifically, the filter that checks whether a Genius Result is present before execution — lives in the Data Broker transform layer (UX layer). This means the filter isn't automatically applied across all clients and must be manually maintained per-client in the Data Broker. This logic must be moved into the Java layer so that it is applied universally and automatically for all users, reducing duplication and the risk of inconsistent behavior across different consumers of the Search API. |
A user that bypasses or doesn't use this Data Broker transform doesn't have the filter applied, resulting in potentially inconsistent or unintended behavior around synthesized Genius Result execution. |
|
AI Search UX PRB2014714 |
Ignore Genius Result's limit for citations in sync mode |
Expected behavior: Users still get a synthesized response. Actual behavior: No Genius Result renders because of no citations. |
|
|
AI Search UX PRB2038703 |
Instance creation failure for com.glide.search. graphql.query. Suggestions from service portal's typeahead AIS Suggestions API | When something is searched for in the portal's typeahead, no suggestions appear and AIS Suggestions API calls in the network tab return 'Instance creation failure for: com.glide.search. graphql.query. Suggestions', and 'DataFetchException'. | |
|
AI Search UX PRB2054213 |
URLs with special characters like $ break streaming for non-Virtual Agent clients | Streaming starts successfully, but it stops partway through and the full answer is never rendered. |
Expected behavior: The full answer streams successfully. Actual behavior: Streaming starts successfully, but it stops partway through and the full answer is never rendered. |
|
AI Search UX PRB2054952 |
Rename Now Assist to Otto within AI Search components | This is a product update. | |
|
AI Search UX PRB2056856 |
Replace the sparkle icon animation with the Otto animation for synthesized Genius Results (GR) |
Expected behavior: The loader state shows the Otto animation. Actual behavior: The loader state shows the sparkle icon animation. |
|
|
AI Search UX PRB2057349 |
Rename Now Assist to Otto for typeahead suggestions | This is a product update. | |
|
Alumni Center PRB2054850 |
Add a null check when using getRefRecord() | ||
|
Analytics Data API PRB1973007 |
The Platform Analytics 'pivot table' unit type doesn't persist | When creating a pivot table using two tables as the data sources, the 2nd and 3rd columns swap their values. |
When the order of the columns is the count of table 1, count of table 2, sum of table 1's column, sum of table 2's column, and when users refresh the dashboard, the 2nd and 3rd columns values swap, with the values from column 3 appearing in column 2 and vice versa. |
|
Analytics Data API PRB2039649 |
The Platform Analytics dashboard ignores the data source filter | The 'Is one of' operator doesn't function as expected on the source. The issue is reproducible in Australia with the Data Visualization plugin version 29.1.0 and in Zurich with version 28.5.0. However, the functionality works as expected in Yokohama with version 28.0.29 and in Zurich with version 28.4.5. |
Expected behavior: Only the selected priority is reflected. Actual behavior: All priorities are reflected in the indicator scorecard visualization. |
|
Analytics Data API PRB2050449 |
Next Experience Widgets load with an 'Unable to generate chart' error | The error reads: 'Error Unable to generate chart. Cannot invoke 'com.glide. glideobject. GlideDateTime.after (com.glide. glideobject. GlideDateTime)' because 'scoresModifiedAt' is null.'. | |
|
Analytics Data API PRB2053974 |
Bubble chart bubbles render horizontally in Platform Analytics Workspace (PAW) instead of distributed across both X and Y axes | After upgrading to Australia, bubble charts in PAW now render bubbles horizontally (all on Y = -1) instead of being distributed diagonally across both X and Y axes as expected. The same configuration in the Classic Reporting module (sys_report.LIST) correctly displays bubbles distributed across both axes. The bubbles are rendering and not stacking, but the axis distribution logic differs between PAW and Classic Reporting. In Classic Reporting, bubbles are positioned diagonally across both X and Y axes. Each rating value (Dissatisfied, N/A, Satisfied, Very Satisfied) appears at a distinct (X, Y) coordinate pair. In PAW, all bubbles are rendered on the same horizontal line (Y = -1), with X-axis variation only. There's no Y-axis differentiation. |
Expected behavior: Bubbles should be distributed across both X and Y axes, matching the Classic Reporting output. Each unique combination of Row (Actual Value) and Column (Actual Value) should result in a distinct (X, Y) coordinate pair on the visualization. Actual behavior: All bubbles are aligned horizontally at Y = -1, with X-axis values varying. The chart is unreadable and does not match the intended visualization. |
|
Analytics Export API PRB2021342 |
The email layout in an Platform Analytics scheduled export doesn't match the received email format | Platform Analytics scheduled reports aren't honoring the email body configured when the field omit_if_no_records is true. | |
|
Application Install Engine PRB2056922 |
Install engine reads the dependencies from package.json with a fall back to the previous way when not available | This is a product update. | |
|
Application Manager PRB2022268 |
The application manager sys_app_version displays duplicate records for the same application and version, which is causing the app to be 'Installation blocked' | As part of the AI testing, it's been observed that the app installations are blocked. The sys_app_version displays duplicate records for the same application, which is causing the app installations to be blocked, despite the app versions being available as well as the license checks having successfully completed. |
Expected behavior: It should have only one record for that app and a specific app version. Actual behavior: It has multiple records for the same app and app version. |
|
Application Manager PRB2057729 |
Users can't publish custom-scoped applications after upgrading to Zurich or Australia |
Refer to the listed KB article for details. |
|
|
Asset Management Common PRB2024372 |
Related lists aren't rendered in Hardware Asset Workspace despite existing in an configuration | Certain related lists such as 'Hardware', 'Software licenses', 'Bundles', and 'Other' assets aren't displayed in Hardware Asset Workspace even though they are present in the Workspace configuration. Analysis confirmed that the related lists exist in the latest configuration (physical_asset_workspace view) and are conditionally loaded. The issue results in only a subset of related lists being visible in Hardware Asset Workspace while others remain hidden. | |
|
Asset Management PRB2025075 |
A catalog task isn't created in Hardware Asset's refresh flow | There's similar issues with the other flows as well, like transfer order, transfer order line, and contract approval. |
Refer to the listed KB article for details. |
|
Asynchronous Message Bus (AMB) PRB2040279 |
Add bearer token authentication support to Asynchronous Message Bus (AMB) client library | This is a product update. | |
|
Authentication Factors PRB2037251 |
Update interactions post-identification and authentication | The 'Interactions' table has only 'Guest' resolved. It should have the user reference resolved post-identification and authentication. | |
|
Authentication Factors PRB2066684 |
Match KB identification phone numbers are ignoring special characters | Questions with the category 'phone number' aren't matched against formatted stored phone numbers during voice agent identification flow. | |
|
Automated Test Framework (ATF) PRB2012913 |
Tests fail with an error: 'Timed out waiting for intent feedback <Intermittent, slow loading forms, SAP>' | When Automated Test Framework (ATF) sends an intent to the UXF framework, the intent is received by UXF but is silently terminated/consumed without any feedback being returned to the caller. There's no success response, failure response, error message, or 'action not available' status sent back. Because of this, ATF can't determine whether the request failed due to unsupported actions, missing configuration, processing errors, or temporary issues. This prevents ATF from performing retries, fallback handling, or proper error recovery. | |
|
Automated Test Framework (ATF) PRB2017949 |
There's stuck execution trackers due to Automated Test Framework (ATF)'s new feature metadata tracing | For invalid metadata table names in sys_traced_metadata records, the generateMissingPayloadHashes throws an error and causes the final payload hash calculation execution trackers to be stuck. |
Observe that the sys_traced_metadata records truncate the long table name (sys_traced_metadata records save table names up to 40 characters whereas metadata table names can be up to 80 characters in length). Observe at the end of the test, there's stuck sys_execution_trackers while generating payload hashes for the sys_traced_metadata records because the truncated metadata table name is invalid. It thus throws an error. |
|
Business Calendar Filter Options PRB1977276 |
Filter values included with the 'Fiscal Calendar' (com.snc.fiscal_calendar) plugin aren't translated | Filter values included with the 'Fiscal Calendar' (com.snc.fiscal_calendar) plugin aren't translated when users change their language preferences. If a user switches to French (Canada), the filter value 'Next 3 fiscal months' should be translated as 'es 3 prochains mois fiscaux'. However, if a user switches to French (Canada), the filter value 'Next 3 fiscal months' is actually translated as '3 Fiscal Months suivant'. There are multiple other filter values included with the plugin that are affected. |
Notice that the filter value still displays some of the text in English. |
|
Canonicalization Data Services (CDS) PRB2053470 |
Data uploaded to cds_server_staging table is blocked within instances | This issue occurs in instances where the property 'glide.cmdb.canonical.URL' is set to https://<instance_name>.service-now.com/ and ends with '/'. Unfortunately, that is the base instance value, and it affects the upload portion of CDS. | |
|
Case and Knowledge Management for HR Service Delivery PRB2023216 |
Ship the required RCAs per the analysis result | Also, analyze those RCAs for which the analysis result said not to ship. Trigger automation and verify the result if there are any failures. | |
|
Case and Knowledge Management for HR Service Delivery PRB2023219 |
Ship the required RCAs as per the analysis result | ||
|
Case and Knowledge Management for HR Service Delivery PRB2025681 |
Due to 'getRefRecord', a RCA is generated in the Oracle HCM job execution that should be marked as 'Allowed' | Due to the use of 'getRefRecord' in the script include, a RCA record is generated with the source scope as: 'HR Service Delivery integration with Oracle HCM'. the target scope as 'Human Resources: Core', the target as: 'Table: HR Profile', and the operation as 'Read' after running the Oracle HCM job. This RCA should be marked as 'Allowed' and pushed to the repo. |
After some time, the RCA record is generated when 'Job Transform Map' starts running. This RCA is created by the source 'Script Include: OracleHCMJob TransformHelperSNC' where 'getRefRecord' is used. |
|
Case and Knowledge Management for HR Service Delivery PRB2028299 |
In Platform Analytics, an ACL isn't letting an admin user modify or create data visualizations in dashboards or data visualizations | When editing any visualization in a dashboard with the sn_hr_er_case table as a data source, the visualization can't access its data source. As a result, metrics are turned off and can't be edited, preventing updates or modifications to the visualization. There is error: 'You don't have access to the data source used in this visualization'. |
Refer to the listed KB article for details. |
|
Case and Knowledge Management for HR Service Delivery PRB2055197 |
In Alumni Center, update RCAs in HR Core for the getRefRecord() for Australia | ||
|
Change Management PRB2035555 |
The 'All' filter on the 'Create Change' page doesn't display all standard change templates when a template has no category or catalog | When the 'All' filter is selected for standard change templates on the 'Create Change' page, not all templates are displayed. This is because one template has no category. The null category errors the 'can category be read by user' check. | |
|
Change Management PRB2035924 |
Standard changes created from a problem aren't linked to the parent task | The issue is reproducible if users untick the 'Two step' checkbox under and then perform . A standard change created from a task (incident/problem) aren't linked to a parent task. If users Check Conflicts before saving a child change from a project requested item, it won't attach the change to the parent item. | |
|
Change Management PRB2052987 |
NewChangeRedirectProcessor only checks the system-wide glide.ui.polaris.experience property and ignores per-user glide.ui.polaris.use preference when deciding Next Experience redirect for Create Change | The file app-itsm/glide-service-mgt/ src/main/plugins/ com.snc.change_request/ update/sys_processor_ 0af16f2d53631010 34d1ddeeff7b12b6.xml (NewChangeRedirectProcessor, path new_change_redirect), line 76: var polarisEnabled = 'gs.getProperty('glide.ui.polaris.experience', false) === 'true';' — only reads instance-wide sys_property, ignores per-user preference glide.ui.polaris.use (sys_user_preference table), the documented mechanism for per-user Next Experience toggle. The user opted out at a user level, but still was redirected into Next Experience's create-change flow when the system property is on. polarisEnabled check should account for both glide.ui.polaris.experience (system) and glide.ui.polaris.use (user preference) — not the system property alone. |
Expected behavior: The redirect respects the user-level opt-out and goes to sn_chg_model _ui_landing.do (UI16). Actual behavior: The redirect goes to now/change-management/create-change/ (Next Experience), ignoring the user preference. |
|
Change Management PRB2053039 |
In the 'Change risk assessment' answer generator skill flow, replace the Now Assist terminology with Otto rebranding | The suggestion message should contain 'Check answers generated by AI for accuracy'. |
Observe that the suggestion message doesn't contain 'Check answers generated by AI for accuracy'. |
|
CMDB Identification and Reconciliation PRB2021886 |
Null dbquery results must be preserved as null instead of wrapped |
Run a payload for a non-existing table that has a sys_id in the payload. Where encryption wrappers are constructed, dbq.execute() would normally return null when querying this non-existent table. Now, code is wrapping the null. |
|
|
Column Level Encryption PRB2005360 |
On an encrypted HTML field, getElement(fieldName) returns a GlideElement with a value of 'null' instead of an empty string (''), causing the condition ge == null to evaluate as true | The field value conversion logic checks for encryption before validating whether the value exists. When encryption is enabled on an empty field, the system attempts to process a null value through the encryption path, which returns the literal string 'null' instead of handling it as an empty value. | |
|
Condition Builder PRB2054935 |
Create a sys property to determine the Glide version for condition builder | This is a product update. | |
|
Configuration Management Database (CMDB) PRB1994587 |
A race condition between IRE LazyWriter and Deletion Strategy causes the configuration item (CI) state to flip incorrectly | A CI's state is flipping from installed to stale during Discovery (delete strategy execution). A race condition occurred between IRE's asynchronous batch update of the last_discovered field using 'db.executeLazy()' and the execution of the Deletion Strategy. The LazyWriter delay caused the Deletion Strategy to process stale 'last_discovered' values, marking valid CIs as retired despite their presence in the payload. | |
|
Configuration Management Database (CMDB) PRB2017559 |
The health configuration cache is ineffective due to a shared cache eviction | The getHealthConfiguration() method in HealthConfigManager.java is not getting effective cache hits. The current implementation caches per (metricSysId + className + domainId) key, creating a few hundred cache entries. Since this is a shared cache, entries get evicted before they can be reused, resulting in repeated DB queries for records that never change during processing. |
Observe in the code path that the cache is rebuilt every time there is an eviction. The caching path is controlled via sys_property and only applies to the non-domain path. |
|
Configuration Management Database (CMDB) PRB2020295 |
INSERT_NOT_ALLOWED_FOR_SOURCE incorrectly classified as a partial error causes the cmdb_ire_partial_payloads table to bloat and an out of memory (OOM) error | When an IRE data source rule blocks inserts for a class and data source, affected records are incorrectly saved as partial payloads. Since the block is permanent, these partial payloads can never complete — each retry creates a new entry, causing the cmdb_ire_partial_payloads table to grow unboundedly. If the partial payload contains a large number of related or lookup items, this can also lead to OOM on app nodes. | |
|
Configuration Management Database (CMDB) PRB2021367 |
Implement totals calculation for the group view when applying a class filter qualifier configuration | ||
|
Configuration Management Database (CMDB) PRB2026628 |
getRefRecord() scoping bypass due to directive changes | ||
|
Configuration Management Database (CMDB) PRB2030304 |
OrphanProcessor skips CIs and reprocesses records after batch timeouts due to unordered HashMap iteration | When the CMDB Health orphan metric job times out MID-run on large datasets, it saves an incorrect resume position and silently skips CIs on the next run. As a result, orphan CIs appear healthy in the dashboard even though they are actual orphans, leading to inaccurate health scores. |
|
|
Configuration Management Database (CMDB) PRB2037178 |
A relationship editor (child) entry incorrectly displays a '*' suggested marker when only the parent direction is configured in cmdb_rel_type_suggest | After upgrading from Yokohama to Australia, the CI relationship editor's 'Suggested relationship types' list displays both the parent and child directions of a configured suggested relationship with the '*' suggested marker, even when only one direction was configured in the cmdb_rel_type_suggest table. For example, a cmdb_rel_type_suggest record is created with base_class = Windows Server, dependent_class = Business Service, and direction Connects to (parent). When the relationship editor is opened for a Windows Server CI, the list shows two entries instead of one: * Connects to::Connected by (Parent) and * Connects to::Connected by (Child). Both entries appear with the leading *, suggesting both directions are configured. Only the (parent) direction was actually configured. Users selecting from the suggested list can't distinguish which direction was the configured one. Because the list is sorted alphabetically and the (Child) entry sorts before (Parent), the misleading default selection can result in CI relationships being created in the inverse direction of the customer's intent — silently introducing incorrect CMDB data. The * suggested marker should only appear on the direction that is actually configured in cmdb_rel_type_suggest. The (Child) entry for a parent-only suggested relationship should either not appear in the suggested-marker group, or appear without the * prefix. |
Expected behavior: Only the added suggested relationship from one direction is expected. Actual behavior: Observe two relationship choices for the relationship. |
|
Configuration Management Database (CMDB) PRB2052583 |
References to 'Now Assist' for the duplicate CI remediator should be renamed to Otto | ||
|
Connections and Credentials PRB2034770 |
A scoped app is unable to update the http_connection record | Scoped applications need to update http_connection records that they themselves created and own. Because the table-level ACL blocks all cross-scope writes, there's currently no supported path for a scoped app to modify its own connection records. The http_connection table is a platform (global) table whose cross-scope access policy grants only read access to all application scopes. In the earlier ServiceNow-managed scoped app flow, Claroty CTD via Service Graph Connector relied on the existing platform-owned Connection and Credential creation path to create http_connection and related credential records. The available scriptable sn_cc.ConnectionBuilder APIs cover create scenarios such as createConnectionAlias and createConnectionAndCredential, so the absence of a scoped update path didn't surface when the use case was limited to creation. |
Expected behavior: It should be able to update the connection record for the child sys_alias's http_connection record. Actual behavior: Updating on http_connection isn't allowed from any scoped app due to tables's cross-scope access policy. |
|
Content Experiences PRB2036902 |
A change in HRApprovalAccessUtilsSNC causes schedule content approvals to fail without a new RCA |
Expected behavior: The schedule is rejected as normal. Actual behavior: An RCA error occurs. |
|
|
Content Experiences PRB2054955 |
RCA for app-ex-ai-agents in Content Publishing for the getRefRecord directive | ||
|
Contract Management PRB2040201 |
Assets covered on a contract aren't added through an Multiple Record Associator (MRA) pop-up | In the 'add action' over MRA pop-up, there's a slight change by the platform. It is now performing a GlideRecordSecure insert instead of GlideRecord. It is validating for create and write ACLs on clm_m2m_contract_asset.asset and clm_m2m_contract_asset.contract fields. There's ACLs where it allows the respective operations only if they are blank. This is clearing out the Contract and Asset field values during creation. So, records which are created don't have these fields and aren't displaying in the related list. | |
|
Contracts Core PRB2036700 |
Add the needed RCA as part of the getRefRecord() scoping bypass directive changes | ||
|
Conversational Appointment Booking PRB2054247 |
True-up Conversation Appointment Booking for GetRefRecord directive changes | After making the required changes as part of the directive, all the three flows (schedule an appointment, reschedule an appointment and cancel an appointment) should work when the caller scope access is restricted. | |
|
Customer Operations for Customer Service Management PRB2035611 |
Fix GetRefRecord scoping bypass | On CSManagementUtils, guard the getRefRecord() result before calling getLabel() to prevent an error when a reference field has no associated record. Also, on CSQueryBRUtil, add a null check on entityGR before calling isValid() to prevent an error during dot-walked field validation. | |
|
Customer Service Case Action Status PRB2011771 |
Keep the 'Major Case' related list consistent in app-csm-action-status and app-major-issue-management | If users reinstall or upgrade app-csm-action-status again after Major Case is installed, the related list on Major Case is different. The newly added-in app-major-issue-management is gone. | |
|
Customer Service Management PRB2002976 |
An advanced qualifier reference that uses 'current' isn't functioning as expected in CSM Workspace | Advanced reference qualifiers that rely on the 'current' object fail when templates are applied in Workspace. However, the same functionality works as expected in 'Classic UI (UI16)'. During template application in Workspace, the platform passes corrupted or incomplete serialized data to 'GlideRecordEncoder.decode()'. As a result, the current GlideRecord is returned without field values. |
Refer to the listed KB article for details. |
|
Database Persistence - Data Access PRB2013282 |
Columns are created with a 'u_' prefix | After TableSchemaManager .alter().execute() adds a column, TableDescriptor returns the new column but the column name is different from what was supplied. The new column was created with a 'u_' prefix in the column name. This behavior is different from table creation, where columns are created with exactly the same name supplied for column_name. |
Expected behavior: Create a column exactly as specified. Actual behavior: It adds a 'u_' prefix to the column. |
|
Database Persistence - Data Dictionaries PRB2050936 |
Let the 'Table Management' Java API create a table/column in a scope without a scope prefix | MetricBase must create tables in the DEX scope without applying the scope prefix, as it applies the mb_ prefix to metricbase table. The API should be changed and require a scope object by default. |
Use the TableManagement Java API to create a table in any custom scope. Observe that a scope prefix is added to the table. |
|
Database Persistence - Data Scale PRB1942731 |
If sequences exist to reduce redundant queries, SequenceAtomicCounter.get could cache | ||
|
Database Persistence - Graph PRB2026586 |
toLower() and toUpper() functions aren't supported in WHERE and RETURN | After creating a query with GraphQueryBuilder, users of GraphQueryBuilder API should be able to get the encoded query representation as a transferrable serialization of the query. Cypher's toLower() and toUpper() functions aren't supported anywhere in the builder — neither in WHERE predicates nor in RETURN projections. | |
|
Database Persistence - Graph PRB2026589 |
COUNT(DISTINCT x) can't be represented with GraphQueryBuilder API | After creating a query with GraphQueryBuilder, users of GraphQueryBuilder API should be able to get the encoded query representation as a transferrable serialization of the query. Aggregate('COUNT', x) only ever emits COUNT(x). There's no way to express COUNT(DISTINCT x), which is the only correct answer when multiple paths can reach the same node. | |
|
Database Persistence - Graph PRB2026590 |
ORDER BY isn't stored in Encoded QueryModel | After creating a query with GraphQueryBuilder, users of GraphQueryBuilder API should be able to get the encoded query representation as a transferrable serialization of the query. RETURN alias — the AS clause is dropped when using buildEncodedQuery(), so any consumer of the encoded query has no way to know what column name the user asked for. ORDER BY / LIMIT / SKIP — these have no representation in QueryModel at all, so they're dropped whole on round-trip. | |
|
Database Persistence - Graph PRB2040734 |
Sys_class_name doesn't come as property from getForTables | ||
|
Database Persistence - Graph PRB2051205 |
Inline node properties in the cypher are dropped in the encoded query when using with useCypher() | If there are inline properties in the cypher passed to useCypher, the returned encoded query doesn't contain that query. | |
|
Database Persistence - Graph PRB2052676 |
Cache flushes are triggered, even when the cache is not used/populated | The number of cache flush messages for the table 'cmdb_rel_ci' is in the 80 million+ range every hour. In a way, it's making 80 million inserts into the sys_cache_flush table. 'cmdb_rel_ci' is paired with 'graph_cmdb_rel_type_cache'. The cache graph_cmdb_rel_type_cache isn't enabled, but the cache pairing is still in a static block and is active. | |
|
Database Persistence - Graph PRB2053774 |
Support initializing GraphQueryBuilder with a cypher query string via the JavaScript API | This is a product update. | |
|
Database Persistence PRB2029202 |
RaptorDB has an auto-increment column reset with a '0' value |
Refer to the listed KB article for details. |
|
|
Database Persistence - WDF PRB1931544 |
Users should be warned/blocked from setting up a reference field that is ineligible | As of Australia, it currently enforces the reference key assignment only in the WDF Hub mapping page and not on sys_dictionary or sys_db_object. When creating/editing the remote table through the hub, there's a method called 'com.glide.datafabric. schemamapping. RemoteTableDef#validateReference'. This method verifies that the reference table and the reference key are valid. If the reference table table doesn't exist/cannot be accessed, or if the reference key's data type is not in the list of allowed types, it blocks the table from being created/updated and throws an error message to the user in the UI. Following this approach, it can add the null value check in this method and throw the appropriate error message to the user. | |
|
Database Persistence - WDF PRB2038399 |
There's a pagination issue |
See that the limit isn't applied to the query. |
|
|
Database Persistence - WDF PRB2040034 |
In Australia, all database columns that start with a number have 'yy_' added to the start of the name, causing a syntax error | When querying a table in the Australia release and the DB column starts with a number, it adds a 'yy_' to the SQL query, breaking the collection of data and making a list view show nothing. Error: 'Syntax Error or Access Rule Violation detected by database (ERROR: column x_snc_potatofarm _0_farmers0.yy _1stname does not exist. Hint: Perhaps you meant to reference the column 'x_snc_potatofarm _0_farmers0.1stname'. Position: 259)'. |
See that its blank, but the count displays that there's records. |
|
Database Persistence - WDF PRB2050923 |
Provide unified server-side API's fetch primary key details for Data Fabric and standard ServiceNow tables | ||
|
Database Persistence - WDF PRB2052538 |
Data interface tables are unable to fetch data with remote table as the implementation | Current remote table support requires that the vtable is provider backed. |
Expected behavior: The table displays the data. Actual behavior: No data is displayed. |
|
Data Fabric Table Glide Services PRB2018015 |
The Zero Copy Connector (ZCC) Hub UI becomes unresponsive/times out if a large number of schemas and tables are retrieved | When large amounts of schemas and tables (~20k) are retrieved in an API call, the function 'refreshSchemasAndTables()' takes a long time to execute compared to the underlying persistence API 'GlideDataFabric EngineService. getInstance(). getAllTablesForCatalo'. This is on the magnitude of 2.25 seconds vs 40 seconds. |
Expected behavior: The 'Data Assets' page loads schemas and table and is responsive. Actual behavior: The 'Data Assets' page times out during loading. |
|
Data Privacy (Classic) PRB2031050 |
The 'Run Once Data Privacy' job takes days to complete after segment creation on large tables (300M+ records) |
Expected behavior: The job should complete within a few hours after segment creation (dp_work_item). Actual behavior: The job takes days to complete. |
|
|
Data Privacy (Classic) PRB2031271 |
Rollback of a scheduled anonymization job doesn't refresh the activity stream UI for Journal fields (work_notes, comments) | When a scheduled Data Privacy anonymization job is rolled back, the Journal field values (work_notes and comments) are correctly restored in the sys_journal_field table. However, the activity stream UI continues to display the anonymized values because sys_activity table (used by Service Operations Workspace) and sys_history_set/sys_history_line (used by UI16 List and Form views) aren't refreshed upon rollback. The Description field doesn't exhibit this issue. This is inconsistent behavior introduced when journal type anonymization support was added. |
Observe that the activity stream still displays the anonymized values even though the database was reverted. |
|
Data Privacy (Classic) PRB2032551 |
LLM prompt creation takes ~800 ms, though it used to be 200-300 ms | The root cause was determined as the introduction of 'Sensitive Data Trail system processors', which had a large default timeout (20 seconds). The processors were scanning all 32 data patterns on an prompt of ~130K characters, taking an additional ~400 ms in latency. |
Refer to the listed KB article for details. |
|
Data Privacy (Classic) PRB2039058 |
Real time anonymization (RTA) for child tables separate from parent tables | This is a product update. | |
|
Data Privacy (Classic) PRB2039332 |
Increase the maximum size limit of the incoming request to Data Privacy APIs from 1M to 10M | The Data Privacy API only supports up to 1M character long prompts. However, a simple prompt on Virtual Agent may result in prompts larger than 1M characters, which causes the prompt's response to get stuck. Prompts of extra large size should be processed by the Data Privacy API. | |
|
Data Privacy (Classic) PRB2040595 |
Post-clone anonymization of child workers is incorrectly cancelled due to parent job type mismatch | The post-clone data privacy anonymization job uses a parent-child architecture; one parent job distributes work to multiple child worker jobs that process tables in parallel. The issue is in how the child workers look up their parent job record. In the post-clone flow, the parent job is stored in a different table type than the child workers' lookup code expects. Because the lookup fails with 'data protection job is not valid,' each child worker is cancelled immediately. | |
|
Data Product Backend Services PRB2027724 |
Users are unable to edit reference type details on DTT when editing a data interface | There's no error, but it doesn't work. | |
|
Data Snapshots PRB1995292 |
A data snapshot indicator timeseries API returns empty data instead of the expected single-span score when the request startTime and endTime are the same date |
Expected behavior: The API returns the single-span score for the calendar period that covers the requested date. Actual behavior: The API returns an empty data array — the single span covering the requested date is silently truncated/ignored. |
|
|
Date Picker PRB2029576 |
There's a regression on GlideDateTime.setDisplayValue | Any script that calls setDisplayValue() with an ISO-format string (yyyy-MM-dd HH:mm:ss) on an instance where glide.sys.date_format is set to anything not in FORMAT_LIST (for example, dd-MM-yyyy, MM/dd/yyyy, etc.) produces incorrect dates in Zurich. |
Refer to the listed KB article for details. |
|
Decision Graph for Context Engine (Family) PRB2056900 |
Glide changes for machine learning integration needed for Distinguished Encoding Rules (DER) mining | This is a product update. | |
|
Decision Graph for Context Engine (Family) PRB2056902 |
Instrument 'Ask For' approval action Instance Observer (IO) during flow execution for context graph tracing | This is a product update. | |
|
Decision Graph for Context Engine (Family) PRB2056905 |
Rate-limited flow trace eligibility evaluation | This is a product update. | |
|
Decision Graph for Context Engine (Family) PRB2056908 |
Scaffolding for the decision-graph module | This is a product update. | |
|
Decision Graph for Context Engine (Family) PRB2056910 |
Cache decision weightage for a low-latency runtime lookup | This is a product update. | |
|
Decision Graph for Context Engine (Family) PRB2056912 |
Adding or deleting a feature dictionary should make mined patterns inactive | This is a product update. | |
|
Declarative Actions PRB2055766 |
The related list UI actions to update rows are failing on m2m if the field being updated is read-only | The UI action calls AssetAutomationAPI. completeAssetDisposalTask. This has current.update, which fails. If the read-only flag is removed from the Stage field in the sn_hamp_m2m_hw _asset_disposal table, then it works. |
Observe that the action fails to update. |
|
Developer App Shell PRB2052364 |
Fix GetRefRecord scoping bypass | ||
|
Developer Sandboxes PRB2054240 |
The scheduler claim mutex (sys_mutex) isn't sandbox-aware and forces DSB nodes to contend for a cluster-wide lock, causing scheduled-job pickup delay |
|
|
|
DevOps Change Velocity PRB2052626 |
GetRefRecord scoping bypass for the 6.2.1 release | ||
|
Discovery PRB2015204 |
Update the IP address to retired when the network interface card's (NIC) is updated to 'Retired' | In the IP-Based Discovery plugin, the business rule (BR) 'Discovery - Set IP Address to Absent' only sets the IP address to absent. When the NIC is retired, it doesn't set the IP address to 'Retired', leaving orphaned or outdated IP addresses. The BR should handle the retired scenario as well. | |
|
Discovery PRB2023232 |
Some Sybase processes running on Linux don't meet the classifier conditions to trigger the sybase pattern, resulting in an incomplete Discovery | The Sybase Process classifier has these conditions: Command contains 'dataserver', parameters contains 'sqlsrvr', and parameters matches regex '-[Dd]\s+'. The regex breaks down as follows: -[Dd]\s+ matches a literal hyphen, [Dd] matches either uppercase D or lowercase d, and \s+ matches one or more whitespace characters (space, tab, etc.). It matches a hyphen, followed by D or d, followed by at least one space. If a process running returns a parameters string starting with ['parameters':'-d/data/master.dat] this doesn't meet the condition for this regex and the pattern doesn't trigger, despite the process being a valid Sybase process. | |
|
Discovery PRB2029641 |
Update Store app true-up for ITOM Licensing Store app 3.13.0 | ||
|
Discovery PRB2059465 |
Discovery patterns fail to launch for sub-accounts/datacenters when glide.discovery. retire_stale_accounts is turned on | In Cloud Discovery, schedules configured to discover all sub-accounts under a master account, with enabling glide.discovery.retire_stale_accounts and glide.discovery.cdu. auto_refresh_sub_accounts _and_ldcs , Discovery patterns fail to launch for sub-accounts/datacenters (only the service account discovery launches). | |
|
Document Management PRB2056202 |
Replace 'Now Assist' and 'Sparkle' with 'ServiceNow Otto' in screenshots, images, and icon assets | All UI visual elements should be updated across SmartDocs, Doc to Voice, and SmartRedact to reflect the ServiceNow Otto branding changes. This includes both images/screenshots and icon assets. | |
|
Document Management Services PRB2039067 |
Smart redaction with redaction codes and notes for documents | This is a product update. | |
|
Document Management Services PRB2056919 |
SmartDocs enablement in UI16 and ServicePortals | This is a product update. | |
|
Document Viewer PRB2056915 |
Support in document viewer for the doc to voice agent | This is a product update. | |
|
Dynamic Schema PRB2037531 |
There's failing DynamicSchema aggregate ITs | In Australia, in the db-dynamic-schema-test package, the following ITs are failing: DynamicSchemaAggregatesIT and DynSchQueryAggregates*IT. The expression added to the GROUP BY isn't listed in the SELECT clause. | |
|
Email Notifications PRB1948259 |
SelectAll and Delete buttons aren't working in Email Viewer |
Expected behavior:SelectAll should select all the attachments. The Delete button should delete the selected attachments. Actual behavior:SelectAll isn't selecting all the attachments. The Delete button isn't functioning properly. |
|
|
Email Notifications PRB2001946 |
The RemoveAll button shouldn't be present in the email viewer |
Expected behavior: The RemoveAll button shouldn't be present in the email viewer. Actual behavior: The RemoveAll button is visible in the email viewer. |
|
|
Email Notifications PRB2019162 |
Introduce batch support for subscriptions in NotificationRecipientBuilder | Notification events are taking a longer time to process (5-7 seconds). |
Expected behavior: The notification should be sent to all recipients without much delays. Actual behavior: The notification is generated but its processing consumed a significant amount of time. |
|
Email Notifications PRB2036855 |
Agent workspace case emails display multiple 'To' names if the email recipient has multiple contact records | If a contact has more than one contact record in the system (same email address), the system displays the names of all the contacts when viewing an email sent to that person on a case. |
Expected behavior: Only one contact is displayed in theTo field. Actual behavior: TheTo field lists all the contacts with the same name and email address. |
|
Email Notifications PRB2050616 |
Email client APIs shouldn't be public | ||
|
Embedded Help PRB2056339 |
Replace all occurrences of 'Now Assist' text with 'AI' across the Help Center and embedded help |
Observe that 'Now Assist' text is displayed for AI-generated help articles. |
|
|
Employee Profile PRB2011497 |
There's a dot-walking RCA error when moving from the 'Learning' scope to the 'Employee profile' scope | An attempt to dot-walk to table sn_employee_profile present in the 'Employee profile' scope from the 'Learning' scope was blocked. The reference field employee belongs to the sn_lep_challenge table. The operation type was: GET_REF_RECORD. | |
|
Employee Profile PRB2021875 |
getRefRecord() changes for Opportunity Marketplace (OPM) and TD Core in Employee Profile | ||
|
Event Management PRB2034593 |
An event field mapping rule from the type 'Map field' using regex causes an error in event processing | When having an event field mapping rule from type 'Map field' using regex and a matching event is processed, if the Additional info field contains the source field JSON as the value, the event finishes in an error state. |
Expected behavior: Event processing should complete successfully without errors and an alert should created. Actual behavior: Event processing fails, and the event is moved to the error state. |
|
Event Management PRB2052731 |
Remove the step in mixed grouping that allows alerts to join existing groups before the grouping definitions are run in order | The mixed grouping engine handles alerts in two steps. First, it checks whether an alert can join a group that already exists—without following the order the definitions are set up in. After, it goes through all the definitions in their proper order, where it's also allowed to create new groups. The first step disregards the configured definitions order; as a result, an alert can end up in a group created by a lower-priority rule instead of a higher-priority definition. The definition order exists specifically to control which definition gets to group an alert first, so skipping it defeats the purpose of the order. In conclusion, the two-step process should be removed. The mixed grouping engine should go through the definitions once, in order. For each definition, it should allow alerts to either join an existing group or create a new one. |
Expected behavior: A3 and A4 form a new group created under Definition A, because Definition A comes first in the rule order. Actual behavior: A3 and A4 are added to the existing Group B. |
|
Event Management PRB2053524 |
Azure monitor for 'Issue' integration, and UI enhancements in Express List and alert record | This is a product update. | |
|
Field Service Task Bundling PRB2064856 |
Dynamic bundling creates unassigned bundles |
|
|
|
Flow Engine PRB1943894 |
Looping over records using 'built in iterator' is significantly slower than the normal GlideRecord iteration | Flow engine should take a similar amount of time to iterate over records and script or Java when no quiescing occurs, but run times are 16.8x - 73.6x slower. | |
|
Flow Engine PRB2001686 |
There's multiple queries to fetch a flow plan record | When the plan isn't cached, it takes two queries. When run again with the plan already cached, it takes only one query. | |
|
Flow Engine PRB2001694 |
Reduce multiple sys_flow_context select queries | In GlideRecord, before updating, it queries to get the DB state of the record to populate the 'previous' object for business rules. This can be avoided if 'fPopulatePrevious FromMemory' is set to true. It can be set by calling GlideRecord:: setPopulatePrevious FromMemory. |
Observe that there is 'select query' before every update. |
|
Flow Engine PRB2029887 |
Flow engine is ~200x slower than the equivalent script on 1000 elements, as eager Val.displayValue dominates input wrapping for large collections | A flow that takes a large ComplexObjectCollection as input executes ~200x slower than the equivalent Rhino background script doing the same work. For a 1000-element ForEach input, per-invocation wall-clock is ~143 ms (vs ~0.7 ms for the equivalent script). The slowdown scales with the input collection size; small inputs are affected less, but flows that pass large lists as input are heavily impacted even on the user-default execution path (reporting off, trace off). There's no functional break as the flow produces correct output, but the per-invocation cost is dominated by work that the engine never reads on the default path. | |
|
Flow Engine PRB2034134 |
'Require' statements throw a JavaScript exception error in Australia's Flow Designer | ||
|
Flow Engine PRB2038121 |
Restore the Flow Engine FlowObjectDef cache | This removes redundant sys_hub_action _type_definition read per quick-action execution. | |
|
Flow Engine PRB2054195 |
The 'ForEach' iteration on GlideRecord does eager canRead checks on all the records |
In GRProxy, before starting the loop it internally loops over all the records in GlideRecord and collects sys_ids and skipped counts by doing a canRead check. |
|
|
Flow Engine PRB2054201 |
Introduce a cache in FlowRecompileChecker | The eviction policy is too broad for execution settings in ProcessPlanCache. Any change to any execution setting evicts all plans but should only effect one. Instead, it should evict a process plan directly when its execution settings change. | |
|
Flow Engine PRB2062691 |
Action Fabric flow complexity is insufficient for pricing estimation exercises | The complexity_bucket attribute contains values grouped into bucket_0_10, bucket_11_50, and likely no other buckets. |
Expected behavior: The exact complexity of the MCP flows are recorded. Actual behavior: The complexity_bucket attribute contains values grouped into bucket_0_10, bucket_11_50, and likely no other buckets. |
|
Flows (Family Channel) PRB2054449 |
Refactor all occurrences of 'Now Assist' in Flow Designer, Action Designer, and Flow Diagram to 'ServiceNow Otto' | ||
|
Flows (Family Channel) PRB2056022 |
Otto directive renaming for the call skill step plugin | The plugin name is being changed from 'Now Assist Skill' to 'AI Skill' (or 'AI Skill Step'). The step name is being changed from 'Call Now Skill Step' to 'Call AI Skill Step'. Also, the plugin and step description should be updated where applicable. | |
|
Global Ranking PRB2035527 |
Users aren't able to delete a scrum task from cross-scope |
|
|
|
Hermes (Family) PRB2026691 |
TCP connection establishment and SSL handshake occur every minute | TCP connection establishment and SSL handshake occur every minute even when the health check is skipped under the 150-second threshold. The unnecessary overhead should be remediated. | |
|
Hermes (Family) PRB2026695 |
Identify and eliminate duplicate health checks where two Hermes services point to the same Hermes cluster | Normally, it'd be expected that Glide apps would use different bootstraps. Given the special condition, when the Kafka bootstraps are the same, it should avoid the duplicate connections/healthchecks between the 2 services. | |
|
Hiring Experiences PRB2031986 |
The 'Last Month' option under 'My job requests' in the hiring portal displays data of requisitions created in the current month | For the 'Last Month' filter in the hiring portal, the UI displays the current month record because it's using >= beginningOfLastMonth(), which pulls in June (this month) records too. The platform's native filter uses sys_created_onONLast month, which is properly bounded to just the previous month. | |
|
Hiring Experiences PRB2057166 |
GetRefRecord scoping bypass fix | ||
|
Horizon Component Library PRB2052114 |
Replace the 'Sparkle' icon with the Otto Lottie animation in AI and loader experiences | ||
|
Horizon Component Library PRB2052172 |
Suppress console statements so browser tools aren't flooded |
View the 'Theme behavior' console output. The console output should only be logged when env = development. |
|
|
Horizon Empty State Component PRB2050333 |
Update ai-general illustration | The sparkle illustration should use the new Otto logo instead. |
Expected behavior: The empty state shows the Otto logo. Actual behavior: The empty state shows sparkles. |
|
Horizon Icon Component PRB2032851 |
Add the Otto icon to the library |
Expected behavior: See the new Otto logo. Actual behavior: The icon is missing. |
|
|
Horizon Icon Component PRB2050318 |
Update all 'Sparkle' icons | Icons with the Otto logo should be shown instead. |
Expected behavior: Icons with the Otto logo are shown. Actual behavior: Icons with sparkles are shown. |
|
HR e-signature PRB2035247 |
RCA for Content Experience | Specifically, eesign for getRefRecord directive. | |
|
HR Service Delivery PRB2014389 |
RCAs are generated for 'Populate Manager Reportee Count Using Eligible Users' and 'EmployeeHubOrg ChartReporteeUtilSNC' | During nightly test case execution, two RCAs are generated for the new scripts: - sys_script_include _a302f8807873 f250f877079523d275e1 and - sysauto_script_ 33a5e72453f7 b210f2ebff c230e5e69d. It is causing test failures. | |
|
HR Service Delivery PRB2021314 |
The Cancel UI action in an HR case checks for 'mandatory' after the case is canceled | The Cancel UI action is invoking hr_CaseAjax.cancelAction(). In this function, state and work notes are updated from the server script. Inside the callback function, there's g_form.save(), which checks the mandatory and saves the form. If the data is already saved from the server script, the system shouldn't check the mandatory. | |
|
HR Service Delivery PRB2035482 |
getRefRecord updates to Australia | ||
|
HR Service Delivery PRB2052205 |
In Australia and Zurich, RCAs generated in HR Core and HR Employee Relations must be added back to track/HR | ||
|
HR Service Delivery PRB2052632 |
The header_config_* fields are missing from the sn_hr_core_service table in Zurich and Australia | header_config_* fields missing from sn_hr_core_service table in Zurich and Australia. |
Open a Zurich or Australia instance with the sn_hr_core and EC Core plugins installed. Observe that the header_config_* fields are missing from the sn_hr_core_service table. |
|
Identification and Reconciliation API PRB2028002 |
Fix three dynamic IRE UI messaging and wording issues and the system properties in the update folder | ||
|
Identification and Reconciliation API PRB2034883 |
Users can add or edit identification rules for hardware's child classes while dynamic IRE is enabled | If dynamic IRE is enabled, users shouldn't be able to see or edit identification rules on the hardware hierarchy. |
Observe that static rules are displayed and editable, even though dynamic IRE is enabled. |
|
Identity PRB1964703 |
A federated ID isn't generated for all the users in the instance | There's also instances where a federated ID isn't generated for some users even when they have a unique user_name and email. | |
|
Inbound API Integration Usage Framework PRB1988771 |
IPAccessListFilter handling for malformed IP addresses | Inbound REST API calls coming through proxy servers (x-forwarded-for header with multiple IP's) or malformed IP address can sometimes fail in Zurich and Australia instances. |
Refer to the listed KB article for details. |
|
Inbound API Integration Usage Framework PRB2034837 |
Record data egress usage for integration requests | This is a product update. | |
|
Inbound API Integration Usage Framework PRB2034838 |
Domain separation support for Inbound API Integration Framework | This is a product update. | |
|
Innovation Management PRB2055588 |
GetRefRecord scoping bypass for app-ppm | ||
|
Innovation Management PRB2055611 |
GetRefRecord scoping bypass for app-common | ||
|
Install Base Management Store PRB2059577 |
Install base items and sold products should support RAC fallback mechanism | The functions _skipFetchEntities and getQRfallbackRoles should be overridden in CSMRelationshipServiceSNC in CSMRelationshipService _InstallBaseRelatedParty to allow this fallback mechanism. | |
|
Instance Clone (Family) PRB2032595 |
Deactivate the 'Target Instance Validate' business rule (BR) on an instance table to support OAuth-based authentication of clone targets from the Clone Admin Console |
On any Australia instance, add a target instance through the Clone Admin Console. The instance is inserted into the table post-successful authentication, but there's an unnecessary BR that runs the authentication again to validate it. This BR was used in the legacy version of the clone and isn't required with the Store app. |
|
|
Instance Clone (Family) PRB2051479 |
Clone cleanup script fixes | ||
|
Instance Clone (Family) PRB2051483 |
In Clone Admin Console, declare v.2.2.4 to ensure that OAuth is used | ||
|
Instance Data Replication (IDR) PRB1940978 |
There's many IDR-DCTComparisonJobs on an instance | This is likely only a cosmetic issue and not hurting performance. Instances have at least one IDRDCTComparisonJob per node, which seems excessive. For instances with many nodes, this ends up being the majority of IDR jobs. There's only a few consumer jobs per instance (not per node). |
|
|
Integrated Email Client PRB2051938 |
A Now Assist reference in Email Client must be changed to Otto | This is a product update. | |
|
Integration Hub PRB2056938 |
Rename the 'Now Assist for Spoke Generation API Support' Glide plugin | ||
|
Integration Hub Spokes PRB2053392 |
Users can recover box webhook HMAC signing keys via timing oracle on JavaScript == comparison and forge events to trigger arbitrary subflows | This is a product update. | |
|
JVM at Scale PRB2032235 |
Memory watcher isn't logging active transactions in the Australia release |
Refer to the listed KB article for details. |
|
|
Knowledge Graph (Family) PRB2016914 |
Update the structure to keep the Knowledge Graph configuration file in the same folder as the released description version and dynamic configuration for the Install Server URL | ||
|
Knowledge Graph (Family) PRB2052948 |
Implement batch insert logic for affinity jobs to improve insert latency | This is a product update. | |
|
Knowledge Management PRB2022138 |
getRefRecord() scoping bypass update | It must ship an RCA for HR tables for the knowledge scope sn_km_gen_ai. | |
|
Knowledge Management PRB2031464 |
The Knowledge Base Article (KBA) is text not visible in the workspace | This issue occurs with custom templates that contain fields of mixed data types like HTML, string, date. |
Notice that it will open the kb_view page of the article, and renders the article content as empty. |
|
Knowledge Management PRB2033473 |
An article title isn't displayed in the Knowledge Article print view (sysparm_media=print) from Service Portal on the Australia release | An article title isn't displayed in the Knowledge Article print view (sysparm_media=print) from Service Portal on the Australia release due to a JavaScript error in KBViewArticle.jsdbx, while it works as expected in Zurich. | |
|
Knowledge Management PRB2054012 |
Rename app-common 'Now Assist' to Otto | ||
|
Knowledge Management PRB2054937 |
True up Store apps NAKM, KC, KCInWorkspaces and ECE | This is a product update. | |
|
Knowledge Management PRB2058947 |
Update versions for the base instance Knowledge Management apps to include Australia and Zurich fixes | ||
|
Knowledge Management PRB2060905 |
Updating versions for the base instance Knowledge Management apps to include Australia and Zurich fixes | There are fixes in app-knowledge-center, app-knowledge-gen-ai, app-kb-uib, and sn-enhanced-content-editor. | |
|
Legal Digital Forensics PRB2036701 |
Add the needed RCA as part of the getRefRecord() scoping bypass directive changes | ||
|
Legal Hold Notification PRB2055600 |
Add the needed RCA as part of the getRefRecord() scoping bypass directive changes | ||
|
Legal Matter Management PRB2036702 |
Add the needed RCA as part of the getRefRecord() scoping bypass directive changes | ||
|
Legal Request Management PRB2036703 |
Add the needed RCA as part of the getRefRecord() scoping bypass directive changes | ||
|
List Administration PRB2030898 |
The 'Selected stage' icon isn't applied when WorkflowIcons has already assigned a default icon |
See that workflow states are displaying as 'No workflow stages available'. |
|
|
List Administration PRB2044745 |
Now-record-list-connected sends encodedRecord as {} instead of '' | The variables contain 'encodedRecord': {} (empty object). It's treated as a non-empty, non-nil value, so the advanced qual is evaluated against an empty 'current' and wrong/empty results are returned. This is reproducible across base instances, but works correctly in Classic UI16. |
Expected behavior: EncodedRecord is '', so the advanced/dynamic qualifier is correctly skipped when no 'current' is available. This matches the UI16 template behavior. Actual behavior: The variables contain 'encodedRecord': {} (empty object). It's treated as a non-empty, non-nil value, so the advanced qual is evaluated against an empty 'current' and wrong/empty results are returned. |
|
List Administration PRB2053781 |
The new AI list badge in UI16 breaks list cell content wrapping | ||
|
List AI Indicators PRB2051786 |
The horizontal scroll for AI-tagged items in the groupedBy list is broken | When the user scroll to the right, the field isn't visible. | |
|
List AI Indicators PRB2055051 |
Update the Otto indicators in seismic workspace lists | This is a product update. | |
|
List AI Indicators PRB2055052 |
Update the Otto indicators in UI16 lists | This is a product update. | |
|
Manager Hub PRB2054008 |
In Manager Hub, add a null check when using getRefRecord() | ||
|
Mentoring PRB2056277 |
getRefRecord() scoping bypass for mentoring | ||
|
MID Server PRB2063491 |
'LinkedHashMap$Entry' objects connected to the LRU take a couple MB | These objects are from 'ecc_queue_authorization_policy'. |
Notice that entries of 'LinkedHashMap$Entry' for ecc_queue_authorization_policy have over 3MB for each entry. |
|
Mobile Experience for Field Service Management PRB2053984 |
Backport getRef changes to Field Service Management (FSM) Mobile | ||
|
Mobile Platform PRB2033559 |
Add a null check for using getRefRecord() in the script include | Enforce cross scope access restrictions when using GlideElementReference. jsFunction_getRefRecord(). |
Expected behavior: Access is denied, null is returned, and a violation is logged. Actual behavior: The call returns a valid record instead of null. |
|
Mobile Platform PRB2039101 |
A device pin on mobile devices can't be turned off for Government Community Cloud (GCC) users |
See that changing the device encryption enabled property doesn't turn off the pin. |
|
|
Mobile Studio PRB2034896 |
sn_maib app fails to auto-upgrade when installed | This is due to an incorrect app_id declaration in the oob-app properties file. |
Refer to the listed KB article for details. |
|
Multi-Instance Framework - Core PRB2063884 |
MIF Hermes doesn't refresh the cluster configuration when the local hermes_cluster_config has no primary or after a datacenter-rule change, causing stale/failed cluster resolution for remote owners | When instance A sends a MIF async message to instance B, it needs B's Hermes cluster details (datacenter + Kafka bootstrap servers). A keeps a saved copy in the hermes_cluster_config table and reads it in HermesProducerClient.getClusterInfoSet. Today that method only calls B's live endpoint (/api/now/hermes _cluster_info, tier-2) when A has no saved rows for B. Two gaps result: 1. Saved rows but no primary — if A has rows for B where no one is is_primary_for_service=true (scenario like only a single non-primary cluster row), the method does not refresh. And method ensureTopicLocationForInstance(String owningInstance) then finds primaryCluster == null and the send fails with 'No primary cluster found'. 2. Stale rows after a datacenter change — if a MIMIR rule change moves B's cluster to a new DC, A's saved rows are outdated but still look complete (they have a primary), so tier-1 returns them and A never re-discovers → messages Navigate to the old cluster. |
Expected behavior: A resolves B's current cluster details and sends to the correct datacenter. Actual behavior: A uses the old/incomplete saved config and sends to the wrong datacenter, or fails with 'No primary cluster found'. |
|
Multimodal Service (Family Channel) PRB2051440 |
On-demand MMS submission fails | The issue occurs on instances where the multimodal service URL is configured via sys_service_endpoint instead of the system property. |
Observe that the on-demand MMS submission fails. |
|
Next Experience Unified Navigation PRB2019091 |
If beyond the 5MB limit, a localStorage limit blocks headerMenuItems from being cached |
Notice that the menu request is made on each load because the object isn't cached due to being too large. |
|
|
Next Experience Unified Navigation PRB2053821 |
Update to Otto branding in Next Experience | This is a product update. | |
|
Now Assist in Virtual Agent PRB2056609 |
Change the Knowledge Graph (KG) defaults in NAVA and Now Assist Portal | Today, the KG default is User NLQ graph. That should be changed so the defaults are: In Now Assist Virtual Agent for natural language query, change the graph to Enterprise Graph (Small) and select the tag as 'VIRTUAL AGENT DEFAULT TAG'. In Now Assist Panel for natuaral language query, change the graph to Enterprise Graph (Small) and select the tag as 'NOW ASSIST PANEL DEFAULT TAG'. | |
|
Now Assist Nextwave Experience PRB2059502 |
Add sys_props for caching in sys_og_conversational _cache_configuration | If props are enabled on the instance, that should be reflected via cache service instantly. | |
|
Now Assist Nextwave Experience PRB2061245 |
SessionController shouldn't try to refresh AuthorizationInfoBundle, as this is done in the Glide handshake process | When a topic execution is initiated, the conversation ID isn't available in certain Glide log entries' context maps, which complicates troubleshooting across different trace IDs instead of a unified conversation ID. The conversation ID should be available in the cache and topic execution context map in the syslog table. | |
|
OAuth PRB2018183 |
The unallowed system property glide.oauth. jwt.token_request .honor_claim_keys is included in an upgrade payload, resulting in a misleading 'skipped' upgrade log entry | During a Zurich upgrade, the system property glide.oauth. jwt.token_request .honor_claim_keys (from com.snc.platform.security.oauth) appears as a skipped entry. This property is not allowed by design and therefore never loaded into sys_properties on user instances. |
|
|
OAuth PRB2052671 |
Support to create an OAuth entity record within the caller scope | This is a product update. | |
|
On-Call Scheduling PRB1975559 |
On-call contact information isn't visible for some users for some attempts | This issue only occurs when logged in as a user. | |
|
On-Call Scheduling PRB2034496 |
In a SMS action in a the subflow 'On-Call', the 'Check Assignment Response' doesn't use Notify | The 'On‑Call: Check Assignment Response' flow uses the legacy SMS send action instead of the Notify‑based SMS action. | |
|
On-Call Scheduling PRB2039960 |
The NotifyUtils check for notification devices should return empty when the ACL check is successful | ||
|
OneExtend PRB2041342 |
AI Summary card stays in perpetual loading state | This issue occurs for some Business Application records using the Record Summarization capability. There are no LLM calls and no errors. |
Observe that the summary is generated. It generates LLM calls and renders correctly. |
|
OneExtend PRB2056745 |
Guardian preprocess flow resolves getGeoRoutingDetails() multiple times per request in NowLLMIntegration GuardianProvider | NowLLMIntegration GuardianProvider. shouldUseGatewayService() and addLLMGatewayRoutingHeader() each independently call through to GeoRoutingServiceImpl .getGeoRoutingDetails() > resolveGeoRoutingDetails(). ShouldUseGatewayService() itself is invoked from multiple call sites across a single request's lifecycle (transformRequest, generateTrustBuilderInputs, tryLogTrustBuilderResults, and twice within getUrl()). None of these calls are memoized, so resolveGeoRoutingDetails() re-executes its full resolution logic (potentially including the licensing entitlement API call) on every invocation within the same request, even though the underlying geo-routing state can't change MID-request. |
Observe that resolveGeoRoutingDetails() executes repeatedly (up to six times found via code trace) instead of once per request. When the 0$ SKU entitlement isn't active, each of these calls re-invokes the expensive isEntitlementActive WithLicensingAPI() licensing call, since resolveGeoRoutingDetails() has no per-request memoization. Only the underlying getGeoRoutings() /getGeoRoutingConfigs() cache calls are cached via ADomainAwareCache. |
|
OneExtend PRB2056991 |
Log reasoning tokens for 3P providers and Now LLM | A new field, reasoning_token_count, naming is aligned to existing token fields. The field is added to the GenAI log table. The field is populated for reasoning-capable models across all supported providers. For non-reasoning models, or when a provider returns no reasoning count, the field defaults to zero (documented) rather than null-ambiguous. A single, documented convention is applied to stored token values: store the provider's raw output_tokens and reasoning_tokens separately such that reasoning_tokens ≤ output_tokens, allowing it to derive answer-only tokens as output − reasoning. Existing consumers of the log are unaffected, and total-token reconciliation still holds. | |
|
OneExtend PRB2057127 |
Multiple GenAI logs are created in skill chaining execution | OneExtend Execute and ExecuteSecure are missing the offGlideChainingEnabled flag. |
Execute a skill chaining. Observe that the Generative AI logs are created two times. |
|
OneExtend PRB2059503 |
Summarization records aren't displaying a proper response | Incident, Change, Case summarizations are failing with errors when users select the Summarize button: 'Summarization could not be completed because access to the base table Case was unsuccessful'. Error logs: 'Error sending to unified_short_url_active_1...Status 500 - [Internal Server Error] [{'success':false,'statusCode':429,'message':'Too many concurrent data insert operations in progress - additional rebuild request being ignored','timestamp':'2026-07-17T07:00:17.752637494Z','results':{}}]'. |
Refer to the listed KB article for details. |
|
Operational Technology Visibility PRB2031853 |
getRefRecord() scoping bypass for Operational Technology (OT) core and OT Service Management | ||
|
Performance Analytics PRB1802682 |
The score for average duration of a DB view is incorrect when compared with the list view for both data snapshots and classic Platform Analytics (PA) | A Glide record sets a default value of '0' for null values. Classic PA uses the Glide record. |
See that classic PA shows 11 hours 28 minutes, data snapshots shows 8 hours 35 minutes, and list view shows 20 hours 40 minutes. |
|
Performance Analytics PRB1949829 |
Breakdown elements aren't displaying consistently on the 'workbench' widget | On the 'workbench' widget, all the elements are displaying for a breakdown when the Timeseries field has a value and the value of the property 'com.snc.pa. scorecard.breakdown. chart.max_rows' hasn't been changed. | |
|
Performance Analytics PRB2032037 |
The Platform Analytics dashboard filters ignore Element Security Lists and display 'Nothing is available' | If the user sets up an Element Security List for a breakdown source that's used as a filter in a Platform Analytics dashboard, the filter shows 'Nothing is available'. This happens even though the user has valid access to the dashboard and the underlying data. | |
|
Performance Analytics PRB2035061 |
Core UI widgets render blank data for fiscal and business calendar indicators | Highcharts has been upgraded from version 10.3.3 to 12.3.0. As part of this upgrade, some legacy Highcharts utility methods used by the Core UI dashboards (legacy pa_dashbaord) and widgets have been deprecated or replaced in the newer version. Any usage of older Highcharts APIs or utility methods should be reviewed and updated to use the latest supported alternatives available in Highcharts 12.3.0. |
Expected behavior: The same data as shown in the Analytics Hub is to be rendered. Actual behavior: All the business calendar or fiscal calendar indicator widgets render blank data. |
|
Performance Analytics PRB2050693 |
injectWidgetContent re-executes already-loaded scripts via document.body.appendChild, causing a widget regression | injectWidgetContent in canvasUtils.js strips all <script src> tags from the widget HTML and re-injects them via document.body.appendChild. For scripts already loaded at page render time via Jelly <g:requires>, this causes re-execution, which corrupts initialized state and breaks widget functionality. | |
|
Performance Analytics PRB2054497 |
Data snapshot indicator charts fail to render | It can't encode an object during JSON serialization. |
On an Australia instance, open any dashboard with a data snapshot indicator chart. Observe that the chart fails to render. Check the server logs for: ''Cannot encode object' / JsonMappingException through reference chain: LinkedList[0] -> DataSnapshots DataService$1['response']'. |
|
Platform Analytics Component API PRB1961798 |
Records aren't deleted from report stats or the 'Visualization metadata' table | ||
|
Platform Analytics Component API PRB2021236 |
In an instance migrated to Australia, reports display Name = None for non-global domains | When a instance with core UI reports is migrated to Australia, any reports that aren't in the global domain don't have the name set. | |
|
Platform Analytics Component API PRB2031447 |
A data visualization type is duplicated post-Australia upgrade | When in the page under the 'Count' section, and putting a filter with the condition type as 'single score', there are duplicate values in the total. |
|
|
Platform Analytics Component API PRB2037528 |
In Australia, data visualizations created by non-admin users aren't visible by that user on the 'Overview' page under |
|
|
|
Platform Analytics Component API PRB2039912 |
'vertical_bar' is displayed in the value format on the data visualization library page |
Expected behavior: The type should be 'Vertical bar'. Actual behavior: The type is 'vertical_bar'. |
|
|
Platform Analytics Component API PRB2040129 |
Optimize the reparenting script |
Expected behavior: Dashboards/data visualization are there in the library page list. Actual behavior: Dashboards/data visualization aren't shown in the library page list. |
|
|
Platform Analytics Dashboard API PRB2037426 |
scoreType is forced to 'latest' for non-aggregate indicators due to an undefined aggregateIndicator check | When a visualization widget uses a classic indicator (sourceType: 'indicator') with applyDateRange enabled, the scoreType property is incorrectly forced to 'latest' even when the metric is not an aggregate indicator. This happens because the aggregateIndicator check in the scripted policy evaluates 'undefined !== ''' as 'true', even though the metric object doesn't have an 'aggregateIndicator' property at all. The user loses the ability to select other score types (sum, average, etc.) for non-aggregate indicators, and any previously configured scoreType value (for example, 'sum') is overwritten to 'latest'. |
Expected behavior: The scoreType remains 'sum' and all score type options are available in the drop-down list. Actual behavior: The scoreType is forced to 'latest' and the drop-down list is inactive. |
|
Platform Analytics Dashboard API PRB2038900 |
Platform Analytics Release (PAR) dashboard's saved filters drop on 'GET' (200, empty filters) when a referenced saved/library filter is unresolvable (deleted or cross-domain) | FiltersService.removeInvalidFilter (inline path) had a guard that returned '' whenever availableFilters.size() didn't match the layout's filter-component count. getAvailableFilters can't resolve a stored_component whose par_component_filter record is deleted or domain-invisible, so a single unresolvable reference caused all of the dashboard's saved filters to be discarded for every user. The PUT path does no validation and saves correctly; only the GET-time validation drops them. On domain-separated (MSP) instances, this is easily hit because dashboards in user sub-domains reference global saved filters. | |
|
Platform Analytics Dashboard API PRB2039418 |
List migration logic should be added for the highlighted values config | When the user upgrades, the corresponding properties should be migrated to the new list visualization. |
Observe that the corresponding properties are migrated to the new list visualization. |
|
Platform Analytics Dashboard API PRB2050123 |
GlideClearDashboardCache is undefined in Australia, causing four business rules (BR) to fail on every Platform Analytics (PA) dashboard save and widget loss and save failures | The Java class GlideClearDashboardCache (com.snc.par. dashboards.glide.script. ClearDashboardCache, annotated @GlideScriptable) isn't registered in the Rhino scripting scope. The class is present in the com.snc.par.dashboards OSGi bundle JAR, but isn't accessible as a Rhino scriptable — typeof GlideClearDashboardCache returns undefined. Four business rules in com.snc.par.dashboards call this class with no try/catch on every INSERT, UPDATE, and DELETE against par_dashboard, par_dashboard_canvas, par_dashboard_widget, and par_dashboard_permission. When a user saves a PA dashboard, these BRs throw RhinoEcmaError: 'GlideClearDashboardCache' isn't defined (logged as WARNING in the node log, firing 14+ times per transaction). Two failure modes: (1) dashboard save fails with 'Your dashboard could not be saved', or (2) save succeeds but in-memory cache not flushed — stale canvas layouts cause widgets to disappear from tabs on subsequent loads. | |
|
Platform Analytics Dashboard API PRB2050660 |
Par_dashboard_tab records are created unintentionally when a non-admin user accesses an inactive dashboard | When a non-admin user accesses an inactive (deactivated) Platform Analytics dashboard through the workspace URL, one or two new par_dashboard_tab records are created unintentionally. |
Expected behavior: The par_dashboard_tab doesn't have a record for the test dashboard. Actual behavior: Once the user accesses the inactive dashboard, one or two new par_dashboard_tab records are created unintentionally. |
|
Platform Analytics Filters PRB1993721 |
A dashboard's Year to Date (YTD) filter fails to apply on a list unless it's reset | A dashboard's YTD filter doesn't consistently apply the correct date range to list widgets, resulting in incorrect list results until the YTD filter is manually cleared or reset. | |
|
Platform Analytics Filters PRB2021606 |
An interactive filter can be cleared via a double click even when the 'Allow User to Clear Filter' option is turned off | Users are able to clear the applied interactive filter by double-clicking the selected filter value even when the 'Allow user to clear filter' option is turned off in the filter configuration and clear filter option isn't appearing. Additionally, when multiple interactive filters are configured with filter interactions/dependencies, the dependent filters still display the option to clear the filter. This behavior creates inconsistency with the expected functionality of the 'Allow user to clear filter' setting, as users are still able to clear filters through alternate interactions. |
Expected behavior: When the 'Allow user to clear filter' option is turned off, users shouldn't be able to clear filters through any UI interaction, including double-click actions or dependent filter interactions. Actual behavior: Filters can still be cleared through double-click interaction and dependent filters display clear filter options despite the setting being turned off. |
|
Platform Analytics Filters PRB2031107 |
The 'Allow user to clear filter' option isn't auto-checked in the filter designer |
Expected behavior: The 'Allow user to clear filter' option should be auto-checked. Actual behavior: The 'Allow user to clear filter' option isn't auto-checked. |
|
|
Platform Analytics Filters PRB2031506 |
The 'Follow' filter toggle option is missing in a cascading filter |
Expected behavior: The filter on sys_user has the option to follow the sys_user_group filter. Actual behavior: No available option is displayed. |
|
|
Platform Analytics Migration API PRB2034116 |
Upgrading from Yokohama to Zurich causes all pa_widgets to be migrated after upgrade | The pa_widgets table doesn't have an active field. | |
|
Platform Analytics Migration API PRB2037846 |
The Migration Center summary count doesn't match the list count for fully migrated dashboards | The Get Migration Summary Scripted API needs to be updated so that it calculates the total number of migrated dashboards in the same way as the Migrated List. |
Scenario 1:
Observe that the Migrated List count and the Summary count don't match. Scenario 2:
Observe that the Migrated List count and the Summary count don't match. |
|
Platform Analytics Migration API PRB2057808 |
Remove unified User with elevated privileges only | Removing the write for User with elevated privileges only for the com.glide.par.unified _analytics.enabled property. | |
|
Playbooks (Family Channel) PRB2025987 |
A user can't view a playbook without record create access | ||
|
Playbooks (Family Channel) PRB2034002 |
There's canLaunchPlaybook and launchPlaybook inconsistency for run strategy | canLaunchPlaybook(enforceRunStrategy=true) returns true but the subsequent launchPlaybook call throws PlaybookInvalidInputException: 'The playbook specified can't be launched because of its run strategy for the same playbook and parent record'. | |
|
Playbooks (Family Channel) PRB2052473 |
The getPlaybookContextParentRecord API should be exposed as scriptable | The Playbook MCP tool code doesn't use the existing API getPlaybookContexts ByParentRecord to launch and continue playbook execution. This API internally handles all validation and permission access, which results in duplicate logic. The current java API should be exposed as a scriptable API to use at Playbook MCP tool. |
Observe that it launches playbook, but it uses custom logic to validate access and permission. |
|
Playbooks (Family Channel) PRB2052669 |
'Completed By'/'Completed On' for activity contexts | This is a product update. | |
|
Portfolio Planning with PPM, Agile 2.0, and SAFe PRB2055648 |
GetRefRecord scoping bypass for app-apw-internal-int | ||
|
PPM Standard PRB2037975 |
Relax RIDAC table business rules | This is a product update. | |
|
Process Mining PRB2022864 |
Users are unable to edit access for Now Assist creator's 'Work Notes Analysis' skill |
Expected behavior: The user should have edit permission to edit. Actual behavior: The user is unable to edit permissions. |
|
|
Process Mining Workspace PRB2007466 |
When feedback given by user is changed and navigates to another UI, on a revisit, the Feedback button switches from the previous state to new |
Expected behavior: Feedback shouldn't be switched back and forth. The new state should be preserved even if the user navigates to other screens. Actual behavior: When the user comes back to the finding where feedback is given, the feedback is switched from the previous state to the new state. |
|
|
Process Mining Workspace PRB2024798 |
Summary top banner metrics isn't displaying until the project is reopened or the page is refreshed | ||
|
Process Mining Workspace PRB2029472 |
The Intent and activity analysis button is enabled on findings without process configuration |
Observe that intent and activity analysis is turned on. It should be turn off without the proper configuration. |
|
|
Process Mining Workspace PRB2030093 |
Re-triggering 'Generate highlights' after an error displays no loading indicator or feedback that a process is running |
Expected behavior: The UI should go into 'progress' mode, before displaying the result/error. Actual behavior: No loading indicator, spinner, or any visual feedback is displayed to the user to indicate that a process is running. |
|
|
Process Mining Workspace PRB2030109 |
An errored scheduled task leaves the component stuck at 'Loading contents...' indefinitely |
Observe that the scheduled task errors out, and that the highlights component remains stuck displaying 'Loading contents..' indefinitely and never surfaces the error state to the user. The loading message should be replaced with an error message. |
|
|
Process Mining Workspace PRB2050830 |
Wipe out promin_metered _usage_data across non-prod and rely on the Glide non-prod/prod property, not on the Open/Closed property | When users clone production to a sub-prod instance, the sub-prod promin_metered _usage_data table is wiped and replaced with prod's data, so sub-prod reflects a copy of prod rather than real usage. When users clone prod to several sub-prods at once, each carries prod's usage table. Subscription Management's flat aggregation then counts the same prod records once per instance, so reported usage scales linearly with the number of sub-prods a customer maintains, independent of actual mining behavior. | |
|
Process Mining Workspace PRB2052878 |
Otto directive for process mining | The Otto rebrand should be completed for work notes analysis, intent and activity analysis, process highlights, generate process config with AI, and playbook mining. | |
|
Project Management PRB2006929 |
Deleting a project task with MS Project creates an orphaned resource request |
Expected behavior: The reupload of the schedule isn't permitted because of the related record or if it does allow the reupload, it should cascade the delete to the related records. Actual behavior: The resource manager can still see the resource request, but the task name is blank. |
|
|
Project Management PRB2023802 |
The PowerPoint export service loses the connection | The export functionality is broken. When using the export feature, it displays 'Unable to complete request'. There are no log entries available for this error message. In order to exclude issues with the built-up service, there are regular pings every 15 minutes from the instance to the backend service, but those pings stop at the end of the day. After manually updating the entry in sys_service_endpoint, the pings start and exporting to PowerPoint is available. | |
|
ReleaseOps - Family PRB1951541 |
update_set_admin needs access to 'Promote Update Set' | The UI action condition currently requires the admin role, but should allow for both 'admin' and 'update_set_admin'. |
As a user with role update_set_admin (and not admin), complete an update set. Expected behavior: ThePromote Update Set UI action is available. Actual behavior: It isn't available. |
|
Reporting PRB2040639 |
Require authentication on a scripted rest API reporting_alias | ||
|
Reporting PRB2058918 |
Logging when there's an RVACL exception doesn't work for visualizations and only for Core reports | Glide.rest.debug = true can't be set on instances, so it needs a dedicated sys property to allow RVACL exception logging for the failed path. Only Core UI reports are tracked in the code and not visualizations. | |
|
Request Management PRB2050782 |
An approval summary displays the incorrect attachment | In Service Operations Workspace (SOW), attachment records displayed on approval records are inconsistent with the actual request item. When multiple request items contain attachments with the same file name, SOW resolves and displays the attachment from a different record (incorrect sys_id). The attachment file name appears correct, but the underlying file content belongs to a different request item. This behavior isn't reproducible in Classic UI, where attachments are always correctly associated with the respective record. The issue doesn't occur when the attachment file names are unique. | |
|
Scheduled Jobs PRB2015240 |
Create a guard rail to protect the scheduler against misconfigured nodes to avoid impact to critical jobs | Misconfigured nodes can severely impact the job scheduler, causing business critical jobs to not get executed. |
Observe that both this node's and other nodes' pinned jobs with priority>=100 no longer execute. |
|
Schedule Optimization PRB2022407 |
getRefRecord() scoping bypass for the 1.0.1 release | ||
|
Security Data Filters PRB1967733 |
A security data filter (SDF) is applied redundantly via dotwalk paths, causing missing records in 'OR' queries | This has two distinct symptoms caused by the same underlying duplication. One, when querying a parent table with 'OR' conditions dotwalking into multiple child tables simultaneously, the parent SDF was applied three times — once directly and once per dotwalk CE path — producing conflicting conditions that returned zero records instead of the expected results. Two, when querying a table with a field-based SDF, records where that field was empty/null were incorrectly excluded. This was caused by the same SDF being applied redundantly via a dotwalk CE, which caused the combined filter condition to exclude null matches. | |
|
Server-side scripts PRB2051345 |
Automatically created KittyScript exemptions are incorrect when using 'new GlideRecord' | When GuardedScript/KittyScript checks scripts in the exemption table, it does by checking a _normalized_ version of the script, where all literals are removed to ensure that it deduplicates similar scripts where the only difference is (say) a 'sys_id'. This normalization does _not_ apply to the constructor of 'GlideRecord' where it doesn't want a blanket execption for _all_ tables. |
Refer to the listed KB article for details. |
|
Service Catalog Builder PRB2030878 |
'Mode' defaults incorrectly when not specified in the catalog item configuration, blocking item submission from Builder | The root cause is a missing default value for the 'mode' property in the catalog-item component configuration (now-ui.json). |
Expected behavior: The item should get submitted. Actual behavior: The item isn't submitted. |
|
Service Catalog Portal Widgets PRB2054951 |
ServiceNow Otto rebranding for catalog item slot-fill | This is a product update. | |
|
Service Catalog PRB2054931 |
ServiceNow Otto rebranding for catalog item generation with Text2Catalog family support | This is a product update. | |
|
Service Level Management PRB2001036 |
In SLACalculatorNG, an unbounded schedule/DurationCalculator cache causes memory growth during bulk SLA recalculation | During bulk SLA recalculation, SLACalculatorNG accumulates one GlideSchedule and one DurationCalculator instance per unique schedule+timezone combination into unbounded object maps (this.schedules and this.durationCalculators). These maps are never evicted and grow proportionally to the number of distinct schedule/timezone pairs encountered across all task_sla records in the query. In instances with many SLA definitions backed by different schedules, this results in unbounded heap growth for the lifetime of the bulk calculation, degrading instance performance and potentially causing out-of-memory conditions under load. |
Refer to the listed KB article for details. |
|
Service Mapping PRB1971609 |
Service Mapping Discovery runs an instance out of memory during the rediscovery process in case there are 100K discovered services in Operational Status | The code queries for all cmdb_ci_service_discovered records with operational_status=1 without any limit. If a user has enough cmdb_ci_service_discovered records with operational_status=1, then the instance can immediately be run out of memory while building an array of the results. 0 means no limit: getAllDiscoveredBusinessServices(conditions, null, 0). |
|
|
Service Mapping PRB2036299 |
After upgrading to Australia, parent.process.pid fails to resolve, which causes the 'Get Process' operation to return the full process list instead of the targeted parent process | The user can run a customised Tomcat WAR pattern for Service Mapping discovery. Following the Australia upgrade, step two of the 'Identification' section stops working during Service Mapping discovery. The step uses a 'Get Process' operation with process_id = get_attr {'parent.process.pid'} to locate the parent Windchill Java process. This expression fails to resolve, causing the step to run with no PID filter and return the entire process list on the host instead of the targeted parent process. |
Observe that the 'Get Process' operation returns the full process list from the host instead of the targeted parent process. |
|
ServiceNow SDK (Glide) PRB2013533 |
There's an unhelpful error when installing an app with an invalid scope prefix | Error: '[now-sdk] ERROR: Exception occurred while installing application/nUnable to install application as application was null. Error: Exception occurred while installing application/nUnable to install application as application was null'. |
Create an app with now-sdk init without a valid auth saved. The resulting app has an x_ prefix and gives an error when trying to install on an instance. |
|
ServiceNow SDK (Glide) PRB2033218 |
Fluent App metadata deletions aren't propagated when installing from the app repo | The issue occurs because of missing sysmetadatadelete records. |
Expected behavior: The delete is applied and the metadata is removed. Actual behavior: The metadata not removed. |
|
ServiceNow Studio (Family Channel) PRB2063560 |
True up the Glider Store app | ||
|
Service Portal PRB2056735 |
Update the accessibility voice-input toggle label in Service Portal for the Otto rename | As part of the 'Now Assist to Otto' rename, the accessibility toggle label must be updated in Service Portal. It's currently 'Enable voice input for Now Assist in Virtual Agent'. The new value will be similar to 'Enable voice input for ServiceNow Otto'. | |
|
Service Portal PRB2056737 |
Portal-core widget UI and theming for new Otto onboarding modal in the Service Portal | The modal introduces users to the ServiceNow Otto experience on first login. Because Lit-based workspace components can't be embedded in angular portals, a dedicated Service Portal implementation is required. The widget lives in the platform layer and is shared across all portals. No per-portal or user uptake is required. | |
|
Service Portal PRB2056743 |
Eligibility and admin control for new Otto onboarding modal | ||
|
Sidebar (Family Release) PRB2058602 |
Typing indicator no longer works |
Observe that there is no typing indicator. |
|
|
Smart Assessments for Field Service PRB2054418 |
Backport getRef changes to app-smart-assessment-mobile | ||
|
Smart Assessments Mobile PRB2054417 |
Backport getRef changes to app-smart-assessment-mobile | ||
|
Software Asset Reconciliation PRB2000893 |
Recon updates are dropped by a database, causing license metric results (LMR) and product results to not update | ||
|
Software Lifecycles PRB2004396 |
A calculated lifecycle should consider other phase start dates before creation | ||
|
Software Lifecycles PRB2010294 |
Matching a common platform enumeration (CPE) to DMs should ignore CPEs that are version less | sn_itam_samp. MatchVulnerableSoftware ToDiscoveryModels should ignore CPEs that are a version less. Vulnerabilities are reported against versions of a product, but due to National Vulnerability Database (NVD) data or corrupted NVD data, CPEs may be a version less. | |
|
Software Lifecycles PRB2012476 |
Matching a common platform enumeration (CPE) to DMs should ignore CPEs edition and software edition | There are two Edition fields on CPE, 'Edition' and 'Software Edition'. It queries against both, but 'Edition' is a legacy and deprecated field from the old 2.2 standard. 'Software Edition' was introduced in 2.3. | |
|
Source-to-Pay Operations (Glide) PRB2057105 |
getRefRecord() scoping bypass directive changes | ||
|
Standard Ticket Page PRB2054934 |
ServiceNow Otto rebranding for Now Assist in 'Standard Ticket' page family | This is a product update. | |
|
Stream Connect Core PRB2019118 |
Generative AI logs are missing | ||
|
Stream Connect Core PRB2036772 |
Stream Connect fails to authenticate with Kafka brokers requiring OAUTHBEARER as the SASL mechanism, blocking connectivity | When a broker is configured to require OAUTHBEARER, the Kafka client initiates a SASL handshake and signals the OAUTHBEARER mechanism. Without a registered token callback handler, the client cannot respond with a valid bearer token, causing the handshake to fail. The connection is dropped and no meaningful error is surfaced to the administrator beyond a generic authentication failure. |
Observe that OAUTHBEARER isn't available as a selectable mechanism in the credential configuration UI. |
|
System Import Sets PRB2033737 |
role mis_server can't read database credentials for a JDBC data source when it uses an alias | ||
|
System Import Sets PRB2038233 |
JDBC connections are left dangling and unclosed | Every time the user issues a change credential signal to MID during a JDBC import, the number of open connections grows. |
Observe that the number of open connections grows each time. |
|
System Web Services PRB2029605 |
There's hourly reoccuring OAuth authentication failures on an outbound REST from ST ServiceNow to CG ServiceNow: 'User is not authenticated. OAuth token has expired or has not been retrieved' | The reported issue affects the outbound integration between ServiceNow and the external ServiceNow instance through the iPaaS layer using OAuth 2.0 Client Credentials authentication. The integration fails specifically during the final one-minute window before the OAuth access token expiration. During normal token validity, the integration works successfully. Starting one minute before token expiration, outbound calls from ServiceNow fail. Failures occur in: REST Message, REST API Step, Flow Designer executions, and custom scripts. Once the token fully expires, ServiceNow successfully retrieves a new token and the integration resumes functioning normally. | |
|
Table Builder PRB2052385 |
Backport GetRefRecord scoping bypass changes | ||
|
Tags PRB2039548 |
In Australia, tags aren't saved for 'active = false' records for non-admin users | ||
|
Talent Feedback PRB2056254 |
getRefRecord() scoping bypass for talent feedback | ||
|
Task Plan Templates PRB1978400 |
Auto-populating the value of a task plan Feature field in a task plan template document isn't dymanic | The domain separations script needs an additional check for the global domain. |
|
|
Territory Planning PRB2039182 |
Updating potential territories for a task doesn't work as expected | The business rule that updates the potential territories is currently triggered only when the location changes. It doesn't consider the consider_potential_territories _for_schedule_optimization boolean field. |
Expected behavior: The Business Rule that updates the potential territories should consider theconsider_potential_territories _for_schedule_optimization boolean field. Actual behavior: The Business Rule that updates the potential territories is currently triggered only when the location changes and doesn't consider the consider_potential_territories _for_schedule_optimization boolean field. |
|
Third-party Software PRB2032449 |
The Kitty script changes should be reverted | The changes to the Kitty script are no longer required. Everything works fine; the dashboard loads and there's no exception in the syslog table. | |
|
Time-Limited User Roles PRB1972197 |
When a user is logged in, updating an existing record with a new end time in the 'Time limited user roles' tablec causes never ending information messages on all pages |
Expected behavior: Users see an information message once. Actual behavior: Users see a message about roles that are granted or removed, but closing them isn't helping. |
|
|
Trace Collector - Family Release PRB2056896 |
Trace collector MID code | This is a product update. | |
|
Trace Collector - Family Release PRB2059215 |
Azure classic trace collector doesn't consider Credential IDs for AI and ML services | AzureTraceCollector ignores credential IDs supplied as config update parameters. It only considers credential alias names. | |
|
UI Actions PRB2051051 |
The field error message isn't shown when the error comes from the backend via business rule abortAction | The error message isn't shown for the short_description field in Australia. However, it's visible in Faster or PAXE Integration. |
Observe that the error message isn't shown for the short_description field. |
|
UI Field Administration PRB2054948 |
ServiceNow Otto rebranding for AI indicators, AI indicator pop-overs, and Task intelligence predicition | This is a product update. | |
|
UI Field Administration PRB2054949 |
IndexName GraphQL component and choice fallback | This is a product update. | |
|
UI Field Administration PRB2054953 |
Inject '*' options into composite_name table and field picker choice lists | This is a product update. | |
|
UI Form Administration PRB2019275 |
There's layout and scrollbar flickering when entering info, internal and external, in HTML Journal fields | There's layout and scrollbar flickering when entering info, internal and external, in HTML Journal fields, caused by automatic browser window resizing. The issue occurs randomly and is not related to a specific case or text size. |
Observe the flickering issue. |
|
UI Form Administration PRB2033143 |
The 'Preview this record' icon isn't working in the Safari browser | Selects on the button components and controls isn't working in Safari for UI16. This issue is only reproducible in the Safari browser. Non-Safari browsers aren't impacted and they don't face this issue. |
Refer to the listed KB article for details. |
|
UI Form Administration PRB2054945 |
Otto brand change in form notification messages | This is a product update. | |
|
UI Form Administration PRB2056498 |
The parentRecordSysId is missing from ORM Workspace payload template, so the getFilterQuery API breaks | The getFilterQuery REST API (/api/now/ related_list_item_filter/ getFilterQuery) is being updated to require four mandatory parameters: tableName, parentFieldName, parentRecordSysId, and referencedFieldName. The Configurable Workspace for Order Management (sn_app_orm_wksp) payload definition doesn't include parentRecordSysId in its payload template. Once the change occurs, any UI action using the payload receives a 400 error from the API. |
Observe that the call to /api/now/ related_list_item_filter/ getFilterQuery returns {'error': 'Invalid inputs'}. |
|
Upgrade Center PRB1950446 |
The 'Flow Designer' module directs to 'Page Not Found' after an instance upgrade on some nodes | The module redirects to 'Page Not Found' on some nodes after an instance upgrade. The main issue is that nodes tried to download app packages from Store, but Store responded with a 400 error because the platform version for the instance isn't updated on the Store end yet, and the request is considered incompatible. However, during an upgrade, it shouldn't request app packages from Store. | |
|
Upgrade Center PRB2056920 |
Bulk app updates feature Glide changes | This is a product update. | |
|
UX Framework PRB2004013 |
Filters aren't appearing in the dashboard | Filters aren't appearing in dashboard in an initial dashboard load. |
Observe that the filters aren't loading. |
|
UX Framework PRB2035397 |
After typing in an input field on record page load, the focus shifts intermittently | After a few words, the focus shifts to the 'Tags' section and it continues to write in that section. |
Expected behavior: The user continues to type and the focus remains in the typing area. Actual behavior: After a few words, the focus shifts to the 'Tags' section and it continues to write in that section. |
|
UX Framework PRB2039881 |
GLOBAL_NAVIGATION_REQUESTED isn't routing to a feature after selecting a hard refresh of the page | ||
|
UX Framework PRB2054946 |
Keyboard shortcut remapping for admins and users | This is a product update. | |
|
Virtual Agent for Customer Service (Store) PRB1998239 |
An outdated file in the Virtual Agent store plugin causes integration tests to fail | ||
|
Virtual Agent PRB1895195 |
When the user enters an invalid/partial utterance, an error appears and the conversation is closed | Dynamic capability executor can trigger multiple capabilities with different payloads. However, dynamic capability executor fails when duplicate capability IDs are passed. | |
|
Virtual Agent PRB1914417 |
Stopping agentic conversation shows an undefined message |
Observe the undefined message is displayed. |
|
|
Virtual Agent PRB1952103 |
Remove showNoSkillsConfigured options passed when requesting the skill picker control in Now Assist Portal (NAP) | Previously, a message was displayed to the end user if no applicable skills were configured for the logged-in user in NAP. Now that NAP also supports QnA, users will still be able to search knowledge articles, so this message is no longer required. |
Observe a message reading: 'Looks like no skills are configured' and the conversation ends. |
|
Virtual Agent PRB1960129 |
A conversation abruptly ends after a cold start conversation with a pre-chat survey enabled | The conversation ends after the survey is complete. |
Expected behavior: The user should get a response related to the query from step 3. Actual behavior: The conversation ends after the survey is complete. |
|
Virtual Agent PRB1962876 |
An interaction record form doesn't always pop up when receiving an inbound call | An interaction record form doesn't always pop up when receiving an inbound call from multiple sources in short time. | |
|
Virtual Agent PRB1980327 |
A chat dynamic greeting isn't localized correctly | Because the message doesn't go down the correct API path to resolve to sys_ui_message, and it can't honor the dynamic greeting. | |
|
Virtual Agent PRB2009200 |
For the 'Resume' flow, work notes are added as the guest user |
Expected behavior: Work notes should be added under the impersonated HR L1 worker. Actual behavior: Work notes are added under the guest user. |
|
|
Virtual Agent PRB2026682 |
Conversation history of language detection confirmation disrupts a user response | According to Search QnA, the prompt isn't structured to support the intermediate language selection turn. That should be removed from the conversation history.`. |
Expected behavior: The language should switch and the synthesized response should be displayed. Actual behavior: The langue switches but the response is 'How can I help you with your laptop'. |
|
Virtual Agent PRB2031232 |
The 'Litjs' widget isn't displaying on the Now Assist panel | ||
|
Virtual Agent PRB2031583 |
Non-topic skills are dropped from the skill picker when all applicable topic skills have a visible design category | The picker shows the topic skills grouped under their design categories, but the non-topic skills are absent. No 'Others' category is created and the non-topic skills aren't rendered. |
Expected behavior: Non-topic skills appear in the picker regardless of whether the applicable topic skills all carry visible design categories. For example, they could appear under 'Others'. Actual behavior: Non-topic skills are omitted whenever there is more than one applicable topic skill and all applicable topic skills have a visible design category. |
|
Virtual Agent PRB2031991 |
'Get details of problem agent' returns additional duplicate closure messages along with the expected closing message | When the user enters a closing utterance, the agent returns multiple closure messages, and the last two messages are duplicated. |
Expected behavior: The agent returns a response like 'Understood. Feel free to return anytime if you need help.' Actual behavior: Additional closure messages show up, and the last two messages are duplicated. For example, the agent might return the following: 'Understood. Feel free to return anytime if you need help. Thanks for chatting! I will go ahead and close this conversation now. I'm here if you need anything else. It looks like you're finished with this chat, so I will go ahead and close it. It looks like you're finished with this chat, so I will go ahead and close it.'. |
|
Virtual Agent PRB2034975 |
Interactions are throwing an error of 'technical issues' intermittently | A few interactions intermittently throw 'I'm having technical issues and won't be able to continue this conversation'. |
Observe the message, 'I'm having technical issues and won't be able to continue this conversation' occurs intermittently. |
|
Virtual Agent PRB2035888 |
A Guardian-triggered async_search early-return leaves a stale task ID in the context |
Expected behavior: The second utterance responds normally. Actual behavior: 'Sorry, there was a problem on my side' appears. The second utterance result is dropped. |
|
|
Virtual Agent PRB2037636 |
Agent messages containing URLs aren't displaying correctly in the internal transcript |
Refer to the listed KB article for details. |
|
|
Virtual Agent PRB2054519 |
Rename five assistant names from 'Now Assist' to 'Otto' | The old assistant names should be renamed as following: 'Now Assist in Virtual Agent' > 'ServiceNow Otto for Virtual Agent', 'Now Assist Panel – Platform' > 'ServiceNow Otto panel – Platform', 'Now Assist Panel – Developer' > 'ServiceNow Otto panel – Developer', 'Now Assist Voice Deployment' > 'ServiceNow Otto voice', 'Now Assist in Virtual Agent - N' > 'New chat assistant - 1', and 'Now Assist Voice Development - N' > 'New voice assistant - N'. | |
|
Virtual Agent PRB2055706 |
Snc_internal role is missing on sys_cs_conversation write ACL when the 'Explicit Roles' plugin is also active | Since the snc_internal role is never associated to the ACL, any users with snc_internal role can't upload files from NextWave conversation experience. The /api/now/upload/attachment API checks for write access on the actual record itself before allowing file upload, so the upload API is failing. |
Observe that that only the snc_external role is added. The snc_internal role is never associated to this ACL. |
|
Virtual Agent PRB2056495 |
Central cache doesn't return the correct entry if the cache is updated from a different cluster | In the central cache log, the following message apepars: 'Negative cache hit — Glide previously returned null for this key'. | |
|
Virtual Agent PRB2057596 |
Rename 'Now Assist Virtual Agent' to Otto for topics in Glide | ||
|
Virtual Agent PRB2058728 |
Chat summary isn't generated on instances with the Spanish translation plugin | After ending a chat between a requester and an agent, the summary doesn't generate. This occurs when one person is using Spanish and the other is using English. |
Observe that the chat summary doesn't generate. |
|
Virtual Agent PRB2059089 |
The Otto session isn't aware of the logged-in user for 'assets managed by me' queries | The Otto/AICT chat session isn't aware of the logged-in user by default. When a user asks a question like 'Can you give me the assets managed by me?', the assistant returns the complete/unfiltered list of assets instead of applying a managed_by = current user filter. The filter is only applied when the user explicitly names themselves in the query. The assistant should recognize 'me'/'my' references and automatically apply the logged-in session user's context without requiring explicit clarification. |
Observe that the managed_by = current user filter is correctly applied. |
|
Virtual Agent PRB2059632 |
BuildPolicyConfig should be aligned with sys_now_assist _va_persona_detail schema | No policy configs are returned because buildPolicyConfig doesn't target sys_now_assist_ va_persona_detail and doesn't filter by persona_detail_type = Policy. |
Expected behavior: One policy config entry is returned, containing the sys_id, name, description, active, and instruction from the policy persona-detail record. Non-policy persona-detail records are excluded. Actual behavior: No policy configs are returned because buildPolicyConfig doesn't target sys_now_assist_va_persona_detail and doesn't filter by persona_detail_type = Policy. |
|
Virtual Agent PRB2060897 |
The 'promoted-skills' API doesn't return non-discoverable skills |
Expected behavior: The skill should be returned. Actual behavior: The skill isn't returned. |
|
|
Virtual Agent PRB2061042 |
Fixes are needed for guest user support for OffGlide | Additional rest endpoints need a public role. The NextWave token needs to be turned on for bff exchange. | |
|
Virtual Agent PRB2061520 |
Calling the 'Bg channel' API with the same session ID isn't resuming the conversation |
Expected behavior: The conversation, which is waiting for input, should resume back. Actual behavior: Creating a conversation and execution plan with the workflow as 'Default VA Workflow'. |
|
|
Virtual Agent PRB2063396 |
Parallel tools execution aren't running in record domain | ||
|
Virtual Agent PRB2064355 |
Auto Chat executions are faulted | There is an intermittent failure in fetching the JWT token from CS, which is causing the faulted conversations. | |
|
Virtual Agent PRB2064833 |
A domain is set to null after user input | ||
|
Virtual Agent PRB2066077 |
Add the reduce_items_list_polling toggle | ||
|
Virtual Agent Web Client PRB1933088 |
Processing loader is displayed even after getting a response |
Observe that the loader is still displayed, even after getting the record number question. |
|
|
Vulnerability Response Integration with Microsoft Defender for IoT (Azure) PRB2031861 |
getRefRecord() scoping bypass for AzureVR | ||
|
Window Manager PRB2041392 |
There's a UI bug when opening the Now Assist panel | When a user has a menu pinned (whether it's the All menu, Favorites, History, etc.) and they open the Now Assist panel, the pinned menu turns into a blank white pane. The menu that was pinned also then reappear in the list of other unpinned menus, although the name of the pinned menu still also appears next to the ServiceNow logo with a blank pane beneath it. The blank menu can generally be recovered by opening it from the list of unpinned menus (where it has reappeared) and re-pinning it , refreshing the page, or resizing the window. However, there is some inconsistency in whether refreshing or resizing the window always fixes it. If users refresh with the blank menu pinned and the Now Assist panel still open, the Now Assist panel then becomes blank and can only be dismissed/recovered by pinning something else, like sidebar discussions, to the right of the screen to get rid of it. This behavior happens most consistently when a user with a pinned menu logs in and opens the Now Assist panel for the first time after their start screen loads. However, it does also happen MID-session sporadically if users unpin/re-pin different menus and open/close the Now Assist panel frequently. |
Refer to the listed KB article for details. |
|
Window Manager PRB2052078 |
Resize doesn't work at run time, only on creation time | The talk modal needs to be a fixed size. The user dragging it smaller breaks the layout, so the grip should be disabled at runtime. |
Try {canResize: false}. Expected behavior: The gripper disappears. Actual behavior: There's no change. |
|
Window Manager PRB2052105 |
SetWindowProperties ignores empty headingLabel and it can't clear a window's title at runtime | The previous title stays. '' and null are silent no-ops. |
Expected behavior: The heading clears, resulting in a blank title. Actual behavior: The previous title stays. '' and null are silent no-ops. |
|
Work Order Management PRB2034992 |
Backport changes for getRefRecord() changes | ||
|
Work Order Management PRB2053534 |
The 'Location update when PSO is populated' business rule isn't needed anymore | The business rule sets and syncs the Location field on the work order from the provider organization, and the same location is applied to the work order task. This seems confusing, since the provider org and location don't necessarily have to be the same. The provider org refers to who is responsible for the work, while the location refers to where the work happens. |
Expected behavior: The location remains unchanged. Actual behavior: The location changes to the provider organization location. |
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.