Helsinki Patch 3

The Helsinki Patch 3 release contains fixes to these problems.

For the Helsinki Patch 3 release:
Build date: 08-02-2016_1236
Build tag: glide-helsinki-03-16-2016__patch3-07-13-2016

For more information about how to upgrade an instance, see Upgrade to Helsinki.

For more information about the release cycle, see the ServiceNow Release Cycle. For a downloadable, sortable version of Helsinki fixed problems, see KB0598266.

Note: This version is approved for FedRAMP.

Security-related Fixes

Helsinki Patch 3 includes fixes for security-related problems that affected certain applications and the ServiceNow platform. We recommend that customers upgrade to this release for the most secure and up-to-date ServiceNow features. For more details on security problems fixed in Helsinki Patch 3, refer to KB0596689.

Notable Fixes

The following problems and their fixes are ordered by potential impact to customers, starting with the most significant fixes.
Problem Affected Plugins Short description Description Steps to reproduce

Incident Management


Closing an incident in instances missing the parent_incident column will close all incidents For older instances that do not have the 'upgrade.2011_common_practice' plugin, data loss can occur when closing an incident due to the "SNC - ITIL - Close Related" business rule.
  1. Verify the com.snc.bestpractice.incident plugin is installed.
  2. De-activate the 'Validate Dictionary Column Delete' business rule.
  3. Delete the parent_incident column from the dictionary.
  4. Attempt to deactivate the 'Prevent Recursion of Parent Incident' business rule. Note that this rule is absent.
  5. Close an incident.
Note that all incidents are closed.

Core Platform



Memory leak caused by large number of Rhino JavaAdapter classes being generated and cached There is a memory leak which is caused by instantiating GlideScriptable abstract classes in Helsinki. One place where this occurs is in the OOB script include "Cart", where there is an instantiation of one of these classes, GildeappQuestion. Caching these classes seems to be a change in behavior from pre-Helsinki Rhino.
Note: This is not isolated to the GlideappQuestion class.

Refer to the listed Known Error KB article for details.




Connect Support chat message entries between two people are all shown in activity stream as one account All chat messages which are posted before an incident is created will show up on the activity stream as being inserted by one person, even though there are two people messaging.
  1. Activate the Chat, Connect, and Connect Support plugins.
  2. Create a queue and select the Service Desk assignment group.
  3. In one browser, log in with Abel Tuter (do not impersonate).
  4. In a different browser, log in with ITIL User (do not impersonate).
  5. With Abel, create a new chat in the queue.
  6. Answer the chat as ITIL User.
  7. Post a few chats back and forth between the two users.
  8. With ITIL User, create an incident from the chat and save the incident.

Expected result: The activity stream in the incident should show a chat conversation between the two people with their respective names.

Actual result: You will see only the ITIL User listed for every posted chat message.

Service Mapping


Problem with business service sync on upgrade from Geneva to Helsinki After a user's instance upgraded from Geneva to Helsinki, it was impossible to view the map of services. For remediation, a manual sync was done for all services and the map view was restored.



In the presence of multiple duplicate records, incorrect record gets selected as candidate for matching, leading to record reclassification The code for processing for de-duplicating records in CMDB works as follows:

The code enumerates relations in the CMDB, based on criteria from the payload passed to the Identification Engine. The first phase creates a list of all the records involved in a certain relation with another record. The second phase refines the list down to the records that actually match the input data (thus detecting real duplicates). Finally, one of the records from the second list is used as the match for the Identification process. The problem is a code bug where the wrong list is used for the final step, thus leading to the selection of an incorrect record.

Service Catalog



Catalog UI policy on a new variable on a catalog item causes error on existing request items without the new variable If a new variable or UI policy is added to an existing catalog item, fulfillers still working on existing requested items see an error.
  1. Create a new catalog item and add several variables to the item.
  2. Add a UI policy on any of the variables.
  3. Order the item. Note that the variables are visible in the requested item.
  4. Add a new variable to the item.
  5. Update the UI policy with the new variable.
  6. Open the old requested item.
Error message is displayed.

Table Rotation/Extension



Database Rotation In Table Rotation/Extension, any index name that begins with "u" and is defined on the base shard is not added to newly created shards In Table Rotation/Extension, any index name that begins with "u" and is defined on the base shard is not added to newly created shards. The main table affected is new shards of sys_email. For sys_email, each new table shard is queried by the POP Reader job. The missing index for this new shard on the "uid" column causes substantial delays with the POP Reader job.

Refer to the listed Known Error KB article for details.



Customized watermark prefixes is not working

When using custom watermark prefixes, inbound email actions do not identify a valid watermark as a reply.

The fix for this PRB fixes the behavior for watermarks in emails. Refer to Create a custom watermark prefix for email notifications for details.

  1. Go to Number maintenance to change the watermark of an incident to MSGTEST.
  2. Create an incident and find a email sent with the new watermark (e.g. MSGTEST00001).
  3. Create a new email in Outlook as follows and send back to the instance:
    • Subject: a new email with watermark
    • Content: adbdadf
    • Ref:MSGTEST00001

Expected behavior: The replied email should be classified as a "reply", and it should recognize the custom watermark "MSGTEST".

Actual behavior: The replied email will be classified as "new", and the watermark "MSGTEST" will not be recognized.

JS/HTML Editor



TinyMCE HTML Field Editor TinyMCE editor takes time to process large amounts of text The TinyMCE editor is unable to process large amounts of text in Internet Explorer. This issue can also occur for ITIL users when using an email client to reply to email chains.

Refer to the listed Known Error KB article for details.

User Interface (UI)



UI16 Duplication of banner image sys_attachment records after Geneva/Helsinki upgrade causes slow response times After upgrading to Geneva and some builds of Helsinki, slow response times have been occurring when logging in and navigating in the instance. Login can take 1+ minute in some cases. This issue is due to duplicate records inserted during the upgrade from a fix script that cause the sys_attachment table to become very large. A frequent encoded query against sys_attachment triggers delays in the instance.

Refer to the listed Known Error KB article for details.

User Interface (UI)


Selecting multiple records on a list view updates unselected rows as well (List v2 only) When multiple records are selected from the same column on a list view, not all selected records are updated, and other random records are updated. For example, selecting 4 records via the 'Category' field on the task table and then editing via list view also updates other records that were not selected to begin with. This only seems to occur when the system property 'glide.ui.list.detail_row' is set to true, and when you are editing a table (via list view) that is unaffected by that property.

This seems to be somewhat related to previously fixed PRB634893 and PRB647724, but the opposite in that the tables affected here are the ones which are not influenced by this property.

  1. Navigate to sys_properties.list.
  2. Create the property glide.ui.list.detail_row and set it to true. By default, it applies the detail_row to short_description on the task table and related tables.
  3. Choose a different table that is not affected. (NOTE: Make sure this is NOT configured as a Detail Row. This issue as reported only happens if Detail Rows are not configured on the table you are editing.)
  4. Select multiple records from the list column (the list column must be editable).

Notice that not all records selected are changed, and for every one that did not update, another unselected record seems to update instead.

Note: There is also another related issue here where selecting an EVEN amount of records shows that an ODD number of records (usually X+1) will be updated. For example, selecting 4 records prompts the user that '5 rows will be updated.' However, selecting 5 records prompts correctly for '5 rows will be updated.' This also only occurs on tables unaffected by glide.ui.list.detail_row being set to true.

Incident Management



Incident The new Helsinki dictionary override on default value "5" for "Incident.Priority" field affects customizations With Helsinki, we inserted "sys_dictionary_override_31003e229f211 2008f97b89a442e7009," the Dictionary override of the Default value on "Incident.Priority" field, setting it to "5" (previously "4"). If a user does not have a custom Dictionary override on the "Incident.Priority" field, this file is inserted and the new default value may not align with instance customization, creating issues.

Refer to the listed Known Error KB article for details.

All Other Fixes

Problem Affected Plugins Short description Description Steps to reproduce



