---
sourceDocument: Brazil Release Notes
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/release-notes

 Release :

    - brazil

ft:locale :

    - en-US

ft:publication_title :

    - Brazil Release Notes

ft:clusterId :

    - rn

bundleId :

    - rn


---

# Brazil Patch 1

# Brazil Patch 1 {#ariaid-title1}

Release version: Brazil  
Updated October 8, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 78 minutes to read  
The Brazil Patch 1 release contains important problem fixes.

Brazil Patch 1 was released on October 08, 2026.
:
    * Build date: 10-05-2026_1244
    * Build tag: glide-brazil-08-25-2026__patch1-09-21-2026

Important:  
For more information about how to upgrade an instance, see [ServiceNow upgrades](https://servicenow-prod.fluidtopics.net/l0_vqSZx_DzaOy3rRCBXrQ "The upgrade process moves your instance to a new ServiceNow release version. Understand the difference between upgrading and patching, release definitions, rollback and backup options, and how to test your non-production and production instance upgrades.").

For more information about the release cycle, see the [ServiceNow Release Cycle](https://support.servicenow.com/kb_view.do?sysparm_article=KB0547244).{#brazil-patch-1__p_download-version}  
Note:  
This version is being evaluated for use in the ServiceNow Government Community Cloud (GCC) environment. For a downloadable, sortable version of the fixed problems in this release, click [here](https://downloads.docs.servicenow.com/enus/brazil/rn/patches/PRBs-B01.00.xlsx).
Brazil Patch 1 includes 354 problem fixes in various categories. The chart below shows the top 10 problem categories included in this patch.  
Figure 1. Top 10 problem categories

## Security-related fixes {#brazil-patch-1__security-related-fixes}

Brazil Patch 1 includes fixes for security-related problems that affected certain ServiceNow® applications and the ServiceNow AI Platform®. We recommend that customers upgrade to this release for the most secure and up-to-date features. For more details on security problems fixed in Brazil Patch 1, refer to [KB3220580](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB3220580).

## Changes in Brazil Patch 1 {#brazil-patch-1__changes-in-patch}

[Human-assisted SMS OTP authentication](https://www.servicenow.com/docs/access?context=human-assisted-sms-otp&version=brazil&pubname=brazil-platform-security&ft:locale=en-US)
:   Human-assisted SMS OTP lets a human agent verify an end user's identity by sending a one-time passcode via
    SMS during a live interaction. The agent initiates OTP generation and validation through the platform's scriptable APIs, and the consuming application (for example, CSM or FSO workspace) handles the agent-facing workflow and user interface.

## Notable fixes {#brazil-patch-1__section-notable-fixes}

The following problems and their fixes are ordered by potential impact to customers, starting with the most significant fixes.
{#brazil-patch-1__notable-fixes__entry__4}

| Problem | Short description | Description | Steps to reproduce |
|-|-|-|-|
| Analytics Data API PRB1974104 | The 'Sort by' value does not work in time series visualizations | The order changes, but in a pattern that is neither ascending or descending. | 1. Add a timeseries column chart. 2. Add an incident table with the following: 1. Trend by: Year by Activity due 2. Group by: Assignment group 3. Sort data by value: ASC {#brazil-patch-1__ol_avj_vfz_skc} 3. Hover on a chart. Observe the values in the legend. 4. Change sorting to 'DESC'. 5. Hover on a chart.Observe the values in the legend. 6. Repeat the steps with 'Group by: State'. 7. Change the group by aggregation to 'Hour of day by Opened'. 8. Change DESC to ASC in all cases. {#brazil-patch-1__ol_z5j_vfz_skc} Observe that the sorting by value is applied incorrectly -- it's sorted, but in a strange order that is not ascending or descending. By changing the order, the values position changes, but the order is still not ASC or DESC. |
| IBM Authorized SAM Provider (IASP) integrations PRB2073777 [KB3148607](https://hi.service-now.com/kb_view.do?sysparm_article=KB3148607) | There's out of memory issues in Software Asset Management (SAM)'s 'Populate vCores' job | The job is not able to insert any records in sam_task_queue, possibly because of a bug in priority calculation for cloud installs. This is due to the version upgrade for the IBM Store app. | Refer to the listed KB article for details. |
| Platform Analytics Component API PRB2075538 | In the Platform Analytics Spanish localization, search and date range filters aren't working correctly | Users with Spanish language settings can't search visualizations or dashboards properly, and date range filters are read-only for day selection. The problem impacts Spanish localization specifically, causing different search results and disabled date selection compared to English. |   |
| Service Catalog PRB2089751 [KB3159281](https://hi.service-now.com/kb_view.do?sysparm_article=KB3159281) | Catalog client scripts and UI policies are blocked on requested item (RITM)/sc_task forms for users who can read the record | The resolver throws 'User doesn't have access to the item' and returns no catalog client scripts / UI policies, so none execute on the RITM/sc_task form, even though the user can fully read the record. Users expect catalog client scripts and UI policies load and execute for any user who has read access to the RITM / sc_task record. The catalog item User-Criteria entitlement (canView) should only gate the catalog ordering context (sc_cat_item / sc_cart_item), not fulfillment records. | Refer to the listed KB article for details. |
| Survey Management PRB2057694 | Incompatible guarded scripts are flagged on the UI Page assessment_thanks (Survey Management), causing blocked scripts | Entries in the sys_script_execution_log table with source page assessment_thanks.do are marked as 'Incompatible Guarded Script'. This isn't a functional blocker and the system is working as expected. | 1. Open the assessment thank-you page with the injection-shaped payload in the URL. 2. Navigate to the incompatible guarded scripts table. {#brazil-patch-1__ol_dkk_vfz_skc} Observe the guarded scripts error and the blocked script. |
| UI Field Administration PRB2082758 | Advanced Qualifier Reference is skipped when doing a list edit operation for a reference field | Note that Advanced Qualifier Reference is working fine on a form. | 1. On an incident table, set up advanced reference qualifier for the Assigned to field. 2. On Service Operations Workspace, navigate to the 'Incident' list. 3. Try to list edit the Assigned to field. 4. Select the Look up icon. {#brazil-patch-1__ol_qlk_vfz_skc} Expected behavior: The Advanced Qualifier Reference should be applied. Actual behavior: The Advanced Qualifier Reference is skipped. |
[ ]

{#brazil-patch-1__notable-fixes}

## All other fixes {#brazil-patch-1__other-fixes}

{#brazil-patch-1__all-other-fixes__entry__4}

| Problem | Short description | Description | Steps to reproduce |
|-|-|-|-|
| Activity and Subscriptions PRB2069585 [KB3148451](https://hi.service-now.com/kb_view.do?sysparm_article=KB3148451) | The 'Customer history' tab keeps loading on the front-line case page | The tab never loads. | Refer to the listed KB article for details. |
| Activity Stream PRB2060131 | When table rotation is set up for sys_audit_relation, audit relationship events don't display in a workspace |   | 1. Navigate to Table Rotations (sys_table_rotation). 2. Add a record for sys_audit_relation. 3. Set the type to 'Extension' and the 'Duration' to one hour or less. 4. Create audit relationship changes. {#brazil-patch-1__ol_btj_vfz_skc} Expected behavior: The audit relationship changes are displayed in the workspace activity stream. Actual behavior: The audit relationship changes aren't displayed. |
| Activity Stream PRB2066570 [KB3150759](https://hi.service-now.com/kb_view.do?sysparm_article=KB3150759) | There's an activity stream primary journal field ordering regression --- work_notes are displayed before comments in UI16 and Service Portal | The activity stream on task records (Incidents, Changes, etc.) incorrectly defaults to the 'Work Notes' input instead of 'Comments' in both the platform UI and Service Portal. This affects user workflow as agents may inadvertently post internal work notes when intending to post user-visible comments. Additionally, custom journal fields configured on tables don't appear in the Service Portal activity stream widget. | Refer to the listed KB article for details. |
| Activity Stream PRB2073311 | Build backend graphQL endpoint for List Activity | This is a product update. |   |
| Activity Stream PRB2073313 | Provide supplemental data for returned records on the new back-end for list activity | This is a product update. |   |
| Activity Stream PRB2073315 | Review DT APIs for security |   |   |
| Activity Stream PRB2083047 | The backend should always display a color for activity stream fields | The background color is blank: \<span class='sn-stream-input-decorator' style='background-color: '\>\</span\>. | 1. Make sure glide.ui.activity_stream.style.comments is set to 'transparent'. 2. Open any case. 3. Navigate to the 'Comments and Work Notes' section. 4. Inspect the Additional comments (CUSTOMER VISIBLE) text field. {#brazil-patch-1__ol_ktj_vfz_skc} Expected behavior: The background color is transparent: \<span class='sn-stream-input-decorator' style='background-color: transparent'\>\</span\>. Actual behavior: The background color color is blank: \<span class='sn-stream-input-decorator' style='background-color: '\>\</span\>. |
| Agent Chat PRB2077124 | A tab subheading displays 'Call is in wrap-up' while a call is still active in an agent-initiated wrap-up scenario | When an agent selects 'Open Wrap-Up' mid-call, the tab subheading immediately changes to 'Call is in wrap-up' even though the voice call is still ongoing. This is misleading. The label implies the interaction is in wrap-up state, but the call has not yet ended. UX has confirmed the label should be changed to 'Wrap-up initiated' --- a generic label that works accurately for both mid-call and post-call scenarios. | 1. Configure an NVC/CCaaS integration with supportExternalWrapUp = true on the Wrap Up macroponent. 2. Start a voice call as an agent. 3. While the call is still active, select the Open Wrap-Up button. {#brazil-patch-1__ol_ddd_mm2_vkc} Observe the tab subheading. It immediately displays 'Call is in wrap-up' even though the call is still ongoing. |
| AI Agents (Glide Family) PRB2085529 | AI Agent execution tool 'AIA RAG Retriever' returns faulty URLs for search result items in VA and ES | When the RAG/semantic-search result's URL omits the leading forward slash, the resulting link is corrupted and unusable. |   |
| AI Gateway - Security PRB2088199 | Domain separation support for AI Control Tower (AICT) features | This is a product update. |   |
| AI Search (Glide) PRB1975413 | AI Search Dynamic filters extension point impl isn't triggered from a non-global scope | When an AI Search scriptable API provided is executed from both global and sn_nb_action scopes, the extension point implementation doesn't get triggered when the scope is not global (sn_nb_action). |   |
| AI Search (Glide) PRB2020989 | Performance and EVAM-related debug messages no longer appear in sys log for async GRs and Virtual Agent searches | When the system properties glide.search.performance .logger.enabled or glide.search.evam .logger.enabled are set to true, messages should appear in the sys log prefaced with \[SEARCH PERFORMANCE\] or \[SEARCH EVAM\] respectively. However, these messages no longer appear in the syslog when a conversation is part of the logging context. | 1. Open an instance that returns synth response in portal (for example, Dynamic Window setup). 2. Create and set glide.search.evam.logger.enabled to true. 3. Perform a search that returns a synthesized response in portal. 4. Open the sys log and search for recent messages containing 'for Genius Result with table'. {#brazil-patch-1__ol_ptj_vfz_skc} Expected behavior: There's a log entry in sys log specifying the ID of the view config that was used for each genius result. Actual behavior: There are no log entries for GR EVAM View Config selection. |
| AI Search (Glide) PRB2073308 | Catalog enrichment for glide AIS | This is a product update. |   |
| AI Search (Glide) PRB2074141 | Changing a retention policy on an indexed source doesn't enforce guard rail recalculation |   | 1. See that the retention policy for an 'Incident' indexed source is two years. 2. Verify that Semantic Index configuration in enabled. 3. Verify that there's an entry in the ais_guard_rail_ limit_data_source table. 4. Change the retention policy on the indexed source to three years. {#brazil-patch-1__ol_vtj_vfz_skc} The entry isn't recalculated in ais_guard_rail_ limit_data_source. |
| AI Search (Glide) PRB2076604 | Expose glide.ais.query.server _side_reranker_enabled in BP0 for reranker to be enabled by default |   |   |
| AI Search (Glide) PRB2080317 | getNextPaginationToken() and getPreviousPaginationToken() method entry is removed from the glide-plugin-members.xml file |   | 1. Navigate to the track/bnowassist branch of Glide repo. 2. Open the glide-plugin-members.xml file under the Glide folder. {#brazil-patch-1__ol_b5j_vfz_skc} Observe that the getNextPaginationToken() and getPreviousPaginationToken() entry is removed for RAGRetrievalResponse. |
| AI Search (Glide) PRB2084573 | In the 'Live Search' API, if a userId passed in x-run-as doesn't exist, then it throws an error | This is a product update. |   |
| AI Search (Glide) PRB2084574 | IncludeSources and ExcludeSources support for the 'Live Search' API | This is a product update. |   |
| AI Search (Glide) PRB2084575 | REST API policy configurations in Moveworks API V2 | This is a product update. |   |
| AI Search (Glide) PRB2086827 | Handle duplicates with version, embedding model gracefully in ServiceNow Security Center (SSC) | This is metadata, so business rules aren't guaranteed to run (for example, when coming in through an update set), which is why there should be graceful handling of duplicates. |   |
| AI Search (Glide) PRB2087032 | Incorporate new fields in AIS logging following the changes in AIS backend with new feature explain methods | During the upgrade from Australia Patch 6 to Australia Patch 7, the search doesn't work from the SP page. |   |
| AI Search (Glide) PRB2089496 [KB3160302](https://hi.service-now.com/kb_view.do?sysparm_article=KB3160302) | The 'Book a meeting' Now Assist Virtual Agent (NAVA) test case is not working | The Now Assist skill discovery silently returns no sys_gen_ai_skill results, even though the same prompt works on previous versions. This issue is caused by stale AI Search index data. Upgrading the instance changes code but does not re-ingest existing documents, so the new filter matches zero documents, and the skill disappears from discovery with no error. Any record created or edited after the upgrade is re-ingested under the new converter and self-heals, so only untouched records vanish. | Refer to the listed KB article for details. |
| AI Search (Glide) PRB2095212 | SSC details override Next Wave request payload when both are present | When a Next Wave request is made with explicit parameters/details in the payload AND SSC (Service Search Configuration) details exist for the same context, the SSC details are taking precedence and overriding the values passed in the Next Wave request payload. |   |
| AI Search PRB2064865 [KB3151377](https://hi.service-now.com/kb_view.do?sysparm_article=KB3151377) | Now Assist search results overlap when keyboard tabbing is used | During keyboard navigation through the interactive elements in the AI component, overflowed content overlaps with other elements, making the response/answer difficult to read. This was identified as an accessibility finding during a recent audit by the Accessibility Center. | Refer to the listed KB article for details. |
| AI Search UX PRB1939328 | A 'No Answer Found' Genius Result response shouldn't cause 'Has Results' to be true |   | 1. Open Virtual Agent. 2. Search for something that return a 'No Answer Found' (NAF) response. 3. Open the sys_cs_fdih_invocation table and find the recent entry that corresponds to the search. 4. Copy the 'searchAnalyticsPayload' object from the outputs json. 5. Send that payload as a SEARCH_EVENT to the Signals API, either via Scriptable or the REST API. 6. Open the sys_search_event table and inspect the record corresponding to the payload just submitted to Signals. In particular, look at the Has Results field. 7. Open the sys_search_signal_event table and find the corresponding record. 8. Inspect the Genius Results field. {#brazil-patch-1__ol_g5j_vfz_skc} Expected behavior: The Genius Results field on sys_search_signal_event should be empty. Has Results should be false. Actual behavior: The Genius Results field indicates a synthesized response was displayed, and Has Results is true. |
| AI Search UX PRB1988057 [KB3220629](https://hi.service-now.com/kb_view.do?sysparm_article=KB3220629) | Hyperlinks in synthesized responses don't open in a new tab | When the user attempts to open a hyperlink from the synthesized result, it fails to open. | Refer to the listed KB article for details. |
| AI Search UX PRB1994511 | Label in header-section__identifier-container does not reflow | The labels in div class 'header-section__identifier-container' are truncated at 200% and 400%. | 1. Open a base instance with AI Search. 2. Navigate to /sp?id=search and search for something that will return results (for example, email, device). 3. Set your window size to 1280x1024. 4. Zoom in to 200% and 400%. {#brazil-patch-1__ol_s5j_vfz_skc} Expected behavior: Content is not cut off at 200% and 400% zoom. Actual behavior: Content is cut off at 200% and 400% zoom. |
| AI Search UX PRB2083562 | Support right-click behavior for Service Portal search results | This is a product update. |   |
| App AutoUpgrade Client PRB2071164 | App Client sends all installed apps to Store instead of SN Managed only | App Client calls Store API/autoupgrade/poll with all the apps listed in the sys_store_app table instead of SN Managed only apps. The sys_store_app table is missing the sn_managed column and the GlideRecord returns all apps as a result. |   |
| App AutoUpgrade Client PRB2082909 | Package.json is missing the 'now' block, causing 'Verify Artifact ID' to fail for the app-autoupgrade-client HF release | When the user selects 'Verify Artifact ID' on the HF version record 'SR - ALM - Auto Upgrade Client 1.0.0 - HF', the following error is shown: 'Package.json is missing for: app-autoupgrade-client (1.0.1)'. This is because the package.json in the auto-upgrade-client repo is missing the required 'now' block. Without this block, BT1 can't read app identity, compatibility, and dependency metadata from the artifact. | 1. Navigate to BT1VersionsSR - ALM - Auto Upgrade Client 1.0.0 - HF. 2. Set the build artifact to app-autoupgrade-client-1.0.1-app.zip. 3. Select Verify Artifact ID. {#brazil-patch-1__ol_vvj_vfz_skc} Observe that the following error appears: 'Package.json is missing for: app-autoupgrade-client (1.0.1)'. |
| Application Manager PRB2056916 | Skip a license-blocked status for all dependencies in DependencyProcessor | This is a product update. |   |
| Application Manager PRB2074238 | Now Assist to Otto rename for Application Manager | This is a product update. |   |
| 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. |   |
| Base Asset Management PRB2064689 | The 'Asset' role isn't able to read work orders |   | 1. Create a user temp_asset_only_role with the 'Asset' role. 2. Open the asset that has the work order in Asset Workspace or Hardware Asset Workspace. {#brazil-patch-1__ol_bwj_vfz_skc} When there's at least one work order in the right side context pane of 'Asset Lifecycle events', the count of Work Order is displayed, but View Records is turned off. The reason is the user doesn't have the access to see the work orders. |
| Base Asset Management PRB2082690 [KB3159012](https://hi.service-now.com/kb_view.do?sysparm_article=KB3159012) | The 'Playbook' tab for reviewing contract data extraction is missing on the 'Contract record' page in the IT Asset Management (ITAM) workspace for Hardware Asset Management (HAM) + Contract Management (CM) Pro instances | This is a product update. | Refer to the listed KB article for details. |
| Case and Knowledge Management for HR Service Delivery PRB2064243 | Grant cross-scope create/update access on HR Template, HR Service, and HR Service Activity |   |   |
| Case and Knowledge Management for HR Service Delivery PRB2086486 | Employee certifications, licenses, and degrees | This is a product update. |   |
| Case Management PRB2075237 | Create an implementation to setWorkflow false for a table in the Case Management Core scope | Currently, the multi-case creation takes too much time. To solve the issue, setWorkflow should be set as false. setWorkflow can't be set as false to case management tables from the task plan template scope. Thus, an implementation should be added in the case management scope, which sets setWorkflow false for case and case task tables. |   |
| Change Management PRB2079091 | The sys_ids for 12 change lockdown files conflict with many other files in different places | 12 lockdown files have their sys_id genuinely reused elsewhere. The own-filename-id's match on both sides, false-positive ACL↔role refs are excluded, and high-count IDs are fully paginated so nothing's truncated. |   |
| Change Management PRB2086715 | The change request dynamic schema store field max length is set to 40 instead of 5000 | The existing max_length is defaulted to 40 when created through XML. | 1. Navigate to sys_dictionary list. 2. Filter for column name as risk_and_compliance_attributes and table as change_request. 3. Open the record. 4. Select Show XML. 5. Validate the max_length field. {#brazil-patch-1__ol_gwj_vfz_skc} Expected behavior: The max_length is 5000. Actual behavior: The existing max_length is defaulted to 40 when created through XML. |
| Client Scripts PRB2078551 | The base instance Delete UI action should be supported | The GlideModal logic for the Delete UI action needs to be converted into a widget and use g_modal.showWidget instead. |   |
| Client Scripts PRB2082276 | Analyze Access UI Action needs migration to work in UI26 | When the user selects Analyze Access, it redirects to '/sn_access_analysis_request.do...' because the Ajax request is broken. It should redirect to '/now/access-manager/...'. | 1. Navigate to '/aiux/ui/incident_list.do'. 2. Select an incident. 3. Select and hold (or right-click) on the form header. 4. Select Analyze Access. {#brazil-patch-1__ol_mwj_vfz_skc} Expected behavior: It redirects to '/now/access-manager/...'. Actual behavior: It redirects to '/sn_access_analysis_request.do...' because the Ajax request is broken. |
| Client Scripts PRB2083604 | For g_modal.showFrame, a mechanism is needed to prevent iframe modal autoclose and a way to programmatically close | The EMPTY_BODY auto-close mode closes the iframe modal on any intermediate navigation with non-empty content, not just when reaching the final empty page (blank.do). This breaks multi-step workflows where users navigate through preview or intermediate pages. | 1. Open an iframe modal with autoCloseOn: FrameModalCloseOn.EMPTY_BODY. 2. Navigate the iframe to a page with content (for example, the preview page). {#brazil-patch-1__ol_rwj_vfz_skc} Observe that the modal closes immediately as 'Canceled'. The modal should remain open and wait for further navigation. Also, selecting Create Excel Template within the iframe modal does nothing. |
| Client Scripts PRB2084052 | The list v2 scripting environment doesn't have access to form globals and angular globals (NowAPI) | The existing client script APIs (for example, g_modal and g_ui_scripts) were only included in js_include_ui16_form. They should be extracted into a dedicated js_include and included within the list page. | Access NowAPI on the list action page. Observe that NowAPI is undefined. |
| Client Scripts PRB2084584 | Port g_list.refreshWithOrderBy | This is a product update. |   |
| Client Scripts PRB2084585 | Port g_list.refreshWithOrderBy | This is a product update. |   |
| CMDB Identification and Reconciliation PRB2070558 | Retired filter or filter condition filter of lookup table (serial number) isn't applied to main CI | If the main CI has an applicable filter (like a static condition or a retired filter), the CI found by the lookup filter condition may find the main CI, where a filter applies but the filter isn't used. |   |
| CMDB Identification and Reconciliation PRB2077883 | DynamicIRE cache build time is incorrectly reported in stats | The total time is tracked as build time, even when a cache miss occurs and the cache is flushed and rebuilt. | 1. Make sure the cache is warm. 2. Request the model from cmdb_ci_hardware. 3. Request something from the cache that doesn't exist, like the model for the cmdb_ci class.Observe that a cache miss occurs. 4. Wait a few minutes, then flush the cache. 5. Request something else from the cache.Observe that the cache is rebuilt after being flushed. {#brazil-patch-1__ol_wwj_vfz_skc} Expected behavior: The cache build time is accurately reported. Actual behavior: The total time between steps three and five is tracked as build time. |
| CMDB Identification and Reconciliation PRB2080716 | A fix script is needed to turn on dynamic IRE for no-customizations users | Dynamic IRE should be enabled as long as there are no customizations to cmdb_identifier, cmdb_identifier_entry, or ie_active_config. |   |
| CMDB Identification and Reconciliation PRB2080719 | Class Manager's UI should be updated for a default-on dynamic IRE state | The existing UI flows should be preserved, but there's a new default-on state. Buttons, labels, and text should align for the default-on state. When there are results and dynamic IRE is on, difference sampling shouldn't show the dashboard or have another action to load the dashboard. |   |
| CMDB Workspace PRB2085730 | When Dynamic Identification and Reconciliation Engine (IRE) is turned on, there should be a banner added to the 'Products Highlight' section on the CMDB Workspace home page | 1. Turn on Dynamic IRE. 2. Navigate to the CMDB workspace home page. {#brazil-patch-1__ol_o5t_tp2_vkc} Observe that there should be a banner in the 'Product Highlights' section with a View details button that links to the Dynamic IRE home page. |   |
| Condition Builder PRB2082949 | The space character intermittently drops/auto-removes while typing in the Value field, causing words to merge | In the list view for Condition Builder (filter builder on the 'Conditions' tab), typing continuously into a condition's Value input field causes the space bar presses to behave unreliably. In some instances, the space is never registered at all; in others, it's inserted and then removed a moment later. The next character then lands immediately adjacent to the previous word, merging two words into one. For example, typing 'Trigger NA FTS on priority' produces TriggerNA FTSon priority, silently losing the spaces after 'Trigger' and after 'FTS'. | 1. Open the Cases list (Case Service Management). 2. In the list view, navigate to the 'Conditions' tab to open the Condition Builder. 3. Add the following condition: Field = Subject, Operator = is. 4. Select into the Value input. 5. Type a multi-word phrase continuously without pausing between words (for example, 'Trigger NA FTS on priority'). {#brazil-patch-1__ol_dxj_vfz_skc} Expected behavior: Every space keystroke is registered and retained exactly where typed, as in any standard text field. Actual result: The space keystrokes intermittently fail to persist. They're either dropped entirely or inserted and then auto-removed a frame later, causing adjacent words to merge (TriggerNA, FTSon). |
| Condition Builder PRB2085904 | The related list Filter icon and conditions don't appear on NS tables | This occurs after the Brazil upgrade. | 1. Log in to an instance as an internal user. 2. Open any table (for example, core_company or sn_customerservice_case). 3. Select the Related list button at the bottom. 4. Try to apply a filter on the related list records via the Filter icon. {#brazil-patch-1__ol_kxj_vfz_skc} Expected: The user can apply filters on the related list records using the Filter icon. Actual: The Filter icon and conditions don't appear on the related list. |
| Configuration Management Database (CMDB) PRB2051128 | The com.snc.cmdb.csdm plugin and fix script takes a long time during the Australia to Brazil upgrade | During the Australia to Brazil upgrade, the com.snc.cmdb.csdm plugin and fix script (sys_script_fix_ 092edb07370d4310ae 55191964924bf3.xml) take a long time, from 44 minutes to 35 hours. |   |
| Configuration Management Database (CMDB) PRB2086797 | Auto-resolve de-duplication tasks using AI | This is a product update. |   |
| Configuration Management Database (CMDB) PRB2086798 | Task creation, batch processing framework, staleness agent ledger-based task orchestration, and lifecycle automation | This is a product update. |   |
| Configuration Management Database (CMDB) PRB2086799 | Retirement definition and staleness configurations | This is a product update. |   |
| Core UI Interactive Filters PRB2073810 [KB3154499](https://hi.service-now.com/kb_view.do?sysparm_article=KB3154499) | Selecting the pie chart legend/label does not filter visualizations correctly | The pie visualization acting as an interactive filter does not apply the filter correctly when the legend items are selected. | Refer to the listed KB article for details. |
| Customer Operations for Customer Service Management PRB2075902 | Cmn_location creation fails with 'Record not found' in CSM/CSP for authorized contact/consumer |   | 1. Log in as the authorized contact/consumer. 2. Select the New button to create a cmn_location record. {#brazil-patch-1__ol_rxj_vfz_skc} Observe that 'Record not found' is shown immediately in CSM/CSP and no form renders. |
| Database Persistence - Data Access PRB2066352 [KB3146240](https://hi.service-now.com/kb_view.do?sysparm_article=KB3146240) | GlideAggregate script and reports give an incorrect result when a query business rule is active | With a code change, any existing dashboard that uses widgets (such as single scores) ends up with incorrect results. This happens if the table they perform the aggregation on has a query business rule that performs an orderBy. | Refer to the listed KB article for details. |
| Database Persistence - Data Management PRB2017978 | The RefCopy job experiences performance issues for columnar archive tables | The slow query table shows the average SQL execution time. | Enable the Retain reference option for the incident table's archive rule. Notice that when checking the slow query table, the user can find the average SQL execution time. |
| Database Persistence - Data Management PRB2039435 | The URC can run slowly when executing the row count estimation on the columnar table |   | 1. Install Live Archive on an instance. 2. Offload a large amount of data. 3. Create a URC rule like for sys_flow_plan_context_binding which has a document table reference. {#brazil-patch-1__ol_vxj_vfz_skc} Expected behavior: The URC runs as expected. Actual behavior: The row count estimation query is very slow. |
| Database Persistence - Data Management PRB2039436 | The URC could run slowly when executing row count estimation on the columnar table |   | 1. Install Live Archive on an instance. 2. Offload a large amount of data. 3. Create a URC rule for sys_flow_plan_context_binding which has a document table reference. {#brazil-patch-1__ol_ayj_vfz_skc} Observe the time it takes for the URC to run. |
| Database Persistence - Data Management PRB2054270 | Table cleaner performance issues on columnar archive tables |   | 1. Create a table cleaner rule targeting a columnar archive table. 2. Execute the table cleaner job. {#brazil-patch-1__ol_eyj_vfz_skc} Observe whether the rule is deactivated or not, and if no records are cleaned. |
| Database Persistence - Data Management PRB2057672 | Global search performance issue with columnar archive tables |   | 1. Install Live Archive on an instance. 2. Offload a large amount of data, including some task or problem tables. 3. Ensure glide.ui.text_search .enable_archive_fallback _number_search is set to the base instance value (true). 4. Search for a task or problem number in the global search box. {#brazil-patch-1__ol_iyj_vfz_skc} Expected behavior: The result comes back quickly. Actual behavior: There can be a long delay when the record has been offloaded due to point lookup with columnar/offloaded tables. |
| Database Persistence - Data Management PRB2059007 | Prevent Data Management jobs from operating on columnar archive tables | In both scenarios, the DM Delete Job is attempting to run, but it's too slow | Scenario 1: 1. Create a Data Management Delete Job targeting a columnar archive table. 2. Execute the job. {#brazil-patch-1__ol_nyj_vfz_skc} Expected behavior: The DM Delete Job should not run on columnar archive tables. It should be skipped. Actual behavior: The DM Delete Job is attempting to run and it's too slow. Scenario 2: 1. Create a Data Management Update Job targeting a columnar archive table. 2. Execute the job. {#brazil-patch-1__ol_oyj_vfz_skc} Expected behavior: The DM Update Job should not run on columnar archive tables. It should be skipped. Actual behavior: The DM Update Job is attempting to run and it's too slow. |
| Database Persistence - Data Management PRB2059138 | Increase columnar table migration thresholds |   | 1. Set up an Australia instance with Live Archive. 2. Let the migration start and monitor the archive tables being migrated to columnar. {#brazil-patch-1__ol_kzj_vfz_skc} Expected behavior: Only large archive tables (\>10 GB) should migrate, reducing the amount of columnar queries in the future. Actual behavior: Tables as small as 100 MB are being migrated, which leads to a lot of columnar queries with minimal space benefits. |
| Database Persistence - Data Management PRB2061236 | Leverage local tables to locate archive records in Global Search |   | 1. Install the Live Archive on an instance. 2. Offload a large amount of data, including some task or problem tables. 3. Search for a task or problem number which has been offloaded in the global search box. {#brazil-patch-1__ol_pzj_vfz_skc} Expected behavior: The result should come back. Actual behavior: The result doesn't come back. |
| Database Persistence - Data Management PRB2074320 | Table cleaner shouldn't run on any tables | Table cleaner should skip columnar tables, but it attempts to run and it's too slow. | 1. Create a table cleaner rule targeting a columnar table. 2. Execute the table cleaner job. {#brazil-patch-1__ol_uzj_vfz_skc} Expected behavior: Table cleaner doesn't run on columnar tables. Actual behavior: Table cleaner attempts to run and it's too slow. |
| Database Persistence - Data Scale PRB2089608 | DB connection exhaustion is observed | This happens due to JVM Lock contention between the DatafabricEngineSweeper job and WorkloadIdentification .getWorkloadFromScope. | 1. Upgrade all app nodes (over 20 of them) to Brazil. 2. Trigger the upgrade job to start DB schema changes. {#brazil-patch-1__ol_xzj_vfz_skc} Observe that the nodes become unresponsive. |
| 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)'. | 1. Create a scoped app. 2. Create a table. 3. Create some data on that table. 4. Add a column whose name starts with a number. 5. Navigate back to the list view. {#brazil-patch-1__ol_b1k_vfz_skc} Observe that it's blank, but the count displays that there's records. |
| Database Persistence - WDF PRB2076449 [https://support.servicenow.com/kb?id=kb_article_view\&sysparm_article=KB3152921](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB3152921) | A node can't start if there's a 'Formula' field on sys_user | The instance node will fail to restart if there is a formula‑calculated field on the User \[sys_user\] table. When the issue occurs, the node does not restart and logs a stack overflow error. The failure occurs during the platform's schema loading phase, preventing the instance from coming online and impacting all users. | Refer to the listed KB article for details. |
| Database Persistence - WDF PRB2080099 | LeadingDigitLegacyColumnIT fails on Australia | On an Australia patch, running against Oracle, any column rename involving a column whose logical name begins with a digit fails with: 'ORA-00957: duplicate column name'. This is because the generated statement collapses the source and target names into the same identifier. |   |
| Data Privacy (Classic) PRB2076789 | Update the data privacy ScriptableDataProtectionJob _start method to restrict interactive sessions only for encrypted field anonymization | The API new SNC.DataProtectionJob().start() only works if it's called from an interactive session because there is an explicit check done. The check should only be done for policies where encrypted field anonymization is required, because CLE consent is needed for encrypted field anonymization to run. |   |
| Data Privacy (Classic) PRB2082167 | Data Privacy anonymization clone jobs aren't executed when the clone is initiated through a Clone Profile. | The default value of the System Profile needs to be updated from false to true so that the clean-up script is executed by default during clone operations. | 1. Create an anonymization policy. 2. Mark it for cloning. {#brazil-patch-1__ol_g1k_vfz_skc} Expected behavior: It runs once cloning completes. Actual behavior: The job doesn't run. |
| Demand Management PRB2082513 | Conditionally allow previous assessment business rules on the 'Demand' table | This is a product update. |   |
| Developer Sandboxes PRB2075044 | Business Rules can be faster in a DSB by pre-rendering | The business rule can take around 100-120 seconds to open. | 1. Open Studio. 2. Open a business rule within Studio. {#brazil-patch-1__ol_k1k_vfz_skc} Observe that Studio takes around 50 seconds to open and the business rule takes around 100-120 seconds to open. |
| DevOps Change Velocity PRB2086647 | Package.json should be updated |   |   |
| DirectSQL PRB2077815 | Implicit joins should never be added for virtual fields | Virtual fields (such as dbfunctions) don't exist on the database and therefore never need implicit joins to a partition. The current code sends all column references through the addNeededJoinsForColumn path and incorrectly adds a self join. This can happen when the dbfunction is on a child TPH or TPP table because the ED looks like it's on a different storage table than the base table. | Select func_field from tph_child. |
| Discovery PRB2056121 | There are incorrect or missing SNMP OID classifications, which result in SAN / fibre switches being classified as 'IP Switch' | Incorrect/ missing SNMP OID Classifications which result SAN / Fibre switches classified as IP Switch | Discover SAN / Fibre switches. Observe that these are classified as 'IP switch'. |
| Discovery PRB2058910 [KB3156347](https://hi.service-now.com/kb_view.do?sysparm_article=KB3156347) | Typo in the script in Sensor SNMP | Classify 'his' instead of 'this.' | Refer to the listed KB article for details. |
| Document Viewer PRB2038307 | The smart document skill doesn't invoke the agent and doesn't render anything on Now Assist Panel | The Ask Now Assist smart document button doesn't work as expected. When the user selects the button, it opens the NAP, but it just shows the topics and doesn't load the summarization of the document. | 1. Navigate to Contract WorkspaceDefault ListListContract RequestsAll. 2. Open any contract request. 3. Select the 'Contract Documents' tab. 4. Select Preview Document. 5. Select a document to preview, which opens it in a new tab. 6. Select the Ask Now Assist button, which opens the NAP. {#brazil-patch-1__ol_o1k_vfz_skc} Observe that the NAP loads for some time and then shows topics. Selecting the button again just loads the topics. |
| Easy Import PRB1817119 | Errors appear in logs when searching for the source table name in the transform map table | Easy import doesn't support Document ID type columns. Document ID type columns require the table name in addition to record details. |   |
| Embedded Help PRB2057373 | Instance Observers have some http connections that breach Cryptography Standard | Cryptography Standard (POL0020873), section 2.4 Data in Transit Encryption, requires TLS for all connections. SysEng: Core is decommissioning CDN HTTP endpoints to support modern ServiceNow technologies. However, Instance Observers currently depend on HTTP for some connections and can't migrate until this dependency is removed. |   |
| Employee Relations Case Management PRB2086483 | HRBP and Employee Relations case assignment | This is a product update. |   |
| Error Framework PRB2035967 | The Reset button doesn't work and the 'Refined Codes' section displays error codes with error_count=0 | The Reset button on the error card list component doesn't work. When the user selects the button, the filters should be reset and the same errors should be displayed. Instead, 'No actions needed' appears and no error cards are visible. Additionally, in the Discovery Admin Workspace, the 'Refined Codes' section displays error codes that have an error_count of 0. These zero-occurrence entries represent errors that have been fully ignored (captured in error_ignored_count only) and carry no actionable significance for the user. Showing these entries pollutes the list with noise, making it harder for users to focus on error codes that actually require attention. | Scenario1: 1. Provision an instance with: * The 'Error Framework' plugin (com.glide.error_framework) installed. * At least one source application registered in sys_error_appl. * Errors ingested and aggregation run (so sys_error_code_stats has records with error_count \> 0). {#brazil-patch-1__ul_x1k_vfz_skc} 2. Add the error card list component to a new workspace on the 'Error Stats' page. 3. Verify that errors are displayed. 4. Apply a filter to enable the Reset button. 5. Select the Reset button. {#brazil-patch-1__ol_w1k_vfz_skc} Expected behavior: The filters are reset to defaults. The same errors are displayed. Actual behavior: 'No actions needed' appears. An empty state is shown, and no error cards are visible. Scenario 2: 1. Navigate to Discovery Admin WorkspaceDiagnosticsErrors. 2. Check the Refined Codes list. {#brazil-patch-1__ol_y1k_vfz_skc} Expected behavior: Only refined codes with error_count \> 0 are displayed in the Refined Codes list. Actual behavior: Refined codes with error_count = 0 are displayed in the list. |
| Error Framework PRB2052849 | Sys_error_\* records aren't accessible for admin(system administrator) users | Users with the admin (system administrator) role can't access any sys_error_\* tables records (for example, sys_error, sys_error_code, sys_error_code_stats, and the remaining tables). | 1. Log in with the admin user role. 2. Navigate to DAW or from navigator type sys_error_code.LIST. {#brazil-patch-1__ol_sck_vfz_skc} Observe that the 'Refined Error Codes' page under the 'Diagnostics' tab doesn't render any errors code stats. The U16 list view(sys_error_code.LIST) also doesn't show any records. |
| Error Framework PRB2058677 | Top error codes and AI Insights should use GlideRecordSecure when presenting the results | The 'Refined Error Codes' page applies ACL's, but the top discovery errors and AI insights don't use GlideRecordSecure. | Navigate to DAW as an admin user. Observe that the top discovery errors and AI insights display records, but the 'Refined Error Codes' page doesn't display any records. |
| Error Framework PRB2058704 | Allow apps to define key labels for UI Builder components (configurable fieldLabels/columnList/sort-by) | Consuming applications should be able to define UI Builder component field labels as domain-specific terms rather than generic ones. For example, if a component has a Key or Source field, a user should be able to define the field label as 'IP Address' or 'Discovery Schedule' for clarity in their implementation. Additionally, column reordering should be allowed, and so should the action for drop-down list subsections and ordering. |   |
| Error Framework PRB2063337 | There's missing overrides for 'Error framework' tables |   |   |
| Error Framework PRB2069719 | Separate the 'Error' and 'Context' actions in EF UI Builder (UIB) components | The EF UIB error detail panel had a single combined 'Actions' drop-down list for both error-level and context-level actions. This splits them into two distinct split-buttons aligned with the redesign: 'Mark error as ▾' in the properties pane for error actions, and 'Actions ▾' in the agent context pane for context actions. App teams can configure and order actions independently for each section. |   |
| Experimentation Platform PRB2088196 | True-up of the Experimentation Framework store app from 1.1.14 to 1.1.20 | This is a product update. |   |
| Field Service Task Bundling PRB2079508 | Changing the assignee of the child work order task (WOT) of a bundle task makes the bundle task disappear from Dispatcher Workspace |   | 1. Impersonate as a dispatcher. 2. Create a work order from Customer Service Management workspace. 3. Create two work order tasks in the work order record. 4. Select Ready for dispatch for both WOTs. 5. Open Dispatcher Workspace. 6. Select the two WOTs and select bundle. 7. Drag and drop the bundle task to some assignee. {#brazil-patch-1__ol_bld_hn2_vkc} Changing the assignee of the child work order task (WOT) of a bundle task makes the bundle task disappear from Dispatcher Workspace. |
| Field Service Task Bundling PRB2080761 | Dynamic bundling creates unassigned bundles | Set assignment_group on bundles created through dynamic bundling. When a task is added to an existing bundle, the bundle's assignment group is now carried into the task update payload, and when a new bundle is created the assignment group of the selected agent (resolved via the new _getGroupIDForAgent helper) is written to both the new bundle and the task update payload. For the territory model, FSMTaskBundleSNC._getTasks now rolls up the assignment group from a subtask when the bundle itself has none, so territory-based bundles are no longer left without an assignment group. |   |
| Flow Engine PRB2059346 | Flow context gets completed, but the event isn't relayed to playbook engine, so the activity context doesn't get completed |   | 1. Create a playbook with one normal activity (say instruction). 2. Add one optional activity (instruction). 3. In runtime, add six instances of the optional activity. 4. Start marking the optional activity complete, from the last in the list to the top. {#brazil-patch-1__ol_xck_vfz_skc} Observe that the corresponding activity context is in progress, but the flow context gets completed. |
| Flow Engine PRB2069407 | Refer to the commons-glide servicetype instead of engine code | Currently, it's passing mcp-server as the service type for mcp, but it should use InboundServiceType to keep consistent. |   |
| Flow Engine PRB2073167 | Add new metric for flow runtime complexity called from non-mcp | The system currently tracks metrics for flow runtime complexity. A new metric should be added specifically for flows called from non-mcp. | 1. Trigger a flow execution via a non-MCP channel (Browser/UI, Integration channel, Mobile, or any execution path that is not MCP).Observe that flow runtime complexity metrics aren't being recorded with the granularity/buckets defined for non-MCP execution. 2. Compare against expected bucket definitions: Bucket 1 (1-2) through Bucket 24 (1000+). {#brazil-patch-1__ol_edk_vfz_skc} Expected behavior: For all non-MCP execution paths (Browser/UI, Integration channels, Mobile, and any non-MCP path), flow runtime complexity metrics are recorded using the new, more granular bucket set, without affecting existing metrics. Actual behavior: No dedicated metric/bucket set exists for non-MCP execution paths. |
| Flow Engine PRB2077987 | New columns added to the sys_flow_plan_context table are missing a key |   |   |
| Flow Engine PRB2079986 | Add 'custom/non-custom' for the non-mcp flow metric |   |   |
| Flows (Family Channel) PRB2019712 | The See Related Flows action in 'subflow' displays flows with no current reference to a subflow when stale sys_hub_sub_flow_instance records exist from old snapshots | The See Related Flows action in 'subflow' displays that the subflow is referenced by other flows even though it is not. | 1. Open an exiting subflow that is referenced by another subflow/flow (parent). 2. Create a copy of this subflow. 3. Activate it. 4. Edit the parent flow by adding a step calling the copied subflow. 5. Save/activate the flow. 6. Edit the parent flow again, and remove the step that calls the copied subflow. 7. Save the flow. 8. Open the copied subflow from the 'Actions'. 9. Choose See related flows. {#brazil-patch-1__ol_mdk_vfz_skc} Notice that the flow is still shown referencing the parent flow. |
| Flows PRB2079258 | There's a Flow Diagramming dependency mismatch between oob.properties/bundle.properties and now.dependencies of package.json | In the .properties file in dev/oob-apps, sn_flow_diagram:30.0.1 has sn_diagram_builder:27.0.0 as a dependency version and is missing some dependencies defined in package.json. | 1. Check the now.dependencies field in package.json for version 30.0.1. Observe that sn_flow_diagram:30.0.1 has sn_diagram_builder:29.1.0 as a dependency version. 2. Check the .properties file in dev/oob-apps. {#brazil-patch-1__ol_vdk_vfz_skc} Observe that sn_flow_diagram:30.0.1 has sn_diagram_builder:27.0.0 as a dependency version and is missing some dependencies defined in package.json. |
| GlideAggregate API PRB2090884 | For non-admin callers, a regression results in the Aggregate/Stats API field validation conflating 'field doesn't exist' with 'field exists but read-ACL denies it' | When a non-admin caller queries the Aggregate/Stats API (/api/now/stats/{table}) using sysparm_min_fields, sysparm_max_fields, sysparm_avg_fields, or sysparm_sum_fields, the API incorrectly rejects fields the caller is not allowed to read as if those fields did not exist. Any non-admin identity that has a field-level ACL restriction on one of the fields it requests receives a hard failure instead of the expected ACL behavior. This is a regression related to PRB2081870, which addressed reflected XSS issues. | 1. Pick any table ('T') with a field ('F') that has a field-level read ACL restricting a non-admin role. 2. As the non-admin identity, get /api/now/table/T?sysparm_fields=F,sys_id\&sysparm_limit=1 and confirm F is absent or blanked in the response. 3. As the same non-admin identity, call: GET /api/now/stats/T?sysparm_max_fields=F. {#brazil-patch-1__ol_a2k_vfz_skc} Expected behavior: Either a normal aggregate result with F omitted/blank, or a proper ACL-style denial. Actual behavior: HTTP 400, 'Invalid sysparm_max_fields parameter'. The error is reported identically to what a user would see for a field name that doesn't exist on T at all. |
| GRC Platform Plugins PRB2061497 | Export to PDF action is cutting off and overlapping text |   | 1. Create a policy 2. Import a word document with a link. 3. Publish it. 4. Open the KB article attached to policy in classic view. 5. Select View article. 6. Print the article. {#brazil-patch-1__ol_g2k_vfz_skc} Observe that the Export to PDF action cuts off and overlaps text. |
| Hermes (Family) PRB2057996 | Setting 'hermes.kafka.disabled' to 'true' does not help to disable Hermes jobs such as 'Hermes Failover State Refresh Job' | This issue causes huge loads of logs. |   |
| Horizontal Portal Capabilities for Customer Service PRB2075799 | Create definitions for cases created by external users in Portals and Engagement Messenger |   |   |
| HR Service Delivery PRB2071645 | Add required RCAs for CBS AINPX in HR Scope | This is a product update. |   |
| HR Service Delivery PRB2081585 | There are missing RCA's for the Now Assist AI Data Explorer | RCAs should be generated to cover all possible tables for Query Generation and AI Data Explorer. The covered tables should come directly from what is configured for Query Generation entities. Also, all RCAs should be put into the if / target app scope / update folders as appropriate for each target scope in the application's metadata. |   |
| HR Service Delivery PRB2083402 | RCAs that were moved to ServiceNowOtto are needed for HR Core/HR LE/HR ER | ACLs were moved to ServiceNow Otto for HRSD. Their RCAs are needed because they're used to verify that the user can read the source record, which can come from LE, HR Core, or ER. |   |
| HR Service Delivery PRB2084464 | Add a new scope to scope RCAs from the new app to HR core plugin | A new scope needs to be added to scope RCAs from the app 'HRSD L1 AI Specialist' to 'Human resource: core app' to access HR tables and other necessary data. |   |
| Identification and Reconciliation API PRB2069627 | The Dynamic IRE dashboard should display sampled data instead of the Welcome screen | When sampling is enabled, it collects data. When a user navigates to the Dynamic IRE dashboard, it shouldn't show the Welcome screen. It should show the data that was sampled and calculate the dashboard statistics. Also, when sampling has collected some data, it should indicate that this is sample data, and for further analysis, the user needs to enable simulation. | 1. Navigate to CI Class manager. 2. Enter 'Hardware'. 3. Select Identification Rule. {#brazil-patch-1__ol_k2k_vfz_skc} Expected behavior: The Dynamic IRE sampling dashboard is displayed with actual results from CMDB, drawn from the sampling that runs in the background. Actual behavior: The Welcome screen is displayed. |
| Inbound API Integration Usage Framework PRB2055912 | originatedFromFlow is always false in IntegrationUsage TransactionMonitor, as flow-origin detection is broken for action fabric record-action metering | The originatedFromFlow dimension on action fabric record-action telemetry is never set to true. IntegrationUsage TransactionMonitor decides flow origination once, at transaction start, by checking whether the transaction's usage-tracker context contains a UsageSource.FLOW event. That event doesn't exist yet at transaction start, is removed again before transaction completion, and for asynchronous/scheduled flows the monitor doesn't run at all (background transactions are not a handled type). As a result, record actions performed by flows are not attributed as flow-originated, degrading the accuracy of record-action metering. |   |
| IT Asset Management for Financial Services PRB1908524 | When evidence is moved to 'Complete', check that at least one attachment or one URL is provided | Users shouldn't be allowed to save an asset evidence task unless a URL or attachment is provided. | 1. Provision an instance with the required GRC plugins and the Asset Audit Response plugin installed. 2. Create an asset evidence task. 3. Select Accept. 4. Create asset evidence. 5. Fill in the mandatory fields. 6. Select Complete and Save. {#brazil-patch-1__ol_o2k_vfz_skc} Observe that the evidence is saved. The save shouldn't be allowed unless a URL or attachment is provided. |
| Knowledge Management PRB2023217 | Error when adding the trigger table 'Knowledge Feedback Task' due to read access / invalid table error | There is an issue while configuring triggers in AI Agent Studio. When adding a trigger table in an AI Agent, the table 'Knowledge Feedback Task' displays the error: 'You do not have read access to this table. Please select another table.' At times, it also shows: 'Table name is invalid.' | 1. Create a new AI agent. 2. From the Add Trigger option, select the Knowledge Feedback Task table as the trigger table. 3. Open the AI Agent. 4. From the left-side panel, select the Add Trigger option. 5. Attempt to select the Knowledge Feedback Task table as the trigger table. {#brazil-patch-1__ol_ztr_db2_vkc} Observe the error message. |
| Knowledge Management PRB2063214 | Tables in the generated KB article are displayed with bold borders, which differs from the source document formatting | This logic comes from the Word to HTML conversion from the KM API. | 1. Navigate to Policy and ComplianceCompliance Workspace. 2. Create a policy record (or use an existing draft policy). 3. Populate the required policy fields. 4. Assign yourself as the policy owner. 5. Enable the policy for knowledge publication (if applicable in the environment). 6. Create a .docx file that includes a table. 7. Upload the file using the Import Policy Text button. 8. Verify that the document content is imported into the policy text section. 9. Save and update the policy record. 10. Move the policy through the life cycle: DraftReviewAwaiting ApprovalApproved. 11. Publish the policy by selecting Publish. 12. Confirm the policy transitions to the 'Published' state. 13. Verify whether a corresponding Knowledge Article is automatically generated in kb_knowledge and linked to the policy record. {#brazil-patch-1__ol_t2k_vfz_skc} Observe that the generated Knowledge Article may incorrectly display tables with bold borders. |
| Knowledge Management PRB2070212 | Second-level bullet points render as filled black circles instead of the expected empty/hollow circle | The bullet style for second-level items is incorrect. The logic comes from the Word to HTML conversion from the KM API. | 1. Navigate to \> Policy and ComplianceCompliance Workspace. 2. Create a policy record (or use an existing draft policy). 3. Populate the required policy fields. 4. Assign yourself as the policy owner. 5. Enable the policy for knowledge publication (if applicable in the environment). 6. Create a .docx file that includes a bulleted list with two levels. 7. Upload the file using the Import Policy Text button. 8. Verify that the document content is imported into the policy text section. 9. Save and update the policy record. 10. Move the policy through the life cycle: DraftReviewAwaiting ApprovalApproved. 11. Publish the policy by selecting Publish. 12. Confirm the policy transitions to the 'Published' state. 13. Verify whether a corresponding Knowledge Article is automatically generated in kb_knowledge and linked to the policy record. {#brazil-patch-1__ol_ffk_vfz_skc} Observe that the generated Knowledge Article may render second-level bullet points as filled black circles. |
| Knowledge Management PRB2071699 | The knowledge search returns empty results for guests users on the CSP portal | No search results are displayed. However, when the user navigates from Knowledge Base, they can access the article as a guest. | 1. Navigate to the CSP portal as a guest user. 2. Configure the Knowledge Base for guest users. 3. Make widgets public. 4. Navigate to the homepage. 5. In the search bar, search for some text that's present in an article. {#brazil-patch-1__ol_rvc_vg2_vkc} Observe that no search results are displayed. However, when the user navigates from Knowledge Base, they can access the article as a guest. |
| Knowledge Management PRB2076447 | The Auto-fix plugin update blocks the Australia Patch 5m upgrade in loadsim release testing | The plugin upgrade thread handling becomes stuck in an error loop triggered by a null pointer. It never exits or advances, leaving the upgrade 'hung'. This happens when the upgrade plugin loader reaches the knowledge center update that adds in the auto-fix and auto-fix enable property. |   |
| Knowledge Management PRB2082853 | When Word documents are converted to policy text or knowledge articles, hyperlinks appear on a new line instead of remaining on the same line | The dom element of the hyperlink gets nested inside the paragraph for the hyperlink, which continues on the same line correctly. However, the JAVA code points to the closing of a paragraph tag before the hyperlink tag, so it becomes a sibling and not a child. This makes it go to a new line. | 1. Create a document with three links in the same line. 2. Import the document as a knowledge article. {#brazil-patch-1__ol_sfk_vfz_skc} Observe that some of the links appear on a new line. |
| Knowledge Management PRB2084586 | True-up Store apps NAKM, KC, KCInWorkspaces and ECE versions | This is a product update. |   |
| Knowledge Management PRB2084781 | For markdown, the knowledge blocks addition shouldn't be allowed on the kb_knowledge.do page |   | 1. Provision an instance with the plugin com.snc.knowledge_blocks installed. 2. Make sure the UI16 and workspace changes and the markdown changes are present. 3. Create a knowledge article kb_knowledge.do page with 'Knowledge' as Knowledge base. 4. Check if the Add blocks UI action is visible. {#brazil-patch-1__ol_wfk_vfz_skc} Observe that the UI action isn't visible for wiki articles. |
| Knowledge Management PRB2085202 | A page scroll bar isn't seen for long markdown articles, as in the case of HTML | The issue doesn't appear in Workspace. | 1. Log in to an instance. 2. Create a markdown type article. 3. Open the article. 4. Navigate to the related list. 5. Translate the article.Observe that this opens kb_create_translations.do. 6. Check the page scroll. {#brazil-patch-1__ol_bgk_vfz_skc} Expected behavior: The content on both side should be scrollable. Actual behavior: The content isn't scrollable. |
| Knowledge Management PRB2086922 | The 'KB Health score config' column is missing from the kb_knowledge_base table |   | 1. Provision an Australia or Zurich instance with the NAKM plugin installed. 2. Check the kb_knowledge_base table. {#brazil-patch-1__ol_fgk_vfz_skc} Observe that it doesn't have the 'KB Health score config' column. |
| Knowledge Management PRB2090439 | Due to Generative AI Controller (GAIC) layer issue, multi-KB generation is broken and Mosaic migration should be reverted |   |   |
| List Administration PRB2084609 | sysparm_filter_only parses a query but doesn't query data | This is a product update. |   |
| Live Archive PRB2033206 | There's no visibility into the archive migration process | If the user archives records across the platform, then installs the Live Archive plugin, it's unclear whether the archive data has been completely migrated to columnar storage. |   |
| MID Server PRB2078177 | RDP client fails to fetch FQDN with the error 'Unknown tag 4' | The agent logs FQDN lookup falls back to DNS with an error. The last four bytes are the error code STATUS_NOT_SUPPORTED (0xc00000bb). | 1. Configure the target windows server with the following settings: gpedit.mscComputer ConfigurationAdministrative TemplatesSystemCredentials DelegationEncryption Oracle Remediation - Enabled (Protection level - Forced Updated Client). 2. Run windows discovery with the following MID configuration: mid.powershell_api.wmi.fqdn_method = RDP. {#brazil-patch-1__ol_jgk_vfz_skc} Observe that the agent logs FQDN lookup falls back to DNS with the error: 'DEBUG (Worker-Expedited:MultiProbe -e43cdafc3b6ecf 503886e28e53e45aa0) \[RdpClient:186\] Received NTLM response 30, 0D, A0, 03, 02, 01, 06, A4, 06, 02, 04, C0, 00, 00, BB.' The last four bytes are the error code STATUS_NOT_SUPPORTED (0xc00000bb). |
| MID Server PRB2090264 | PW reset using legacy Orchestration doesn't work | An additional input parameter was added to PSScript.ps1 script file: \[string\]$SNCLogLevel = ''. Calling logic from Disco and iHub are changed accordingly to pass additional parameters to the additional input signature. However, calling codes from Orchestration aren't changed accordingly, so the command to PSScript.ps1 doesn't have the additional input. | 1. Open a Brazil instance. 2. Run any Workflow Powershell Orchestration activity. 3. Check the MID Server log. {#brazil-patch-1__ol_pgk_vfz_skc} Observe the errors. |
| Mobile Platform PRB2068760 | SGOfflineSyncAPI .getTempIdsMutexName allows too open of a character set and length |   | Provide tempID's that contain characters that facilitate SQL injection. Observe DBUtil.java# shouldStripForSqlInjection. |
| Mobile Platform PRB2070684 | Check for SN-Client-Id in mobile request headers instead of always assuming that the user is on the lowest ordered native client | Mobile clients add SN-Client-Id to all request headers after the initial user_client response. The backend should use this as the source of truth to know which experience (native client) the user is actively on. | 1. Log in to the Mobile app. 2. Switch from the default experience to experience B. {#brazil-patch-1__ol_tgk_vfz_skc} The backend should send responses based off of the SN-Client-Id in request headers instead of assuming the user is on the lowest ordered native client they have access to. |
| Mobile Platform PRB2084601 | Add a logo configuration option to sys_sg_applet_launcher | This is a product update. |   |
| Mobile Platform PRB2084603 | EmployeeWorks Mobile updates | This is a product update. |   |
| Mobile Platform PRB2084604 | Auto-routing AIUX links to Mobile apps | This is a product update. |   |
| Multimodal Service (Family Channel) PRB2073299 | MMS Glide update | This is a product update. |   |
| Multimodal Service (Family Channel) PRB2076357 | Update system properties default values for MMS | MMS is not queuing enough records. The system propertyies 'glide.platform_mm_service.job.batch_size' should be set to '10' and 'glide.platform_mm_service.async_http_max_outstanding_requests' should be set to '20'. |   |
| Multimodal Service (Family Channel) PRB2082821 | Result and metadata attachments are written with no owning record | MMS writes its parsed-text and metadata result artifacts to sys_attachment without a table_name or table_sys_id, so those attachments have no owning record. Reference-image attachments are unaffected --- they are correctly parented to sys_mm_reference_image. |   |
| Multimodal Service (Family Channel) PRB2082842 | On-demand HTTP responses are correlated by result ID as an attachment token | On-demand (script-submitted) multimodal requests never report failures. A submission made through the on-demand path returns successfully and the sys_mm_result record is created with status 'pending'. If the Multimodal Service then rejects or fails the request, the record is never updated. There is no status change, no error_message, no completed_at, and no callback. The record stays 'pending' indefinitely and the calling script has no way to learn that anything went wrong. This affects every failure mode equally: a transport/connection failure, a permanent 4xx rejection, and a retriable 429/5xx are all dropped silently, with nothing written to the system log either. The 'HTTP 429 Too Many Requests' is expected when the Multimodal Service queue is full. Batch (attachment-driven) submissions are unaffected and continue to report failures correctly. | 1. Confirm the asynchronous flow is in use: glide.platform_mm_service.use_sync_flow = false (the default). 2. Make the Multimodal Service return a failure for a direct/on-demand submission. For example, fill the MMS queue, or lower MMS_QUEUE_MAX_DEPTH, so POST /api/v1/jobs answers '429 Too Many Requests'. 3. Submit an on-demand request (MultimodalRequestProcessor.submitOnDemand --- a sys_mm_result row with direct_submit = true). 4. Inspect the sys_mm_result record and the system log.Notice that the status stays 'pending" indefinitely' and error_message is empty. Also notice that completed_at is empty, no callback fires, and nothing is logged. 5. Repeat with a permanent 4xx (such as 400) and with a transport failure to point the service URL at an unreachable host. 6. Repeat step 2-4 as a BATCH submission (direct_submit = false) in the same instance. {#brazil-patch-1__ol_yxn_pc2_vkc} Notice that the failure is recorded correctly. That contrast isolates the defect to the on-demand path. |
| Multimodal Service (Family Channel) PRB2084570 | Enabling the 'Image' file type to be on by default for MMS for AI Search | This is a product update. |   |
| Multimodal Service (Family Channel) PRB2084571 | MMS Glide update | This is a product update. |   |
| Multimodal Service (Family Channel) PRB2086962 | MMS prompt verbosity configuration should be enabled for AI Search requests to MMS | Enable MMS prompt verbosity configuration for AI Search requests to MMS. | 1. Enable MMS on the instance. 2. Attach a document (with embedded images) to a record with index_mms_attachments enabled. 3. Trigger indexing. 4. Inspect the sys_mm_result.Observe that config.verbosity is 'medium'. 5. Set glide.platform_mm_service.verbosity to high. 6. Re-index the same document. 7. Inspect sys_mm_result. {#brazil-patch-1__ol_wgk_vfz_skc} Observe that config.verbosity is 'high'. |
| Next Experience All Menu PRB2074680 | The Now Assist 'Launch Mode' menu label in Display Preferences is not updated to Otto |   | 1. Navigate to 'Home'. 2. Select the User Profile icon. 3. Open 'Preferences'. 4. Navigate to the 'Display' section. {#brazil-patch-1__ol_chk_vfz_skc} Observe the 'Now Assist Launch Mode' menu label. |
| Next Experience Unified Navigation PRB2071263 | Menu modules don't resolve Karuna routes | Menu modules that offer a Karuna route alongside their platform link don't resolve the Karuna route. | Open a menu module whose experience is served by a Karuna route. Observe that the menu resolves the platform route only. The Karuna route support isn't present. |
| Next Experience Unified Navigation PRB2078176 | The NAP notification count disappears after page refresh and also displays an incorrect count compared to the active conversation count | After refreshing the page, the NAP notification count disappears and doesn't reappear on subsequent refreshes. The issue isn't reproducible in SurfStage, where the counter continues to work correctly even after a page refresh. The count appears again when the same URL is opened in a new browser tab. Also, the NAP notification counter sometimes displays a higher count than the actual number of active conversations, resulting in an inconsistent and incorrect notification count. | 1. Navigate to the NAP notification counter area (https://surf.service-now.com).Observe the counter value and compare it with actual active conversation count. 2. Refresh the page. {#brazil-patch-1__ol_ghk_vfz_skc} Observe that the notification count disappears and doesn't reload. Also, the counter value is inflated compared to actual active conversations. |
| Next Experience Unified Navigation PRB2079464 [KB3154841](https://hi.service-now.com/kb_view.do?sysparm_article=KB3154841) | Duplicate Nextwave Client REST API definition causes a 403 error on session_info for external users, disabling lbf-chat-client | Some users are unable to start a chat session in the assistant/chat widget. This is caused by a backend configuration issue and doesn't require any action. | Refer to the listed KB article for details. |
| Next Experience Unified Navigation PRB2079773 | Set token_exchange_allowed to 'true' on an OffGlide AIEX oauth entity record | Notice that token_exchange_allowed is 'false' which needs to be 'true', otherwise oauth will fail for guest users. |   |
| Next Experience Unified Navigation PRB2081424 | Set bff_cookie_exchange_allowed to 'true' on OffGlide AIEX oauth entity records | bff_cookie_exchange_allowed is set as 'false', which needs to be 'true', otherwise oauth will fail for the guest user. |   |
| Next Experience Unified Navigation PRB2085243 | Page context updates aren't sending the backend the current URL |   | 1. Open an instance. 2. Open AIEX. 3. Perform any workspace navigation that triggers a page context update to the backend. {#brazil-patch-1__ol_khk_vfz_skc} Expected behavior: The URL is sent in the page context payload. Actual behavior: The URL is not sent in the page context payload |
| Next Experience Unified Navigation PRB2087666 [KB3159370](https://hi.service-now.com/kb_view.do?sysparm_article=KB3159370) | The AI Workflow button opens a blanket panel on the core-ui form | The button is expected to display the AI activities/steps performed as part of the Resolution Plan Generation use case. | Refer to the listed KB article for details. |
| On-Call Scheduling PRB2081079 [KB3155856](https://hi.service-now.com/kb_view.do?sysparm_article=KB3155856) | It takes a long time to load Incident Communication Plan | On instances with a large number of configured on-call groups and rosters, opening or refreshing the Communication Plan on a major incident takes significantly longer than expected. | Refer to the listed KB article for details. |
| OneExtend PRB2067309 | Callback handler error is logged for sync mode capabilities when no callback is configured | In the CallBackHandler .executeCallback() method, the code calls callbackWithScriptable() with an empty string when no callback is configured. The callbackWithScriptable() method logs an error when the callback API name is null/empty and returns null. As a result, syslogs are flooded with error messages for legitimate sync executions, making it difficult to identify real errors in production. | Call any sync capability. Observe that the syslogs are flooded with the error: 'No Callback API configured at builder capability level or builder config level'. |
| OneExtend PRB2068736 | NAP Summarize Record doesn't work | While running a single-user iteration, summarizing a record via NAP works the first time and creates an entry in sys_gen_ai_text_cache table. When it hits the same WOT NAP summarize, it should return the data from this cache table, but it doesn't return the summary. Instead, the message appears: 'Sorry, there was a problem on my side trying to complete this request. Try asking again later'. |   |
| Performance Analytics PRB2072285 [KB3159113](https://hi.service-now.com/kb_view.do?sysparm_article=KB3159113) | GroupBy visualizations can cause an out of memory error | The heap dump provided in the task clearly shows that one widget consumes 190 MB. This is too much for a user transaction that is loading a dashboard. | Refer to the listed KB article for details. |
| Performance Analytics PRB2074730 | Remove the KPI Composer (sn_kpi_composer) base instance app dependency from Glide, build-now, and base instance apps | The build fails during configuration with the following message: 'No such property: kpi for class: org.gradle.accessors.dm. LibrariesForGlideLibs $OobPaLibraryAccessors'. | 1. Delete the oob-pa-kpi-composer alias from build-now/gradle/glide/libs.versions.toml while leaving glide-launcher/build.gradle untouched. 2. CD glide \&\& ./gradlew :glide-launcher:help --offline. {#brazil-patch-1__ol_qhk_vfz_skc} Observe that the build fails during configuration with the following message: 'No such property: kpi for class: org.gradle.accessors.dm. LibrariesForGlideLibs $OobPaLibraryAccessors'. |
| Performance Analytics PRB2090722 | Enable the Sparkle icon on Data Visualizations for formula indicators | This is a product update. |   |
| Platform Analytics Component API PRB2080958 | The indicator scorecard score date should be shown instead of the 'latest score' label |   |   |
| Platform Analytics Component API PRB2085934 | AIDE Explore button is shown on all lists, including 'All Table Discovery' entities | The AIDE Explore button is shown on all entity lists, including entities that shouldn't have it. Only entities marked Active=true and population_source=Table Config should display the Explore button. Entities with population_source = 'All Table Discovery' (or inactive entities) shouldn't show the Explore button. | 1. Navigate to an entity list that is marked as 'All Table Discovery'. 2. Check whether the Explore button is present. {#brazil-patch-1__ol_uhk_vfz_skc} Expected behavior: Only entities with Active=true and population_source=Table Config show the Explore button. Actual: The Explore button is shown on 'All Table Discovery' entity lists. |
| Playbook Experience PRB2087088 | There's a dependency mismatch between oob.properties/bundle.properties and now.dependencies of package.json | Install Engine reads dependencies from package.json. There are zboot DMT failures caused by version mismatches between oob.properties, bundle.properties, and package.json. The app dependencies should match across all three files. |   |
| Playbooks (Family Channel) PRB2086543 | When resolving overrides for AI-experiences, the first matching overrides containing aixWidget should be returned | PlaybookActivityOverrideRepo .initializeByPlaybook ExperienceId() only populates PlaybookActivityOverride .aixWidget from the override record's Aix_widget.id field. If the override record itself doesn't have an AIX widget configured, but the activity's linked activity UI record does (activity_ui.aix_widget.id), then the widget is never picked up. The override ends up with an empty/null AIX widget, so the AIX experience isn't rendered even though a widget is configured at the activity UI level. | 1. Create an activity UI. 2. Populate the AIX widget field. 3. Create an activity override using the above activity UI. 4. Add conditions so that the above override is selected at runtime. {#brazil-patch-1__ol_yhk_vfz_skc} Observe that the AIX widget field isn't picked from the activity UI in override at runtime. It's returned directly from the default activity UI. |
| Playbooks (Family Channel) PRB2086893 | Happy path observability backend path evaluation and runtime state services | This is a product update. |   |
| Playbooks PRB2078629 | There's a dependency content mismatch between oob.properties and packaeg.json | The Install Engine reads dependencies from package.json. The are zBoot DMT failures caused by version mismatches between oob.properties, bundle.properties, and package.json. The app dependencies should match across all three files. |   |
| Pub/Sub PRB2086054 | PubSubStatusCache cold-cache query re-enters the Field Normalization/TableRotation lock cycle | PubSubStatusCache.loadEntry() issues a plain GlideRecord.query() against sys_pubsub_status with no engine or business rule suppression. PubSubStatusCache.loadEntry()'s query at PubSubStatusCache.java:49 should be hardened with gr.setWorkflow(false) and gr.addBeforeQueryRules(false). This would mean the cold-cache status lookup can no longer re-enter Field Normalization / the Clotho metrics deny list / the table-rotation chain and contend for a lock this subsystem has no functional need to touch. |   |
| Pub/Sub PRB2094920 | ProcessedMessageTracker (N2N/PubSub dedup map) grows unbounded and OOMs app nodes | It has been observed that com.glide.pubsub.dedup.ProcessedMessageTracker is growing unbounded, driving app nodes to 'java.lang.OutOfMemoryError: GC overhead limit exceeded'. After heap dump analysis, the map (fProcessedMessages) retained 1.94 GB / 47% of the total heap on an affected node. This has caused OOMs on distinct production instances, consistent with slow unbounded growth after upgrade. Three distinct gaps contribute to this: 1) there is no guard when Samwaad/N2N is not initialized or disabled; 2) Cleanup is gated by a hardcoded, non-exhaustive node-type allow-list instead of actual role/participation; 3) there is no upper bound on the map's size. |   |
| Raptor Analytics Ingestion Core PRB2072557 | SN connector requires a check on the Sys_oid field of the Datalake |   | 1. Open the sys_service_identity_definition table. 2. Navigate to the DATALAKE record. 3. Check the sys_oid field. {#brazil-patch-1__ol_d3k_vfz_skc} Observe that it's empty. |
| ReleaseOps - Family PRB2067737 | ReleaseOps MIF handler bypasses the Instance Scan queue | InstanceScanHandler.java invokes the InstanceScanWorker directly. AScanWorker worker = InstanceScanWorker. generateFromSuites AndUpdateSets (scanSuiteIds, updateSetIds), bypassing the instance scan queue management. It should call the CICDInstanceScanExecutionService as an entry point, to take advantage of queuing and possible future changes. In Zurich, the user can only execute one scan at a time. In Australia and onward, multiple scans are allowed using the current code but there are no checks on max number of scans that can be executed and the existing code could potentially overwhelm the instance with too many scans. | 1. Start a full instance scan. 2. From the ReleaseOps controller, start moving a DR that needs to do an instance scan. {#brazil-patch-1__ol_h3k_vfz_skc} Expected behavior: The Data Replication waits but then completes successfully. Actual behavior: The Data Replication fails the instance scan with an error: 'Failed to get scan result: Multiple scans cannot be run at the same time'. |
| Request Management PRB2070251 | RequestWorkflowStageProcessor throws ClassCastException when called from a different scope, causing Requested Item Summarization to show generic content | jsFunction_ getParentWorkflowChoices throws ClassCastException when handed a fenced object. jsFunction_ getAllWorkflowChoices silently returns an empty ChoiceList instead of throwing. Stages are either never populated (crash swallowed upstream) or silently empty, so the LLM summarization payload has no real stage data. The 'Now Assist request summary' falls back to a generic response. |   |
| Schedule Optimization (Glide Family Channel) PRB2057489 | SO conflict resolution is unassigning locked tasks | A conflict resolution fix was implemented to unassign tasks from the solution when the assignee has a conflict. However, it unassigns tasks even if they were locked after solution processing began. There should be a filter to skip the unassignment if the task has transitioned to a locked state. |   |
| Search Signals PRB2023083 | GenAI log IDs aren't returned for NAVA's feedback signals |   | 1. Search in NAVA, such as 'What is spam?'. 2. Select Thumbs up or Thumbs down on the answer. 3. Run the background job to process queued signals. 4. Navigate to the sys_generative_ai_log table. 5. Inspect the Feedback field for the transactions relevant to the Genius Result feedback was provided on. {#brazil-patch-1__ol_k3k_vfz_skc} Expected behavior: There should be a value. Actual behavior: No feedback is logged. |
| Service Catalog PRB2070973 | Add Now Assist AI-usage tracking fields and options to the catalog_builder_analytics table | Extend the catalog_builder_analytics table to support tracking of Now Assist AI usage during catalog building. |   |
| Service Catalog PRB2084606 | Family changes to support widgets introduced to the Service Catalog LUX Widgets Store app | This is a product update. |   |
| Service Catalog Variables PRB2072938 | The 'Lists and Platform Analytics' visualization shows encrypted responses for record producer variables | The variables in the incident list view should show decrypted values. The issue occurs because the form and the list view retrieve the variable's value in two different ways. | 1. Create an encrypted field configuration on the question_answer table and Value field. 2. Define a module access policy based on the crypto module of type 'Role'. 3. Set the target role as snc_internal and the result as track. 4. Create a record producer on the incident with one variable. 5. Create an incident via the record producer. 6. Add the record producer variable to the incident list view. 7. Load incident.list. {#brazil-patch-1__ol_q3k_vfz_skc} Expected behavior: The variables in the list view show decrypted values. Actual behavior: The variables in the list view show encrypted values. |
| Service Mapping PRB2081806 | Updating the lightweight dynamic service levels via CSDM corrupts service | The metadata doesn't contain 'modelDisabled: true', and the service has a populator. | 1. Create a lightweight dynamic service via CSDM with levels=3. 2. Navigate to the second screen in CSDM. 3. Select the Levels box. 4. Change the levels to two. {#brazil-patch-1__ol_x3k_vfz_skc} Observe that the metadata doesn't contain 'modelDisabled: true', and that the service has a populator. |
| ServiceNow Otto Context Menu (Family Release) PRB2075508 | NACM components take more time to load |   |   |
| Service Portal PRB2075083 | 'ESC' portal AI Search placeholder text customization is no longer honored after an Australia upgrade | After upgrading to Australia, the custom placeholder text configured for the ESC Portal search experience is no longer displayed. Instead, the platform displays the new base instance placeholder text ('Ask AI for help or search'), causing user-configured branding and messaging to be ignored. | 1. Configure a custom placeholder value for AI Search. 2. Upgrade to Australia. 3. Open the ESC Portal search experience. {#brazil-patch-1__ol_bjk_vfz_skc} Expected behavior: The search component continues to honor the configured placeholder values and associated sys_ui_message overrides after the upgrade. User customizations are reflected in the UI. Actual behavior: The modified placeholder text isn't shown. The base instance placeholder text is displayed instead. |
| Session Management PRB2072469 | There should be metric/logging for portable vs. non-portable session at login, not just pin-on-detect | There is metric/logging for detecting non-portable sessions. However, that coverage only reports the non_portable_sessions counter when a session pin-on-detect event occurs (session pin trigger from PORTABLE to STICKY affinity, for example via GlideSessionDebug.enable(...)). There should also be metric/logging that reports portable vs. non-portable session state at login time generally, not only when a pin-on-detect event is triggered. Without this, the GIG active session balancing lacks visibility into sessions that are non-portable from login but never go through the pin-on-detect path. | 1. Log in to a Glide node through the normal login flow with no pin-on-detect trigger (for example, no GlideSessionDebug.enable(...) pin from PORTABLE to STICKY). 2. Query xmlstats.do?include= otel.session_node_transfer on that node. {#brazil-patch-1__ol_ejk_vfz_skc} Observe that no portable/non-portable counter is incremented or reported for the login event itself. Only pin-on-detect events are captured. |
| Session Management PRB2077746 | In GIG, the JSESSIONID-to-node affinity is only learned from request cookies, never from response Set-Cookie. Snc_session_affinity_node is set to 'Secure-only', which breaks stickiness for fresh sessions over plain HTTP | GIG's session affinity for a brand-new session depends entirely on the client echoing GIG's own snc_session_affinity_node cookie. GIG never learns the JSESSIONID-to-node mapping from the response that carries Set-Cookie: JSESSIONID. Additionally, snc_session_affinity_node is always emitted with the secure attribute, and the plain HTTP standard cookie stores it and never sends it back. As a result, it does not echo the affinity cookie, and gets every follow-up request load-balanced, including requests that already carry a valid JSESSIONID. |   |
| Software Asset Reconciliation PRB2072017 | Missing CPU count / CPU core count stamped against cluster VMs with no installs and against retired CIs | Under the Microsoft 'Per Server' license metric, installs are left unlicensed with the reasons 'Missing CPU count' and 'Missing CPU core count'. The actionable entity reported is a configuration item that has no installation of the product being licensed, is retired (hardware_status = retired), and/or has no relationship to the install's installed_on device, because it's a VM on a different ESX host in the same vCenter cluster. Meanwhile the install's own installed_on device has complete CPU data. Since any single failing VM sets validHost = false, no install on the host consumes rights, so the product can't be licensed at all. For products that aren't SQL Server, the 'Per Server' rights formula is a constant one and never reads CPU count or core count, so licensing is blocked on data the metric doesn't use. | 1. Build a vCenter cluster with two or more ESX hosts, each with VMs with the following relationships: 1. VM 'Virtualized by::Virtualizes' ESX host (parent = VM, child = host) 2. Cluster 'Contains::Contained by' host (parent = cluster, child = host) {#brazil-patch-1__ol_kjk_vfz_skc} 2. On host B, leave at least one VM with cpu_count and cpu_core_count empty. 3. Give that VM no installs of the product. 4. Set it to retired (hardware_status = retired). 5. Install a NON-SQL Server Microsoft product on a VM on host A. 6. Ensure that the VM has valid cpu_count and cpu_core_count. 7. Create an entitlement for the product with license metric 'Per Server' (00bec99293032200f2 ef14f1b47ffb78). 8. Run Microsoft reconciliation. 9. Navigate to SAM WorkspaceLicense UsageProductInstalls requiring action. {#brazil-patch-1__ol_jjk_vfz_skc} Expected behavior: The retired / install-less VM on host B isn't evaluated by the CPU validation, and the installs on host A's VM consume 'Per Server' rights. Actual behavior: The installs on host A's VM are unlicensed with reasons 'Missing CPU count' and 'Missing CPU core count'. The actionable entity on those reason records is the retired, install-less VM on host B. Nothing on the host is licensed. The actionable entity has no direct relationship to the install's installed_on CI. |
| Software Asset Reconciliation PRB2074587 | Reclamation code changes for app-itam-sam |   |   |
| Software Asset Reconciliation PRB2084351 | Domain separation doesn't work on the summary and entity table |   |   |
| Software Asset Reconciliation PRB2086017 | Create a new AI Agent for AI Worker (app-itam-sam) | A new AI Agent should be created for the AI Worker. The implementation should follow the same pattern as the existing AI Agent. The user handover stages must be specific to the AI Worker autonomous flow. |   |
| Stream Connect Core PRB2001155 | When Kafka generates many errors, processing those errors can produce Mutex contention | Stream Connect producers stop sending to Hermes Kafka. It publishes block for around 60 seconds and then fails, so the worker/scheduler threads back up, business rules run slow, and APIs become slow. Failed messages accumulate in the sys_kafka_ undelivered_messages table, and the base instance Kafka Producer Retry Job gets stuck and can't drain them. |   |
| Stream Connect Core PRB2079908 | After upgrading from Zurich to Australia, the active Kafka Subscriptions are updated to REFRESHING status | Topic alias records are created for the Hermes topics after the upgrade. However, for a few of the Kafka Subscriptions (in the sys_kafka_subscription table), the topic alias column shows empty and the status is 'REFRESHING'. |   |
| Stream Connect Core PRB2088720 | The base instance apps version should be updated from 6.0.6 to 6.0.7 |   |   |
| Syntax Editor PRB2080150 | 'Find References' dialog info tooltip icon fails aria-prohibited-attr (there's no ARIA role for aria-label/title) | This is an accessibility violation. It's found in glide/plugins/ com.glide.syntax_editor /ui.html/scripts/ classes/syntax_editor5 /references/ GlideEditorFindReferences.js:483, in the getModalBody() function's info-message-wrapper markup. | 1. Open a scriptable record (for example, a Script Include) in the Now Code Editor / classic UI's Monaco-based code editor. 2. Select a symbol (for example, a function or variable name) in the editor. 3. Invoke 'Find References' by selecting and holding (or right-clicking) the context menu (or using the Find References action in syntax_editor). 4. In the Find References modal that opens, locate the Info icon next to the results-count header. 5. Run an accessibility scan (axe-core) against the open modal, or inspect the icon element's DOM directly. {#brazil-patch-1__ol_jkk_vfz_skc} Expected behavior: The icon carries an ARIA role (e.g. role='img') so its aria-label is valid and a screen reader announces the tooltip text. Axe should report no aria-prohibited-attr violation on this node. Actual behavior: The p-tag has aria-label and title but no role, so axe flags aria-prohibited-attr and screen reader users get no reliable accessible name for the icon. |
| System Archiving PRB1974369 | Compaction is not working for archived tables in the columnar format | An error occurs after migrating the columnar format, updating the compaction properties, and running the background script. | 1. Migrate ar_ table to columnar format. 2. Update the compaction properties. 3. Run the background script, 'new GlideTableCompactor() .compact('tableName');' {#brazil-patch-1__ol_skk_vfz_skc} Notice that there is an error, 'Table didn't compact as... Sys_id not indexed on root storage table.' |
| System Archiving PRB2056839 | Compaction should not be attempted for columnar tables |   | 1. Migrate ar_ table to columnar format. 2. Update compaction properties. 3. Run the background script. {#brazil-patch-1__ol_wkk_vfz_skc} Expected behavior: Compaction should be blocked because this is a columnar table. Actual behavior: The error occurs, 'Error: Table didn't compact as... Sys_id not indexed on root storage table.' |
| System Events PRB2080453 | NowMQ events never get delegated on Worker.Default nodes due to a broken participation check |   |   |
| System Events PRB2089685 | Flow events created with a future TimeStamp are picked up and become stuck in the in-memory queue for processing | This issue causes the in-memory queue to be full, and does not allow other events to be processed. | Create a future event with a targeted node with 'p0'. Observe that the event is picked up by the in-memory queue without checking for the process_on field, resulting in the event being picked up and shown in the sys_nowmq_node_stats table. All low priority events are not picked up as high priority events (p0), and none of the events are processed. |
| System Scheduler PRB2076443 | Issues with the rename dedicated node bypass property and skip reconcile job on non-dedicated node instances | The property 'com.snc.cluster.scheduler.dedicated_node_bypass' uses the 'bypass' terminology, which is inconsistent with the intent. The property controls whether child jobs are allowed on dedicated nodes, not a bypass of anything. There is also an unnecessary reconcile job execution, in which the job runs the full configuration seeding and orphan cleanup with no meaningful effect. In this scenario, sys_scheduler_dedicated_job_config creates and maintains rows on an instance that has no dedicated nodes, and will never enforce dedicated node protection. |   |
| System Web Services PRB2037370 | Reading of multiple records using the UI/API Call/Processor/Script/Flow fails to track multiple READs in the Record Action metric | Four GlideRecord operation methods are instrumented to call RecordActionRecorder.record() at the point of each operation. This is the entry point for all telemetry, and every record operation on an allowlisted table flows through here. The instrumentation pattern follows GlideRecordProtected DataRecorder, which already instruments the same methods: a single static call, no branching, no impact on the existing operation path. query() is added for READ instrumentation so that data access by external agents and the NOW UI can be measured alongside writes. | 1. Navigate to the incident table. 2. View the list of incidents in the ServiceNow UI.Observe that all of the rows are visible in the UI with multiple read metrics. 3. Execute a Query Service Query to validate that multiple metrics have been recorded in the 'sn.glide.action_ fabric.record_action' metric. {#brazil-patch-1__ol_zkk_vfz_skc} Expected behavior: Multiple reads are recorded. Actual behavior: One read is recorded. |
| System Web Services PRB2088200 | True-up Telemetry Data Connector | This is a product update. |   |
| System Web Services PRB2088207 | True-up the Action Fabric Usage Dashboard app |   |   |
| Time Card Management PRB2081643 | Fields aren't visible on time_sheet.do form for timecard_user | Users with the timecard_user role can't see fields on the time_sheet.do form, preventing timesheet creation. | 1. Impersonate a user with the timecard_user role. 2. Navigate to time_sheet.do. {#brazil-patch-1__ol_elk_vfz_skc} Expected behavior: Form fields are visible for timesheet entry. Actual behavior: The form loads with no fields visible. |
| Trace Collector - Family Release PRB2081553 | Convert app-domain-util app as a hosted plugin |   |   |
| Trace Collector - Family Release PRB2090151 | Netty 1.2.10 is at end-of-life | As recommended, upgrade Netty to 1.2.17 or newer. |   |
| Transaction Logs PRB2073987 | Enable MCP server user-facing logging via the sys_log table | This is a product update. |   |
| Transaction Management PRB2074188 | GIG gateway thread pool and polling scheduler aren't shut down when Glide shuts down, leaving non-daemon threads running | The JVM doesn't exit cleanly. Non-daemon threads from the gateway fixed thread pool remain alive because Glide.destroy() never calls into JettyClientManager to tear down GIG resources. | 1. Enable GIG (glide.gig.enable=true) with valid glide.gig.client.endpoints so the gateway connection and gateway fixed thread pool become active. 2. Shut down the Glide servlet (Tomcat stop / graceful JVM shutdown). {#brazil-patch-1__ol_hlk_vfz_skc} Observe that the JVM doesn't exit cleanly. Non-daemon threads from the gateway fixed thread pool remain alive because Glide.destroy() never calls into JettyClientManager to tear down GIG resources. |
| UI Actions PRB2074979 | GraphQL list UI actions are pulling UI actions that are list V3 compatible | The graphQL endpoint is pulling list UI actions that are list v3 compatible, thus creating duplicate list UI actions in the choice menu. | 1. Enable the 'Lit' list component to fetch UI actions for the 'Incident' table. 2. Open the choice/menu of actions in the top right corner of the list. {#brazil-patch-1__ol_mlk_vfz_skc} Note the duplicated list UI actions such as Repair SLAs, Add to Visual Task Board, and so on. |
| UI Actions PRB2084589 | Handle session notifications when a page redirect occurs | This is a product update. |   |
| UI Actions PRB2084591 | UI action condition evaluation should leverage virtual URIs for improved parity | This is a product update. |   |
| UI Actions PRB2084593 | Correct the behavior of server-side UI actions | This is a product update. |   |
| UI Actions PRB2084596 | Support handling of redirect-based processors | This is a product update. |   |
| UI Form Administration PRB2080805 | The form for the sn_customerservice_task table is unresponsive when Polaris is turned off | The activity stream doesn't work, the context menu in the header doesn't open, and fields can't be edited. | 1. Provision an instance with the 'com.sn_customerservice' plugin installed. 2. Navigate to the sn_customerservice_task table. 3. Create a record. 4. Set the 'glide.ui.polaris.experience' property to false to turn off Polaris. 5. Refresh the case task record. {#brazil-patch-1__ol_vlk_vfz_skc} Expected behavior: The form is responsive. Actual behavior: The form is not responsive. |
| UI Form Administration PRB2084578 | Glide changes to support form URL parameters and formatter support in UI26 | This is a product update. |   |
| UI Form Administration PRB2084598 | Glide changes to support the form context menu and system parameters in UI26 | This is a product update. |   |
| User Criteria for Service Catalog PRB2087796 | Scripted user criteria might return stale results via AI Search and aren't cached durably for the Moveworks Search API |   |   |
| UX Framework PRB2014549 | getScreen is invoked twice, causing duplicate calls to the server |   | 1. Open any instance on Australia or Brazil. 2. Open SOW workspace. 3. Perform a hard reload. 4. Open 'DevTools - Network Tab'. 5. Select the ServiceNow Logo present on the unified navigation bar on the top left. Observe that the user is routed to /now/nav/ui/home. {#brazil-patch-1__ol_amk_vfz_skc} Expected behavior: Only one hydrate call is made. Actual behavior: Two hydrate calls are made. |
| UX Framework PRB2024860 | getInstanceValue caches are undefined and portal app shell search navigation is broken | The user should be navigated to the selected article and the URL should change to the article record. Instead, nothing happens. | 1. Navigate to the landing page. 2. Select the search box in the top-right corner of the browser header. 3. Type 'remo'. 4. Select any of the suggested articles in the type-ahead list (or press Enter). {#brazil-patch-1__ol_fmk_vfz_skc} Expected behavior: The user is navigated to the selected article. The URL changes to the article record. Actual behavior: Nothing happens. There's no navigation, error, or result list. |
| UX Framework PRB2069094 | Users are unable to select menu API calls on a SURF clone instance | The landing page is missing from the menu list. The request isn't being called on any page navigations to this: /api/now/ui/polaris/menu. |   |
| UX Framework PRB2083327 | The UI Builder authorization iframe modal buttons are non-functional | The Cancel and Approve buttons don't work on the iframe. Also, there is an Otto ServiceNow pop-up that comes up initially on the iframe. | 1. Navigate to 'Request Clone' under the Clone Admin Console. 2. Select Target instance or Add new instance. 3. Configure P/E as needed. 4. Select Continue. 5. On the clone summary page, select the Submit Clone Request button. {#brazil-patch-1__ol_jmk_vfz_skc} Observe that an iframe modal opens for 'Authorization Requirement'. The Cancel and Approve buttons don't work on the iframe. Also, there is an Otto ServiceNow pop-up that comes up initially on the iframe. |
| UX Framework PRB2084577 | Product lab and action triggers in Survey Center | This is a product update. |   |
| Virtual Agent PRB2033259 | Language detection doesn't work properly with Agentic mode for both the standard and enhanced chat |   |   |
| Virtual Agent PRB2063992 | The user is unable to add a portal to the Conversational AI Assistant | When the user attempts to add the ESC portal to domain one, it is successful. However, when the user attempts to set up the assistant to domain two with Service Portal, it fails and the portal is not set. Errors don't occur in the UI, but when it goes to the next step 'Branding', it fails saying the portal is not set. Errors occur in the logs. |   |
| Virtual Agent PRB2066112 | UPDATE_CONTEXT_VARS is not working when used immediately after CREATE_CONVERSATION | An error is thrown, and context variables must be updated with out any errors. | 1. Create a conversation using the CREATE_CONVERSATION action. 2. Try updating context variables using UPDATE_CONTEXT_VARS immediately after the creating conversation. {#brazil-patch-1__ol_omk_vfz_skc} Notice that it is throwing an error. |
| Virtual Agent PRB2069447 | Semantic filtering Virtual Agent global flags aren't set when invoked from AO via topic tool execution |   | 1. Start a NextWave conversation. 2. Trigger sensitive detection for HR fallback. 3. Select Create case. 4. When prompted for a description on the case, provide the same utterance that triggers semantic detection. {#brazil-patch-1__ol_ftx_v22_vkc} Expected behavior: It proceeds and creates a case. Actual behavior: The user utterance is flagged for semantic filtering. |
| Virtual Agent PRB2069708 | Users don't see logged in user details passed for DARE in skuld |   | From the Now Assist Portal, ask a simple question such as 'Who am I?'. Observe that it produces incorrect results and it doesn't pass user context. |
| Virtual Agent PRB2070048 | There's an OGCS error on skillPicker due to bad sys_gen_ai_skill data |   | 1. Add a sys_gen_ai_skill record which doesn't have a valid skill_document ID. 2. Attempt to run a valid topic. {#brazil-patch-1__ol_tmk_vfz_skc} Expected behavior: A topic should execute and log warning message that there's an invalid sys_gen_ai_skill record. Actual behavior: A topic won't execute. |
| Virtual Agent PRB2070336 | A guest user isn't able to upload images | Two issues prevent a guest user from uploading images: the conversation-server returns a 500 error due to a table level ACL on sys_cs_conversation and conversation-server returns a 401 error: 'unable to find guest session - Guest cookies are not passed through to upload request'. |   |
| Virtual Agent PRB2073250 | A conversation from another domain doesn't work if the user default domain doesn't have access to the current session domain | Whenever there is a hybrid queue into play, the worker impersonates the user and updates the session, but doesn't touch the domain. When impersonated normally, the domain will be the default domain for the user. This might no have access to the conversation because its started in a different domain. So whenever we read some data that is not accessible like conversation, the flow fails. | 1. Enable domain separation. 2. Update any field on a user record.Once updated, the default domain to the user moves to TOP/Default unless specified. 3. Switch the domain to a different domain (some sibling domain or a parent domain). 4. Start the conversation. {#brazil-patch-1__ol_f1p_fh2_vkc} Observe the responses would not be received for any query. |
| Virtual Agent PRB2073833 | The AiAgentSecurityHelper lacks an API to create compound deny_unless security-attribute ACLs, blocking sn_voice_aia from securing voice agent endpoints | There must be a gate for sn_voice_aia for certain voice agent endpoints behind a compound ACL using a custom security attribute with a deny_unless decision policy. A compound ACL with deny_unless requires setting 'decision_type', 'local_or_existing', and 'security_attribute' on sys_security_acl. Scoped apps can't do this directly, and a global helper is required. | 1. On an instance with com.sn.voice_aia and com.glide.cs.genai installed, attempt to configure a voice AI agent endpoint that requires compound ACL security, specifically an ACL using a custom security attribute with a deny_unless decision policy. 2. From the sn_voice_aia scope, call new AiAgentSecurityHelper(). createAclWithSecurity Attribute(...) to delegate compound ACL creation to the global helper. {#brazil-patch-1__ol_uh5_5wf_tkc} Expected behavior: sn_voice_aia should be able to delegate compound ACL creation to the global AiAgentSecurityHelper utility, the same as it does today for role-based ACLs via createAclAndRoles. Actual behavior: The method does not exist on AiAgentSecurityHelper. sn_voice_aia can't create sys_security_acl records with compound security attributes directly from a scoped context. |
| Virtual Agent PRB2074992 | Handshake fails when duplicate preferred-skill entries exist for the same skill | An error message occurs and an exception is found in the logs. | 1. In enhanced chat, transfer to a live agent. 2. As another agent user, accept the chat. 3. Transfer the chat to another queue using the /tq quick action. 4. Do not accept the chat and allow max wait time topic to trigger. 5. When prompted, select the topic. {#brazil-patch-1__ol_ppq_dl2_vkc} Expected behavior: The topic executes successfully. Actual behavior: The message, 'I'm having technical issues and won't be able to continue this conversation' is shown and an exception is in the logs. |
| Virtual Agent PRB2076214 | A java.lang.NullPointerException occurs, 'Cannot invoke 'com.glide.script. GlideRecord.setValue(String, Object)' because 'gr' is null' | This issue was observed while investigating a ZTSD issue. |   |
| Virtual Agent PRB2076609 | The 'Timeout conversations' job fails to close conversations on cross domains |   |   |
| Virtual Agent PRB2078011 | The Virtual Agent greeting is not showing, or shows the wrong message, when the system language is non-English | The session saved in English is shown instead of saving and showing the greeting message created in the Japanese session. | 1. Set glide.sys.language to 'ja'. 2. Open VA assistant. 3. Update the message to something that is not base instance. 4. In the English session, test the assistant.Notice that no message is shown. 5. Switch to a Japanese session and save any greeting message. 6. In the Japanese session, test the assistant. {#brazil-patch-1__ol_bnk_vfz_skc} Observe that the message that was saved in the English session is shown. |
| Virtual Agent PRB2078683 | The Topic execution is not working if the Nextwave user is in the TOP/Default scope |   | 1. Enable domain separation. 2. Check the Nextwave service user domain. 3. Make any update on the user if needed so that the domain gets changed to TOP/Default. 4. Start a conversation and run a topic. {#brazil-patch-1__ol_ury_5m2_vkc} Observe that it fails. |
| Virtual Agent PRB2084118 | setCache is not honoring domain field | setCache is not honoring the domain field when impersonating the actual user. |   |
| Virtual Agent PRB2085286 | Selecting to execute topics isn't working | When the user tries to select the links, either nothing happens or there's an 'Error in' processing message. | 1. Navigate to the Virtual Agent. 2. Ask 'What are my summarize options?'. 3. Try to select any of the links. {#brazil-patch-1__ol_hnk_vfz_skc} Observe that either nothing happens or there's an 'Error in' processing message. |
| Virtual Agent PRB2085859 | The Prompt Library 'Topics' tab is empty because the visible skills API returns '404' for every deployment | When the Prompt Library is enabled on a Now Assist Panel deployment, the 'Topics' tab doesn't load any prompts. The other Prompt Library tabs are unaffected. Users expect that the 'Topics' tab lists the topics configured and marked visible for that deployment. However, the tab displays no content. The API that supplies visible skills for a deployment reports that no skills were found, even when topics and skills are configured and marked visible. Thus, the 'Topics' tab can't be used on any deployment, and there's no configuration change that corrects it. |   |
| Virtual Agent PRB2086482 | Off Glide branding API returns the menu item with the type as null | The API returns the 'Contact Live Agent' item with the type as 'null', even though the actual type is 'chat'. |   |
| Virtual Agent PRB2087473 | Bring the tone/persona sys-prop at the assistant level and append the agent_persona instruction to it | If the config attribute isn't 'agent persona', the system appends the agent persona to the prompt if it exists. If the attribute is 'agent persona', it uses the persona or a static fallback if empty. | 1. Bring the sys-prop 'sn_nowassist_va .assistant_personalization' to the Now Assist deployment config table. 2. Make the setting available at the assistant level. 3. Append the Agent_persona field in the Now Assist deployment config table to tone/persona prompt. {#brazil-patch-1__ol_knk_vfz_skc} Observe that, when the config attribute isn't 'agent persona', the system appends the agent persona to the prompt if it exists. If the attribute is 'agent persona', it uses the persona or a static fallback if empty. |
| Virtual Agent PRB2091490 | Glide to OGCS requests should set X-Instance-Url header with canonical URL |   |   |
| Virtual Agent PRB2092748 | Live agent availability doesn't work once the user selects the Cancel button | It shows that no agents are available, even after the user selects the Cancel button and the live agent availability should resume. | 1. Start a chat as requestor from the /esc portal. 2. Have an agent online from another browser. 3. Connect to a live agent. 4. Select the Cancel button and do not accept the workitem. 5. Try connecting to the agent again. {#brazil-patch-1__ol_pbz_qcy_5kc} Expected behavior: The live agent transfer should stop just for that interaction when **Cancel** is selected and the live agent availability should start resuming after. Actual behavior: Notice that even when the agent is available, it shows that no agents are available. This happens for all the new conversations. |
| Virtual Agent PRB2095603 | getChannelById method mapping missing in glide-plugin-members.xml | getChannelById calls from NW channels are failing. |   |
| Window Manager PRB2078184 | The classification and protections canvas doesn't work in Securing Custom Apps with Vault Agents Otto |   | 1. Open 'Securing Custom Apps' with the Vault Agents Otto application. 2. Navigate to the 'Classification and protections for your app' canvas. {#brazil-patch-1__ol_pnk_vfz_skc} Observe that the canvas doesn't load or function as expected. |
| Window Manager PRB2090196 | The closed window still consumes mouse clicks after unpinning Otto, which blocks the Polaris contextual menu pin | After opening and closing (specifically pinning/unpinning) Otto, its window element remains mounted in the DOM at full size and intercepts clicks over whatever page content is underneath it. Its DOM element remains at full size with pointer-events overridden by inner content, instead of collapsing to a 0-size box like the legacy window manager does. This prevents the user from pinning other contextual menus via Polaris in that region of the screen. | 1. Open a Brazil instance. 2. Open Otto (Now Assist chat). 3. Pin Otto by docking it via a contextual menu/Polaris pin action. 4. Unpin Otto so that it closes. 5. With Otto now closed, try to click on/pin a different contextual menu in the area of the screen where Otto's (now invisible) window used to be. {#brazil-patch-1__ol_jvv_kby_5kc} Observe that the click is swallowed, and pinning other contextual menus is not possible because the closed Otto window is still consuming mouse clicks. |
| Work Order Management PRB2083257 | Plan_maint_admin and plan_work_admin users aren't able to view work order templates | Since the roles already contain cmdb_read role, the user should be able to view the records. However, when the user opens the work order template, no fields are visible. | 1. Log in as a user who has the plan_maint_admin role or plan_work_admin role. 2. Select the Preview icon on any work order template from the list. Observe that all the fields are visible. 3. Open the work order template. {#brazil-patch-1__ol_tnk_vfz_skc} Observe that no fields are visible when the template is opened in jelly page. |
| Zing Text Indexing and Search Engine PRB2083455 | Allowlisting should be allowed for the kb_knowledge table for text_search v4 format |   |   |
[ ]

{#brazil-patch-1__all-other-fixes}

## Fixes included {#brazil-patch-1__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.

* [Brazil security and notable fixes](https://servicenow-prod.fluidtopics.net/kphsOC8sRJMIYojzOct9sw "The Brazil release contains important problem fixes.")
* [All other Brazil fixes](https://servicenow-prod.fluidtopics.net/5P7QisKr1Kh9T7I~_HBaMA "The Brazil release contains important problem fixes.")
{#brazil-patch-1__ul_zvy_c1g_tkc}

*[\>]: and then