Word wrap for Risk Assessment options splits text into two lines After creating a Risk Assessment, when viewing the options to the questions, they will be cut off and split into the next line. This occurs even though there seems to be a lot of space left blank in the page.

In a Geneva instance with the Risk Assessment plugin activated:

  1. Navigate to Change > Administration > Risk Assessment.
  2. Go into any Assessment Master.
  3. Under the Assessment Questions tab, create a new question.
  4. Go into that question (to add the choices).
  5. Once inside the Assessment Question, under the Assessment Question Choices tab, create a new Assessment Question choice.
  6. In the Value of this Assessment Question Choice, make sure your text is long enough (around at least 150 characters depending on window size).
  7. Select Update. This will take you back to the Assessment Question.
  8. Select Update on the Assessment Question as well. This will take you back to the Assessment Master.
  9. Select the Take Survey button.
Note the text for the options to the question is split into two lines, even though there is plenty of empty space to the right.

Change Management


Change Management - Core, Change Management - State Model, Change Request Adding a new change type per documentation is breaking the State drop-down behavior on Change form The product documentation explains how to create a new Change Type. After completing all the steps, the new type is created successfully. However, the State drop-down in the change form seems to be broken. Instead of showing the expected states according to the change type, it shows all states for any change type selected. In a Geneva instance, follow the steps on Add a new change type to create a new change type.

Note the State drop-down displays all states instead of the expected states for the selected change type.



NG shared components @mention search fails in domain-separated environments
  1. Enable domain separation.
  2. Create two users with similar names (e.g. Carmen and Carmine).
  3. Put Carmen and Carmine in domains such that they cannot see one another.
  4. Impersonate a user who can see both Carmen and Carmine (i.e. member of parent domain).
  5. Go to a form where @mentions are enabled (e.g. incident).
  6. Type @Carm in the comment field.
An NPE will be thrown in the mention service and the loading icon will spin forever.


PRB684676 will swallow exceptions The catch block in NGPresenceArray catches Exceptions but does not check for transaction cancellation. This can lead to a stuck semaphore.



Idle time countdown does not work
  1. Start a support conversation.
  2. Have an agent answer.
  3. Wait for the idle message box to appear.
  4. Move the mouse cursor into the client window.
Note that the timer stops.



Connect Messages are not captured when following a support-based record if followed quickly
  1. Start a support conversation.
  2. Have a long support conversation of about 60 messages.
  3. Create an incident.
  4. Quickly press follow on the incident form.

Although all 60 messages show up in the activity stream, not all of them made it into the conversation record.

Cloud Management Application


AWS Cloud provisioning report appears to misinterpret the day as the month when "glide.sys.date_format" is not YYYY-MM-dd For the script include "BillingReportDateTimeUtil" and its inside functions getCurrentMonth and getCurrentYear:
  • GlideDateTime(gs.nowDateTime()) will return date in the default format YYYY-MM-dd
  • GlideDateTime(gs.nowNoTZ()) will return date in the format specified by glide.sys.date_format

Cloud Management Application


Amazon EBS volumes "Volume Type" and "Volume Size" are not populated after it has been successfully provisioned via Service Catalog request item The Amazon EBS volumes "Volume Type" and "Volume Size" are not populated after it has been provisioned. It is necessary to run AWS Discovery for the account in order to populate these fields. Some users need these attributes to be populated in real-time after the EBS volume is attached to the instance and successfully provisioned.
  1. Provision an AWS EC2 instance.
  2. Check the EBS volume created along with the instance.
Until the next discovery, the EBS volume will be missing the "Volume size" and "Volume type" fields, and the volume status will be reported as "attached" instead of the expected "in-use".

Cloud Management Application


Include the paging ability for AWS Discovery By default, when we make the DescribeInstances/DescribeVolumes API call to AWS, AWS sends the whole set of records in a single response. If the user has a huge number of Instances in the account, and if the ServiceNow instance has a low system memory, the response is huge to process and memory usage peaks up.



CMDBMetadata should not rely on calculated field "name", since it can get translated into other languages When an instance's language is changed, the CMDBMetadata cache is not reloaded. As a result, when using RelationDescriptors from this class, they appear in the wrong language. It also makes finding relations using this class quite difficult unless the user has the ID ready.
  1. Work on your instance with some language (e.g. English).
  2. Change the instance's language (e.g. Spanish).
  3. Try to work with CMDBMetadata's RelationDescriptors.
You will see that their names appear in the previous language.

Core Platform


AMB Message Client Builder errors in iframe cause Service Portals to not render in iframe
  1. Authenticate to the instance and set property glide.set_x_frame_options to false. Ensure the instance has a Service Portal.
  2. Create an iframe to a service portal on an external site. For example, this can be done at to test. The code might look something like this:
<!DOCTYPE html>
<iframe src="https://<instance>">

You will see various JavaScript errors in the console. One of these is from the amb.MessageClientBuilder.js script, which attempts to find properties in the top frame using window.parent. You cannot access properties in window.parent when window.parent is in a different domain - this is a security feature of all browsers. As a result, the service portal will not render.

Core Platform


Not able to upload app from author with a logo
  1. Log in to the app store.
  2. Create an app and add a logo.
  3. Publish to the store.
Note the error:
Saving uploaded attachments failed
org.mozilla.javascript.NativeObject cannot be cast to java.util.HashMap

Customer Service Management


Special Handling Notes Alert message does not handle formatting in Special Handling Notes For example, if a user uses <p> tags in an alert type note in order to create a message with two separate lines, they are displayed as one line instead.

Data Certification


Data Certification Checkbox functionality on the cert elements not working on a single row Fuji+

In a Fuji or later instance:

  1. Activate the Data Certification plugin with demo data.
  2. Go to UI11 by either turning the glide.ui.doctype property to False and log back in to the instance OR append the instance url with /
  3. Navigate to Data Certification > Tasks > All Tasks and select TSK0009067.
  4. In the Certification list at the bottom, select a row by checking the far left checkbox.
This is supposed to select the entire row, but it does not.



CyberArk App-IDs are hard-coded as part of the MID Server CyberArk App-IDs are hard-coded as part of the MID Server, but these need to be configurable.



SSHTerminalCommand script fails due to changes in DiscoveryProviderFactory
  1. Run Discovery on an ACE load balancer.
  2. Note that you receive the following error: "Warning TypeError: Cannot convert null to an object."
The load balancer is not discovered.



F5 - OS classification probe returns unhandled error For the F5 - OS probe in UNIX - Classify, most devices will return the following error:
<results error="bash: tmsh: command not found Exit status: 127 " probe_time="540" result_code="900000">
<result error="bash: tmsh: command not found Exit status: 127 ">
This happens because the command "tmsh" is only typically installed on F5s, which also have SSH capabilities. Handling such errors also fires additional classifiers, but since the UNIX - Classify probe also has a positive result from the UNIX - OS probe, that path succeeds.

Run a Discovery of a device that is discoverable by, for example, both SSH and SNMP. The device must not have the "tmsh" command installed (this is only common on F5 devices).

Actual result: UNIX - Classify and SNMP - Classify both succeed, and then identify and explore both. The device history record will only point to one CI, but checking the CMDB will show that both the Linux server and a Switch are created.

Event Management Application


Event Rule - In composite fields, logic \n and \r are replaced by ' ' For example, in the Event.normalizeSpaces function's composite fields, the logic \n \t and \r are removed.
  1. Create an event with a description containing new lines.
  2. Create an event rule, transforming the description in some temporary field, and then compose it back to the description.
Note the description of Alert: there are no more new Lines there.

Event Management Application



An empty task is created when an Event Management Alert (em_alert) record state is changed from Closed to Reopen If an Event Management alert State is changed from Closed to Reopen, and the alert does not have a linked Task, the "Reopen associated closed incident' business rule still runs. This business rule should not run if the em_alert.incident field is empty, but it does due to:
  • a mistake in the condition
  • a get() on task using a null value, followed by an update(), causing an empty open 'task' record to be inserted
Refer to the listed Known Error KB article for details.

Event Management Application



ImpactCalculator job causing OOM issues Performance degradation will occur on application nodes running ImpactCalculator jobs, which are triggered from the "Impact Calculator Trigger" auto script. Refer to the listed Known Error KB article for details.

Facilities Service Management


Facilities Service Management 'fix_cmn_location_classifier.xml' fix job updates Custom Dictionary records that are References to cmn_location table and moves those from a Private scope to Global scope If there is a custom scoped application on an instance which has one or more Dictionary definitions to reference the cmn_location table, when activating Facilities Service Management on Geneva or upgrading to Geneva with Facilities Service Management already active, 'fix_cmn_location_classifier.xml' runs as expected. However, the way it updates these records will move them from their Private scope to the Global scope and change the Package from the Custom Scoped Application to 'Facilities Service Management'. On a Geneva instance:
  1. Create a custom scoped application with a table and a reference field to the cmn_location table.
  2. Activate the 'com.snc.facilities_service_automation' plugin.
  3. Notice that the scope of the Dictionary record created in step 1 has changed to Global and that the package is now 'com.snc.facilities_service_automation'.

On a Fuji instance:

  1. Activate the 'com.snc.facilities_service_automation' plugin.
  2. Create a custom scoped application with a table and a reference field to the cmn_location table.
  3. Upgrade the instance to Geneva.
  4. Notice that the scope of the Dictionary record created in step 2 has changed to Global and that the package is now 'com.snc.facilities_service_automation'.

Financial Management


Financial Management Allocation Rollups from Segment to Segment: Percentages appear correctly, however cost allocated is double the amount it should be This issue is related to the Financial Management plugin in Helsinki. When performing Allocations from Workbench, the rollups do not process as expected and end up incorrectly allocating the costs in double.

In a Helsinki instance with the Financial Management plugin installed:

  1. If needed, load GL Data into the Staged Expenses table (Cost Transparency > General Ledger > Staged Expenses).
  2. Open the Cost Transparency Workbench (Cost Transparency > Workbench).
  3. Select the correct Cost Model and Fiscal Period.
  4. Navigate to the Data Cleansing stage > click Cleanse Data.
  5. Navigate to the Bucketing stage and move some accounts to a bucket.
  6. Click Run Bucketing.
  7. Navigate to Allocation Setup.
  8. Move the bucket into an account below the "top level" account (typically this is Business Unit), and click Create to create the allocation.
  9. Click the 'info' icon of the account, select Equal for the Rollup Method, and add two rollups. Both should be 50%.
  10. Click Save Changes.
  11. Navigate to the Review stage > click Allocate Expenses.

Expected result: After the Allocation Engine runs, the "Existing Allocation Aggregation" should update with the new number of allocations (which should be 2 in this case).

Actual result: The existing Allocation Aggregation value does not change.



Service Management Core Performance issue: System hangs when loading Facilities Request Templates form if instance has excess (75k+) CMDB (cmdb_hardware_product_model or cmdb_consumable_product_model) records Users typically have large data sets for CMDB CI records. The Facilities Request Template form hangs upon loading if the CMDB tables cmdb_hardware_product_model or cmdb_consumable_product_model has a large number of records. This was tested with 75K+ row counts in cmdb_hardware_product_model table. The OOB script include 'SMTemplateHelper' performs a GlideRecord query against these tables, and it takes a very long time to process data. The system eventually times out and does not load the form.

The system should not hang while trying to handle such large CMDB data sets.

In a Geneva or older instance with large data sets for the cmdb_hardware_product_model or cmdb_consumable_product_model tables:

  1. Activate the Facilities Service Management plugin.
  2. Go to Facilities Request Templates and try to open any of the existing OOB records.
The system hangs while trying to open the Facilities Request template record.



Service Management Core Unable to create a Template (Facilities Module) with system property 'glide.invalid_query.returns_no_rows' set to 'true' When loading a catalog list to attach it to a template, the list does not load due to an invalid query. There is an Angular AJAX request on the page that runs an invalid query:
Because there is no 'name' field on the 'sc_category' table, it will cause nothing to load when 'glide.invalid_query.returns_no_rows' is set to true. This causes the query to return 0 results and prevents the user from submitting a template for publishing via the Angular UI.

In a Geneva instance:

  1. Make sure that the Facilities Service Management plugin is active.
  2. Make sure the system property 'glide.invalid_query.returns_no_rows' is set to true - if it does not exist, it will need to be created with following:
    • Name: glide.invalid_query.returns_no_rows
    • Description: Controls how invalid GlideRecord queries are handled. By default, if a query is incorrect, such as an invalid field name, that part of the query condition is ignored and results will be based on the valid part of the query. When this property is true, invalid queries will always return no rows. When enabled, this logic can be overridden at the session level by executing gs.getSession().setStrictQuery(false). To restore strict query, execute gs.getSession().setStrictQuery(true).
    • Type: True | False
    • Value: True
  3. Go to Facilities > Catalog Knowledge > Facilities Request Templates > click New.
  4. Use 'test' for both the Name and Short Description fields.
  5. Click Submit.
  6. Click the dropdown for Category.

Expected behavior: The catalog list loads in the dropdown.

Actual behavior: The list does not load at all.



Service Management Core Assign to Me button does not work without 'dispatch_group' field on form
  1. Load the Facilities Service Management plugin.
  2. Remove the 'Dispatch group' field from the Facilities Request Task form.
  3. Log in as a Facilities Management Agent.
  4. Create a Facilities Request with a Facilities Request Task on it.
  5. Click the Assign to Me button.
Notice it does not work, and there is an error in the browser console.

Governance, Risk and Compliance


Control test condition in Control Test Definitions does not filter records from a database views table
  1. Create or open a Control Test definition.
  2. Check Collect supporting data.
  3. Fill all mandatory columns and pick Basic for the Condition type.
  4. Fill out the condition section as follows:
    • Table: Incident SLA (incident_sla)
    • Fields: add some fields
    • Control test condition: Short description Start With CPU
  5. Click Execute Now. The incorrect records are displayed.
  6. Modify the condition section as follows:
    • Table: Incident (incident)
    • Fields: add some fields
    • Control test condition: Short description Start With CPU
  7. Click Execute Now. The correct records are displayed.

HR Service Management


Need to broadcast an event on Service Catalog submission Service Catalog submissions from the Service Portal should redirect to the HR ticket page.

IT Operations Management


Upgrade overwrites related list customizations for rm_enhancement Various Fuji upgrades (e.g. Fuji Patch 5 to Fuji Patch 12 Hot Fix 1) overwrite the 'rm_enhancement' related list settings with the OOB settings.
  1. Configure the rm_enhancement related list, and add 2-3 related lists.
  2. Upgrade from Fuji Patch 5 to Fuji Patch 12 Hot Fix 1 (for example).
Note the rm_enhancement related list settings are converted to OOB.

Knowledge Management


Knowledge Management V3 Knowledge search for articles with a large number of attachments is very slow in Helsinki and Geneva when compared to Fuji or earlier In Helsinki and Geneva instances, knowledge search is unusually slow when knowledge articles have a large number of attachments included in the articles.

Knowledge Management


Knowledge Management V3 Category picker is not working correctly When a user navigates to Knowledge Base > Create New, and sets the Knowledge Base to Knowledge, the Category (kb_category) is read-only.
  1. Navigate to Knowledge > Create New.
  2. Choose Knowledge V2.
Note that the Category is read-only.

Knowledge Management


After migrating to Knowledge V3, tags for V2 articles are no longer displayed on homepage and the site hangs For a user's Knowledge V3 migration, tags were used to indicate which countries the articles are for. There were up to 144 tags per article on the knowledge home page. Since the migration completed, the site hangs when users click on the tags column on the home page, and it does not display the tags for the countries.

Knowledge Management


Knowledge Management V3 Unable to search for articles with states other than published, review, or draft There are users who have modified various pieces of Knowledge Management to allow them to handle custom states, specifically, allowing users to see articles in search results that were in states other than Published, Draft, and Review. However, in KBv3, the queries for search results are hard-coded in non-user-accessible places to show only Published articles. The only method of allowing users to see other states involve system properties that only allow roled access to Draft and Review states. There is no possibility of showing other states, which poses significant issues for certain users.
  1. Add an additional state to the knowledge workflow (e.g. Technical Review).
  2. Attempt to get articles in that state to show in search results.
Note that it does not appear in search results.

Knowledge Management


Knowledge Management V3 When upgrading from Fuji to Helsinki, the category list display does not honor the selected KB condition while creating a new article
  1. Upgrade a Fuji instance to Helsinki.
  2. Create new knowledge bases and create categories.
  3. Click Create new article > Select any knowledge base.
  4. Enter ** in knowledge category field.
Observe the list of categories does not honor the KB selected criteria. The category list should be related to the selected knowledge base.

Knowledge Management


Knowledge Management V3 Alphabetical sort order for category filters on browse knowledge page is not working The fix for this PRB includes the following:
  1. Sort order of categories on Knowledge Browse page is in alphabetical order
  2. Sort order of all the filters on Search Page is in alphabetical order
  3. Sort order of category filters on search page is based on the breadcrumb hierarchy starting from the topmost KB name/category
  4. KB name is appended to the breadcrumb from now onwards if there are multiple KB filters on search page

Knowledge Management


Knowledge Management V3 In IE11 on the knowledge category home, the user is brought to an empty page (when using Enterprise - Compatibility mode)

In IE11:

  1. Navigate to the IE Menu > Compatibility View Settings > Display Internet sites in Compatibility.
  2. You may need to do the following steps as well:
    1. Click Tools in the upper toolbar.
    2. Select Enterprise Mode.
  3. Go to the OOB knowledge IT category: /$
Note the page is blank.

Live Feed


Live Feed 'Share your thoughts' and 'Search Messages' fields in Live Feed do not have a label associated to them, which poses challenges for users with vision disabilities Accessibility features allow other applications such as VoiceOver (hit Command+F5 on keyboard to activate VoiceOver App) to identify and tab into fields within the ServiceNow platform.

Controls and Fields within the ServiceNow platform need to have labels associated with them in order for applications like VoiceOver to function properly and allow easy access to such fields for users with low-impaired vision disabilities. 'Share your thoughts' and and 'Search Messages' fields in Live Feed are such fields with no labels displayed.

Here are some challenges that are posed when fields/controls do not have labels associated to them:

  • VoiceOver application is not able to read the labels for such fields when Voiceover is activated.
  • Screen readers cannot associate a label to fields which do not have labels.
  • The font for the text when it is initially displayed until the user starts to type a value into the field, is very light in font color and difficult to read for users with vision disabilities.
  • Once you focus into such fields, the field description (e.g. 'Add a Comment' in Knowledge articles) goes away, which poses further challenges.
  1. Activate the VoiceOver application by clicking Command+F5 from your keyboard.
  2. Go to Live Feed and observe the 'Share your thoughts' field.
    • If you click into the field and start to enter inputs, the 'Share Your Thoughts' field description is no longer displayed.
    • If you try to tab into fields using VoiceOver, the field description is no longer read if there is user-entered text. Instead, the user-entered text is read. This can be misleading for users with disabilities.
The same issue occurs with the 'Search Messages' field in Live Feed.

MID Server


CyberArk integration supports .\ as part of the username for Windows local credentials, which does not work with some customer domain policies Currently, the format .\ must be used to use a local Windows server credential. However, some users want to use the username in the username field and an empty domain name format (which is fine as well). To do this, this situation should be detected, and .\ should be prepended to the credential name when the domain is empty and there is no \ in the username.
  1. Leave the domain name blank and the username without a \.
  2. Note that you do not succeed with local credentials on a domain server.



The size of content and UI components in the OAuth login and confirmation pages is too small

Performance Analytics



Performance Analytics The x axis on time charts displays numbers instead of dates When creating a widget of type 'time series', if you check the previous period chart, it displays numbers on the high chart's x-axis instead of dates.
  1. Create a widget.
  2. Set type Time Series.
  3. Check Previous period chart.
  4. Add it to a dashboard.

Performance Analytics



During scores collection, if the domain is global and there are existing scores for the collection day, scores are not deleted prior to re-collection When collecting scores multiple times per day in a domain-separated environment, if the collection job runs on the global domain, existing scores for the day are not deleted prior to re-collecting. This leads to duplicate scores.
  1. On a domain separated instance with no scores, run the default historic incident data collection job.
  2. Check the scores table for the number of collected scores.
  3. Run the historic collection job again. The number of scores should be doubled. Further investigation shows scores for the same UUID and start at date.

Planned Maintenance


SM Planned Maintenance Maintenance Plan "Add to existing" task creation policy not recalculating "Next run time" When the task creation policy of a maintenance plan is set to "Add to existing", the "Next run time" value is not recalculated after the "Run on demand" action is completed.

Platform Miscellaneous


AMB messages sent outside of a transaction will cause an NPE When an evaluation exception is thrown, statsListener.afterEvaluation() never gets a chance to clean up the pinned object.

Any Geneva Patch 7 instance that runs LDAP listener to sync user periodically has the risk of running out of memory. This happens when there are RecordWatchers registered against sys_user or sys_user_group and any of those watched records were updated by LDAP Transform threads.

Due to a change made in AMB in GP7, an NPE is thrown during RecordWatcher evaluation, which causes RecordWatcher StatsListener to fail to release GlideRecord reference at the end of the evaluation.

The following stack traces illustrate the symptoms of this problem. Note the NullPointerException:
2016-06-29 16:20:46 (692) glide.ldap.listener-3d21092e7f02120036bfdd620efa919b
  SYSTEM LDAP resources released, waiting for data
2016-06-29 16:20:47 (952) LDAP Transform3d21092e7f02120036bfdd620efa919b
  SYSTEM SEVERE *** ERROR *** Error running script engine
at com.glide.amb.server.AMBMessagePublisher.enqueueMessage(
at com.glide.amb.server.AMBMessagePublisher.publish(
at com.glide.amb.server.AMBMessagePublisher.publishRecord(
at com.glide.record_watcher_action.amb.DefaultAMBAction.onEnter(
at com.glide.record_watcher_action.amb.AMBActionHandler.onEnter(
at com.glide.record_watcher_action.amb.AMBActionHandler.onEnter(
at com.snc.da.filter.Actions.evaluate(
at com.snc.da.filter.predicate.ComparablePredicate.evaluate(
at com.snc.da.filter.Path.evaluate(
at com.snc.da.filter.Table.evaluate(
at com.snc.da.filter.Registry.evaluate(
at com.glide.record_watcher.RecordWatcherEngine.runEngine(
at com.glide.policy.AScriptEngine.process(
at com.glide.script.GlideRecord.runScriptsAndEngines(
at com.glide.script.GlideRecord.insert(
at com.glide.script.GlideRecord.insert(
at com.glide.db.impex.transformer.TransformRow.transformCurrent(
at com.glide.db.impex.transformer.TransformRow.transform(
at com.glide.db.impex.transformer.Transformer.transformBatch(
at com.glide.db.impex.transformer.Transformer.transform(
at com.glide.system_import_set.ImportSetTransformerImpl.transformEach(
at com.glide.system_import_set.ImportSetTransformerImpl.transformAllMaps(
at com.glide.system_import_set.ImportSetTransformer.transformAllMaps(
2016-06-10 08:07:50 (533) LDAP Transformb59a0aa50a0a3c59005c3972a326a789
  SYSTEM SEVERE *** ERROR *** Error running script engine 
at com.glide.amb.server.AMBMessagePublisher.enqueueMessage( 
at com.glide.amb.server.AMBMessagePublisher.publish( 
at com.glide.amb.server.AMBMessagePublisher.publishRecord( 
at com.glide.record_watcher_action.amb.DefaultAMBAction.onChange( 
at com.glide.record_watcher_action.amb.AMBActionHandler.onChange( 
at com.glide.record_watcher_action.amb.AMBActionHandler.onChange( 
at com.snc.da.filter.Actions.evaluate( 
at com.snc.da.filter.predicate.ComparablePredicate.evaluate( 
at com.snc.da.filter.Path.evaluate( 
at com.snc.da.filter.Table.evaluate( 
at com.snc.da.filter.Registry.evaluate( 
at com.glide.record_watcher.RecordWatcherEngine.runEngine( 
at com.glide.policy.AScriptEngine.process( 
at com.glide.script.GlideRecord.runScriptsAndEngines( 
at com.glide.script.GlideRecord.updateWithoutResettingOperation( 
at com.glide.script.GlideRecord.update( 
at com.glide.script.GlideRecord.update( 
at com.glide.db.impex.transformer.TransformRow.transformCurrent( 
at com.glide.db.impex.transformer.TransformRow.transform( 
at com.glide.db.impex.transformer.Transformer.transformBatch( 
at com.glide.db.impex.transformer.Transformer.transform( 
at com.glide.system_import_set.ImportSetTransformerImpl.transformEach( 
at com.glide.system_import_set.ImportSetTransformerImpl.transformAllMaps( 
at com.glide.system_import_set.ImportSetTransformer.transformAllMaps( 
at com.glide.system_import_set.ImportSetTransformer.transformAllMaps( 
at com.glide.sys.ldap.LDAPTransform.runImport( 
at com.glide.sys.ldap.LDAPTransform.transform( 
at com.glide.sys.ldap.LDAPTransform.transform( 

Platform Security


StackOverflow when loading huge-size properties from DB After upgrading to Helsinki, the system fails to initialize. For example, for a user who has a value in sys_properties of type password2 with a length 48K, which is storage-level encrypted, restarting the system does not work.
  1. Create a property of type password2, and set it to a huge value (e.g. 60K). Make sure that it starts with abc#, and the rest are Base64 chars.
  2. Try to restart the system.
Note: The issue is a side-effect of implementation of the StringUtil.isBase64() method, which is using patterns, requiring a lot of stack memory.

System initialization fails with the following exception:

… StackOverFlow
at java.util.regex.Pattern$Loop.matchInit(
at java.util.regex.Pattern$Prolog.match(
at java.util.regex.Pattern$Curly.match0(
at java.util.regex.Pattern$Curly.match(
at java.util.regex.Pattern$Curly.match0(
at java.util.regex.Pattern$Curly.match(
at java.util.regex.Pattern$GroupHead.match(
at java.util.regex.Pattern$Loop.match(
at java.util.regex.Pattern$GroupTail.match(
at java.util.regex.Pattern$Loop.matchInit(
at java.util.regex.Pattern$Prolog.match(
at java.util.regex.Pattern$Curly.match0(
at java.util.regex.Pattern$Curly.match(
at java.util.regex.Pattern$Curly.match0(
at java.util.regex.Pattern$Curly.match(
at java.util.regex.Pattern$GroupHead.match(
at java.util.regex.Pattern$Loop.matchInit(
at java.util.regex.Pattern$Prolog.match(
at java.util.regex.Pattern$Branch.match(
at java.util.regex.Matcher.match(
at java.util.regex.Matcher.matches(
at com.glide.util.StringUtil.isBase64(
at com.glide.util.GlidePropertiesDB.decryptValue(
at com.glide.util.GlidePropertiesDB.loadFromDB(
at com.glide.util.GlidePropertiesDB.setProperties(
at com.glide.Glide.init(
at com.glide.Glide.get(
at com.glide.ui.GlideServlet.init(
at org.apache.catalina.core.StandardWrapper.initServlet(
at org.apache.catalina.core.StandardWrapper.loadServlet(
at org.apache.catalina.core.StandardWrapper.load(
at org.apache.catalina.core.StandardContext.loadOnStartup(
at org.apache.catalina.core.StandardContext.startInternal(
at org.apache.catalina.util.LifecycleBase.start(
at org.apache.catalina.core.ContainerBase$
at org.apache.catalina.core.ContainerBase$
at java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.util.concurrent.ThreadPoolExecutor$

Project Management


Demand Management Demand Management module under PPS throws runtime exceptions due to an OOB script issue This is due to a unique index which was added to keep Task level numbers unique. As a result, users see the error message "Unique Key violation detected by database."
  1. Log in to the instance.
  2. Enable PPS Suite.
  3. Create a new Demand record with Category: Strategic and Type: Project.
  4. Once the Demand is created and is in the Draft state, create two test Requirements and Risk records from related records.
  5. Submit the Demand and approve it.
  6. Now use the Related Link to create a Project.
The project is created with the error message 'Unique Key violation detected by database.'

Project Management


The planned_task sub_tree_root field is being set to top_task and not the expected subproject The project hierarchy is still correct in terms of the relationships specified in the parent fields of all the records. However, the composite field Project is set incorrectly because the sub_tree_root field is incorrect, so user reports are not correct.
  1. Create a project hierarchy with the following structure:
    • Master Project: make this the top task
    • SubProject One: subproject of Master Project
    • SubSubProject One: subproject of SubProject One
    • SubSubProject Task One: child project task of SubSubProject One
  2. On the Project form layout, on the Project Tasks related list, add the Project(project) column to the list.
  3. Take a look at the SubSubProject One Project Tasks related list.
Note that prior to Geneva, the Project column shows the expected sub_tree_root, which is SubSubProject One. In Geneva and later, the Project column on the related list shows Master Project.

Project Management


Project Management, Project Portfolio Suite Unable to create new Projects using Project Templates if upgrading from Fuji to Helsinki and possibly Geneva without 'Project Portfolio Suite' plugin being active After upgrading from Fuji or prior to Helsinki (and possibly Geneva), Fuji and prior users with the Project Management v2 or v3 plugin active but 'Project Portfolio Management' not active, are unable to use Project templates. An error s caused by a missing field, which is otherwise created by the Project Portfolio Management plugin.

Furthermore, in Helsinki, it is not possible for customers to activate the 'Project Portfolio Suite' plugin (the 'Project Portfolio Suite for ITFM' plugin replaced this plugin in Helsinki). Since the 'Project Portfolio Suite for ITFM' plugin is not already available in the customer's plugin list, a separate request needs to be made to make the 'Project Portfolio Suite for ITFM' plugin available on their Helsinki instances, which is inconvenient.

In an OOB Fuji instance:

  1. Activate the Project Management v2 or v3 plugin.
  2. To verify this is working in Fuji, go to Project Template and create a new project from any of the existing project templates.
  3. Upgrade the instance to Helsinki.
  4. Repeat step 2 to create a new project from template on the Helsinki instance.
Note the new project does not get created, and instead there is an empty project form.

Project Management


Project Management, Project Portfolio Suite Adding key_milestone column to the planned_task table takes over 2 hours on upgrade of large dataset




Calendar gauges and reports on homepages no longer remember selected "Highlight based on" setting The Change Calendar gauge and report design pages no longer recognize the preselected default "Highlight based on:" value. Users have to select their desired choice each time the homepage is reloaded. The configuration of the Highlight field selection is not part of the Calendar report, but is stored as preferences on the specific calendar gauge dropzone. Refer to the listed Known Error KB article for details.



Certain homepages are having new widgets added after every upgrade After an upgrade, extra widgets are added to certain homepages (catalogs, Itil homepage, and Usage Overview). This is because the widgets were added to the update folder instead of the unload folder. This can be fixed by moving the files from one to the other.

On any instance on an older build:

  1. Through the CMS application, modify the itil homepage and remove some of the OOB widgets.
  2. Upgrade the instance to a newer version.
  3. Check the itil homepage.

Expected behavior: The itil homepage has the same widgets as the modified itil page.

Actual behavior: The homepage has extra widgets on it than it had before the upgrade.



Real-time auto-refreshing of single score widget does not work

In a Helsinki Patch 1 or later instance:

  1. Add a single score on a count aggregation to the dashboard (e.g. critical incidents).
  2. In the widget settings, toggle real-time auto-refresh.
  3. Remove or add a critical incident.
Note that nothing auto-changes, and it updates only after a manual refresh.



Agile Development UI actions scripts that contain more than 4000 characters get truncated on instances running Oracle For example, when installing the SDLC plugin(s) in an instance that has an Oracle DB, there are UI actions that are being truncated because of the max_length in the dictionary record of the "script" field. This causes many problems because the UI actions are unusable, since the scripts are truncated and the UI actions do not work as expected.

In an instance with an Oracle database:

  1. Install the SDLC plugin(s).
  2. Note there are UI actions are truncated and unusable.

Service Catalog


Using the maintain cart layouts, when no field is selected on the ordering widget, the widget gets hidden if the price is updated
  1. Set the system property '' property to true.
  2. Go to Maintain Cart layouts: https://<instance>
  3. Go to the Components tab and deselect all the options: Price (the fields related to price e.g. recurring price, subtotal, recurring subtotal), Quantity, Delivery Time.
  4. Go to Tab and make sure only one button (either order item OR order now) is selected. Deselect all other buttons.
  5. Now, go to any catalog item (that has some price) and check the 'use_cart_layouts' checkbox, in order for it to use the default cart layout.
  6. Create a variable of type 'select Box'. Add some choices and give some price to each choice.
  7. Now, try the catalog item. You can see that there are no any components in the ordering widget except order now button.
  8. Now, without the new variable, try to change the option.
Note that the ordering widget is hidden.

Service Mapping


Merge table closure is not efficiently handling large tables Merge table closure will consume a high amount of CPU (on the MID) when the input tables are large (>5000).

Service Mapping


Service Mapping CyberArk integration does not fall back to IP address When an initial query using the object name fails, ServiceMapping fails to create a query to CyberArk using the IP address instead.

Service Mapping


Service Mapping fails to identify listening port correctly when using lsof on UNIX systems On AIX/Solaris/HPUX, Service Mapping may use lsof to determine process listening on a given port. The lsof command issued is not filtering listening ports, so sometimes the result is, mistakenly, another process on the same machine that has established a connection to the given port.

Service Mapping


Service Mapping is inserting to the CMDB qualifier CIs without discovery_source field populated This happens in Helsinki, in addition to upgrades from Geneva to later versions.

Service Mapping


During Helsinki upgrade, business services' Traffic based Discovery flag that is set to false is not updated in the Service Model In instances that are upgraded to Helsinki, business services that have their Traffic based discovery flag set to false, are not synced correctly with the Service Model. Instead, the TBD flag is marked as true in the model.
  1. Create a business service in a Geneva instance with the Traffic based discovery flag set to false.
  2. Upgrade to Helsinki.
The flag will appear as false in the UI, but when running discovery, TBD connections will be added to the map.

Service Mapping


Load Balancer VIPs which serve all ports should be created with port set to blank When creating a VIP via F5 LTM pattern, and the VIPs port is 0, the CI should be created with a blank port. Currently it is set to the entry point's port. This causes the VIP not to merge with an existing one, created by Discovery, and then lose its relation to the LB, when HD is run again on the LB.
  1. Discover an F5 VIP that shows up with port 0 on the LB.
  2. Note the pattern creates a new VIP with the entry point's port instead of merging with the existing VIP that has a blank port.

Service Mapping


Error on server request updateFetchMashup. Unknown Error A long query on large maps causes error 400.

Service Portal


Service Portal widget is confusing This PRB fix includes improved widget usability:
  • Standardized scripts and CSS blocks
  • Update rendering and layout of widget in portal using SCSS
  • Improved Widget Editor

Service Portal


NG shared components Direct links with in the URL are not working

Service Portal


Data table widget might fail to show column label

Service Portal



Service Portal redirects cannot be set up because required files are missing Service Portal redirects cannot be set up because the following required files are missing:
  • SPLoginRedirect (script include)
  • SPEntryPage (script include)
  • SP NavTo Processor
The fix for this PRB removes the SPLoginRedirect script include as well as the SP NavTo Processor from the Login & Redirect process. For more information about Service Portal Redirects, see Service Portal Single Sign On, logins, and URL redirects.
In a Helsinki instance:
  1. Using the instructions in Service Portal Single Sign On, logins, and URL redirects, configure the Service Portal.
  2. Try to use the Service Portal. The Service Portal does not work properly. The processor and the script includes are missing.

Service Portal


c.server.update() and spUtil.get() does not allow to handle errors in the widget The widget editor always displays a "Saved" message even when saving fails.

Service Portal


"" property does not work for Service Portal when set to "never" The property "" does not work for the Service Portal catalog in Helsinki. Even if "never" is set, the prices are displayed in the category.

In a Helsinki instance with Service Portal installed:

  1. Navigate to All properties > All > Filter []. Notice that value is set to non_zero.
  2. Change the property value to never.
  3. Navigate to Service Catalog > Hardware. Notice that the price is not shown.
  4. Navigate to the CMS Portal. Notice that the price is not shown (/ess/
  5. Navigate to Service Portal > Order Something. Notice that prices are still shown (/sp?id=sc_home).

Service Portal


The 'KB Most Viewed' widget in Service Portal does not display all the fields to customize it Users are unable to edit or modify the OOB 'KB Most Viewed' widget. When editing it, only the field 'bootstrap color' is displayed. The fields Title, Max Number, and KB category are missing.

In a Helsinki instance:

  1. Navigate to Service Portal Configuration > Designer.
  2. Select the Knowledge Base page with the "kb_view" displayed at the bottom.
  3. On the 'KB Most Viewed' widget, click the pencil to edit it. Notice that only one field (bootstrap color) is displayed.
  4. On the 'KB Top Rated' widget, click on the pencil to edit it.
Notice all the fields that are available for customizing the widget (Title, bootstrap color, Max Number, KB category).

Service Portal


Service Portal does not update price when updated by checkbox variable to reflect deselection When ordering an item in Service Portal that has a checkbox with a price associated selecting (setting it to true), this will result in the price being increased based on the value. Deselecting it should reduce the price again, but this does not happen.

In a Helsinki instance:

  1. In the Service Catalog, modify the Apple iPhone 6s item.
  2. Create a variable named Expensive with a type of Checkbox and a price, if checked, of 1000.
  3. Order the iPhone modified above.
  4. Click the Expensive checkbox to increase the price from $799.00 to $1,799.00.
  5. Click the Expensive checkbox again to decrease the price back to $799.00.
Note that this does not behave as expected, and the price remains at $1,799.00.

Service Portal


Mobile UI g_user_date_time_format is not accessible in the Service Portal In a Helsinki instance:
  1. Open any catalog item - client script.
  2. Add the below piece of code to execute onLoad.
    var format = g_user_date_time_format;
  3. Access the catalog item.
  4. The system fires an alert. This is the expected behavior.
If you open the same catalog item in the Service Portal, the system throws the error message below in the console:
Error while running Client Script "Disable carrier until device available":
  ReferenceError: g_user_date_time_format is not defined

Service Portal


Service Portal creates excessive SessionDebug on production instances By default, glide.spform.log_sql is true when it should be false instead.

Service Portal


Conversation stream does not show image attachments added before insert (e.g. from the 'Create a New Incident' catalog item)

In a Helsinki instance:

  1. Navigate to Create a New Incident in the catalog in Service Portal.
  2. Add an attachment before submitting the incident.
  3. Navigate to id=ticket page for the resulting incident.
Note that your attachment is missing from the conversation stream.

Service Portal


Double quotes in internationalization messages generate JS error on Catalog form and Order Guide

Service Portal


CSS classes set to nested rows are not getting applied In a Helsinki instance:
  1. Go to the the Service Portal Designer.
  2. Create a set of columns within a set of columns.
  3. Apply a custom CSS class to the nested Row.

Expected behavior: It should apply the class that was applied.

Actual behavior: The CSS class is not applied.

Service Portal


SCSS Bootstrap Theme, Service Portal for Enterprise Service Management A new portal should use default $grid-gutter-width bootstrap value The bootstrap variable $grid-gutter-width should be 30px, the default value.

Service Portal


NG shared components getMessage in Catalog Client Script doesn't translate text for Catalog Item In Service Portal, the getMessage function does not find the correct message translation when used in a Catalog Client Script. Instead, it merely returns the value passed into it. For example, getMessage('hola mundo') will display "hola mundo", instead of the English translation of "hello world" for a user with English. In a Helsinki instance:
  1. Activate the plugin for I18N Spanish Translations.
  2. Use Service Portal for Enterprise Service Management.
  3. Create a Catalog Item with the following details:
    • Name: Test
    • Short Description: Test
    • Catalog: Service Catalog
    • Category: Can We Help You?
  4. Add a Variable to a Catalog Item from a related list:
    • Question: Test
    • Name: test
  5. Add a Catalog client script to a Catalog Item from a related list:
    • Name: Show Translated Message
    • UI Type: Both
    • Catalog Item: Test
    • Type: onLoad
    • Applies on a Catalog Item View: checked
    • Active: checked
    • Script:
      function onLoad() {
      //Type appropriate comment here, and begin script below
      var message = getMessage("Hola Mundo");
      g_form.showFieldMsg('test', message, 'info');
  6. Navigate to System UI > Messages.
  7. Create a new message:
    • Key: Hola Mundo
    • Language: English
    • Message: Hello World
  8. Navigate to /sp.
  9. Click Order Something > Can We Help You? > Test.
Verify that "Hola Mundo" did not get translated to "Hello World". When viewing catalog item through UI, "Hola Mundo" gets translated to "Hello World". This behavior should also occur in the Special Portal, but it does not.

Service Portal


Service Portal is not using the translations for the catalog item 'container start' variable title The catalog item 'container start' variable 'title' is not translated in Service Portal. The expected behavior is that it appears as it does in the Service Catalog - i.e. the translation for the current session language is used if it exists.

In a Helsinki instance:

  1. Install Service Portal and and any language plugin.
  2. Create a catalog item with 'Container Start' and 'Container End' variables.
  3. In the 'Container Start' variable, check Display title and fill in the 'Question' field (which is used for the title).
  4. Create a translation of that question field value (switch language, change the question, and re-save).
  5. View the catalog item in the Service Portal.
Note the English question is used for the container start title.

Service Portal


Service Portal for Enterprise Service Management In the Service Portal, "Search" is not shown on home page in mobile view In mobile, search is not visible on the Service Portal.

In a Helsinki instance:

  1. Try to access service portal via mobile in any browser: https://&amp;lt;instance>$
  2. Note the Search option is not visible in the mobile view on the home page. However, search is visible for submenus, but not on the home page.

Service Portal


Catalog Items of class 'Content Item' are not showing up in the new Service Portal but work as expected in the CMS portal In a Helsinki instance:
  1. Activate the Service Portal plugin.
  2. Navigate to Service Catalog > Catalog Definitions > Maintain Items.
  3. Consider a Catalog Item 'Cisco Jabber 10.5' of class type Catalog Item in category 'Software'.
  4. Notice that the Catalog Item is visible in the new Service Portal under Software Category.
  5. Now modify the class of the item to Content Item.

Notice that 'Cisco Jabber 10.5' is no longer visible in the new Service Portal under Software Category.

Expected behavior: 'Cisco Jabber 10.5' is visible in the Service Portal.

Actual behavior: The Catalog Item 'Cisco Jabber 10.5' is not visible.

Service Portal


Included items without short_description are not shown in the Order Guide In a Helsinki instance:
  1. Create an Order Guide with an included item, where the included item has no short description.
  2. View the Order Guide in the Service Portal.
Note that the item is not there on the page.

Service Portal


Attachment delete dialog text is not translated In a Helsinki instance:
  1. View a record in the "ticket" page.
  2. Add an attachment.
  3. Click X to delete that attachment.
"Are you sure?" is not translated.

Service Portal


Unable to hide Label variables in Service Portal Service Catalog using UI policy actions. The standard UI policy that hides variables in normal instances does not apply to Service Portal.

Service Portal


Type-ahead search widget in Service Portal shows catalog items that are not searchable (no search = true) In a Helsinki instance:
  1. Navigate to Service Catalog > Catalog Definitions > Maintain Items.
  2. Personalize the list and add the No Search field.
  3. Search for the Access item (or any item), and set No Search to true.
  4. Navigate to /sp.
  5. Click Service Catalog and use the search box in the top right. Type Access and hit enter.
  6. Click the Service Catalog category selector on the right.
    • Expected/Actual behavior: Access does NOT appear in the search results.
  7. Type Access into the search box again and wait for type-ahead to appear.

Expected behavior: Access will not be in this list.

Actual behavior: Access is in the list, and clicking it will take you to the Access item.

Service Portal


Service Portal Designer Widget code is running twice in the Service Portal Designer When a widget is added in the Service Portal Designer, the widget JS is executed twice. In a Helsinki instance:
  1. Edit a widget and add console.log() in the JS panel.
  2. Open the Service Portal Designer and create a new page.
  3. Add the widget from #1.

Expected behavior: console.log should only execute once.

Actual behavior: It executes twice.

Service Portal


Show Help and Tooltip are not showing up on the Service Portal In a Helsinki instance:
  1. Open any catalog item and create a variable.
  2. Add a Tooltip for the variable in the Questions tab.
  3. Check the Show Help checkbox and add help text.
  4. Click Try it to run the catalog item. Observe the Tooltip and More help are displayed.
  5. Open the same catalog item on the Service Portal. Observe the Tooltip and More Help are not displayed.

Service Portal


Order Guide 'Required Information' (mandatory variable check) does not get reevaluated if conditions change (if for example mandatory variable is no longer required) With the Service Portal/Order Guides, there is a check if the items in an order guide has any mandatory fields from the SC Catalog Item widget. This is seen in the UI via the 'Required Information" box, where it details the mandatory variables. If you remove one of the items with a mandatory variable, the 'Required Information' does not get updated and still list all mandatory variables. This in turn prevents submission of the order. In a Helsinki instance:
  1. Create an Order Guide (Catalog - Service Catalog, Category - Can We Help You?).
  2. Add two yes/no variables (order 100 and 200).
  3. Add 2 items (Apple iPad 3 and Apple iPhone 5) on rule based, and use the two yes/no variables as condition for the rule based. If variable is 'Yes', the item/s will show.
  4. Add 1 mandatory variable to the Apple iPad 3 and Apple iPhone 5 items.
  5. Use the Order Guide via Service Portal - you should see the 'Required Information' list the two mandatory variables.
  6. Change one of the Yes/No variable to 'No'. One of the item should disappear. Note the 'Required Information' still lists 2 mandatory variable, where it should updated with only 1 variable.
  7. Click Submit.
Note that you get an alert 'The following fields are incomplete", and the transaction is aborted.

Service Portal


Service Portal Social QA Link-button widget does not allow users to set color in Widget Options In a Helsinki instance:
  1. Add the link-button widget to a page.
  2. Ctrl+right click on the button and edit Widget Options.
Note that you are unable to specify the color.

Service Portal


Requests header menu and My Requests widget show different results Instead of showing different results, they should use the same query.

Service Portal


SP code failed to parse text contain en-dash (–, wider hyphen) When any text in the page contains contain en-dash (–, wider hyphen), users see the following error: "Uncaught InvalidCharacterError: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range". In legacy pages, the same text parses without any errors.

Service Portal


Service Portal Designer When you drag and drop a widget to another location in the Service Portal Designer, it will duplicate the widget instead of moving it over In the Service Portal Designer, moving a widget from one container to another duplicates the widget instead. In a Helsinki instance:
  1. Create a test page with a few containers that contain more than one column.
  2. Drag and drop a widget to column 2 .
  3. Move the widget you just dragged to the second column container below, to another column 2.

Expected behavior: The widget should be moved, not duplicated.

Actual behavior: The widget is duplicated.

Service Portal


NG shared components Select2 element images are not available if VTB is not installed

Source Control Integration


Cannot import new applications from source control on instances with updates missing an application reference When attempting to import an application from source control for the first time, the import will fail with the message "The application has been changed since it was last imported or exported. Either export the changes or elect to lose unsaved work." This occurs even though the application does not exist and does not have any local changes.

This can be triggered by the existence of any sys_update_xml record with an empty application value. (https://<instance>/

  1. Find or create a Git repository for an application that does not exist on the target instance.
  2. Ensure that neither the repository nor the application records already exist on the target instance.
  3. Go to the sys_update_xml table and clear out the application value for at least one record.
  4. Attempt to import an application from source control via Studio.

Expected result: Application should be successfully imported, since it did not exist previously and is not actually "dirty".

Actual result: Receive error about outgoing changes.

Team Development


If Team Development is turned on,and too many local changes exist, performance issue when adding new versions Team Development is designed to have fairly frequent pushes and pulls, which limit the number of local changes (sys_sync_change) that will be on an instance. However, if a customer does have thousands of a specific type of local changes (e.g. Dictionary), whenever they change that type, they may encounter performance issues and latency.

Have 2 instances with one as the parent of the other, using Team Development:

  1. On the child, create many records of the same type (e.g. Dictionary).
  2. After you have created ~5000 of the same type, create/update/delete this same type of record

Note that you will experience latency and you may even get a timeout failure.

One common scenario is latency when saving a report. With 22,000 "Report Users and Groups" type changes and 7,000 "List Layout" type changes, this can result in 40+ seconds of latency when saving a simple report.

User Interface (UI)


Recent selections popup coming up in tabbed view when the first writable field is in the second tab and is a reference field

In a Fuji instance with the Procurement plugin active:

  1. Go to a purchase order record(proc_po) record.
  2. Important: Ensure that your viewing the record in tabbed mode.
  3. Navigate Procurement > Purchase order, and open a purchase order which has state 'ordered' (e.g. PO0000010, OOB).
    • Now we need to change the form in such a way that you remove all the writable fields from the form and move it to the second tab. In other words, the first section should be completely read-only. The first tab should also be completely read-only. The second tab should have the first writable field as a reference field.
  4. Now, go to the second tab and enter something in the first writable reference field (Abel Tuter, if it is assigned to) and save it.
  5. Go to the same field, remove the name Abel Tuter, and save the form.
  6. Click on the same reference field. You will notice the recent selection (Abel Tuter) come up.
  7. Go to the first tab where there is no writable field at all.
  8. Go to the list of purchase orders (proc_po.list) and open the form that you just opened.

Notice the recent selections appear in the left top side.

User Interface (UI)


Totals out of alignment for values in embedded lists in printer-friendly version of form For embedded lists on forms with dollar amounts with a total at the bottom, using the printer-friendly version of the page does not have the the dollar total line up with the amounts above.
  1. Open an incident.
  2. Right-click the grey header > Configure > Form Layout.
  3. Add Expense Line > Task to the form and save.
  4. Double-click Insert a new row, then click the green tick next to the expense line number. A 0 dollar amount is added to the list.
  5. Repeat step 4 twice more so you have 3 entries. Note that the total already does not line up.
  6. Right-click the grey header and save the form.
  7. Click the cog in the top frame.
  8. Click Printer-friendly Version.

Expected behavior: The total of dollar values entered should be under the list of values in the embedded list.

Actual behavior: The total is one column to the right too far.

User Interface (UI)


UI16 navigator is not on the right and lists are rendered from right to left for users with RTL languages (e.g. Hebrew)
  1. Log in as an admin user.
  2. Install the I18N Hebrew plugin.
  3. Create an admin user with the language set to Hebrew.
  4. Log in as the user created above.
Note the navigator is on the left, and lists (e.g. incident, change, problem) are not rendered from right to left.

User Interface (UI)


Form layout is aligned to the left in Hebrew When the instance is in Hebrew, the forms are aligned to the left instead of the the right.
  1. Activate the I18N: Hebrew Translations plugin.
  2. In a new tab, go to a problem record.
  3. In this new tab, change the instance language to Hebrew.
  4. Reload the problem record.
Note the two columns in the form layout stayed in the same position instead of switching, since the alignment in Hebrew is right to left.

User Interface (UI)


E164 Compliant Phone Number 'field_decorations' dictionary attribute does not work on 'Phone Number (E164)' field
  1. Create a new UI macro.
    • Name: testingMacro
    • In between the jelly tags: &amp;lt;span>testing&amp;lt;/span>
  2. Open an incident record and create a new field:
    • Name: testPhone
    • Type: Phone Number (E164)
  3. 'Configure Dictionary' on testPhone field.
  4. Add the attribute: field_decorations=testingMacro.
Notice that the UI macro is not applied to the testPhone field.

User Interface (UI)


System Status shows wrong dates if the date format is changed On the Service Portal's System Status page, the dates do not display correctly if the date format has changed to "dd.MM.yyyy". The System status page should show the last 5 days, even if the date format has been changed.
  1. Go to sys_properties.list.
  2. Filter for Name = glide.sys.date_format.
  3. Open the system property and set it to dd.MM.yyyy (by default, it is "yyyy-MM-dd").
  4. Save the system property.
  5. Go to the System Status page in the Service Portal: https://&amp;lt;instance_name>
Note that the dates in the status History shows the last 5 months, not the last 5 days as expected.

User Interface (UI)


Transaction timeout after attempting to save a new Facilities Request due to SMFilters script include looping If customer has a location which sets the parent location as itself, it can cause the transaction times out when saving a new record. This is caused by the script include SMFilters, which is called by the business rule "Populate Group - Qualification."
  • SMFilters script include: /
  • Populate Group - Qualification business rule: /
  1. Activate the Facilities Service Management plugin.
  2. Navigate to cmn_location.list and open the record California.
  3. Change the parent field to San Diego.
  4. Navigate to and set the location to San Diego.
  5. Fill in any other mandatory fields and save.

Expected behavior: The record should be created with the location set to San Diego.

Actual behavior: The transaction begins to loop and times out.

Visual Task Boards


Visual Task Boards In Geneva, VTB requires global Update UI action to be active in order for UI/Data policy validation to work
  1. Navigate to an Incident form > Configure Form Layout.
  2. Create a new Field (e.g. Test style), add it on the form, and save.
  3. Create a data policy on the Incident table using the field you created in step 2 (e.g. Condition is when "State is Closed or Resolved" > Make "Test Style" is Mandatory).
  4. Navigate to task.list and make a filter where Task Type is Incident.
  5. Right-click on the State column > Show Visual Task Board.
  6. Move an Incident card to the Resolved or Closed state. Observe that move fails and notice if a popup from the data policy appears or not.

Notice that in a Geneva instance, you do not receive the popup message from the data policy. If you have any other tab opened with a list view, you will see the warning message from the data policy. However, the expected behavior is for a popup message on the VTB itself when a lane move fails.

Expected behavior: When the Global Update UI action is not active - The data policy validation popup message should come when moving the incident card on a guided VTB for the task table.

Actual behavior: When the Global Update UI action is not active - In Geneva, the data policy mandatory validation message does not appear when moving the incident card on guided VTB for task table.



"Excessive workflow context warning logs - Stage not found in future" error Users see these warnings in the wf context logs when a stage is not found in the deterministic future for stage rendering.



Graphical Workflow Support In workflow Create Task activity, when you select "Value" for the Populate task variables from, you are not allowed to set any values In a workflow, add a create task activity. Change the Populate task variables from Values. A Set Value is supposed to be shown, then the field and value parameters, but users do not see anything and are unable to use the set values from values option.
  1. Create a new workflow on the task table or a table extended from the task table.
  2. Add a create task activity.
  3. Change the Populate task variables from Values.
Note there is no space to set values.

Fixes included with Helsinki Patch 3

* 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.