Thank you for your feedback.
Form temporarily unavailable. Please try again or contact to submit your comments.

Helsinki Patch 6

Log in to subscribe to topics and get notified when content changes.

Helsinki Patch 6

The Helsinki Patch 6 release contains fixes to these problems.

Helsinki Patch 6 was released on October 20, 2016.
Build date: 10-06-2016_1705
Build tag: glide-helsinki-03-16-2016__patch6-10-05-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 6 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 6, refer to KB0598105.

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




Task Table flattening or Task Table extensions can exceed the row size limit of 8126, causing Task hierarchy errors and task table functionality degradation

For instances using a MySQL database, we use MySQL's InnoDB engine (Antelope version) for the tables our platform creates. This InnoDB engine version allows us to define a table schema where the row size can theoretically surpass the 8126 byte limit.

While all field types can contribute to the row size limit, usually any table with many large string (mediumtext) columns is more likely to be at risk.

Refer to the listed Known Error KB article for details.

Refer to the listed Known Error KB article for details.




Database pool sweeper job causes hanging database connection
The database connection hangs due to a concurrent execution on the same database connection by:
  • a database pool sweeper thread
  • a thread handling regular transactions
If this occurs when cache loading, it can cause an incomplete cache to be built (for example, TableDescriptor). This can surface as various symptoms:
  • Banner text shows as the word "null" (invalid table name: sys_script)
  • System uses UI15 for all users when they expect UI16 (invalid table name "sys_user_preference")
  • Node unreachable, blank page, 401's etc. (invalid field name "sys_scope.scope")
  • Fields display as the field name instead of field labels (invalid table name: sys_documentation)
  • Integrations receiving HTTP 401 (invalid table name: sys_user)
  • Users unexpectedly logged out after logging in (invalid table name: sys_user)

These issues are always preceded by a series of SEVERE errors during the GlideSweep on threads that are being "cleaned." The errors are preceded by a warning message similar to the following:

WARNING *** WARNING *** caught error involing
method getWarnings on connection 4

Refer to the listed Known Error KB article for details.

User Interface (UI)



Using AMB Client on the parent frame from the contained frame causes a memory leak in IE11 In Geneva and forward in Internet Explorer 11, the iexplore.exe process consumes more and more memory with each page load, constituting a memory leak. The memory leak stems from the asynchronous message bus that powers many live features in UI16. When this feature is used on pages containing iframes, there is a bug in Internet Explorer 11 that causes the browser to maintain unnecessary information in memory. The fix works around the Internet Explorer 11 memory leak by handling the message bus connections differently.
  1. Open an instance using Internet Explorer 11.
  2. Open the task manager to observe Internet Explorer memory usage.
  3. Navigate to an incident form.
  4. Use the arrow keys on the top right to move between incident forms.

Notice Internet Explorer memory usage continues to climb by 10 - 20 megabytes per page. If you continue to navigate between pages, Internet Explorer will crash after going through a large number of forms.

Import / Export



System Import Sets Import Set Deleter job causing instances to run low or out of memory, causing performance issues on the affected node The Import Set Deleter job cleans records in the import tables. A problem that was fixed in Fuji addressed out of memory exceptions that arise from MultipleDelete, which Import Set Deleter utilizes. However, the fixes did not completely prevent memory concerns for the Import Set Deleter job.
  1. Create a large number of import sets (for example, 10,000).

    Each import set needs to have a nominal load (for example, 2,000) of records to be imported.

  2. Navigate to System Import Sets > Scheduled Cleanup.
  3. Change Days from 7 to 0.
  4. Click Execute now.

The deleter job runs on all import sets. Note that memory consumption increases substantially while the deleter job is running. The job is loading GlideRecords, but it only needs the names of staging tables.



After creating a field with column name longer than 30 characters, when a user tries to Group By that field, they always receive (empty) as a label of the group If a user creates a field that has >30 characters length, when you try to group by that field, the labels are shown as "empty" even though the results under the group are correct.
  1. Create a field with the following information:
    • Longer than 30 characters (e.g. u_service_or_configuration_item)
    • Type String
    • Length 100 on the Task table

    Notice that the field is created in the database as 'u_service_or_c11n_item, varchar(100), YES, , null, '.

  2. Go to the Task table and update this field with some values (e.g. test1, test2).
  3. Go back to task.list.
  4. Right-click on the field u_service_or_configuration_item and select Group By Service or configuration item.

The created Groups all have the name 'empty'.

All Other Fixes

Problem Affected Plugins Short description Description Steps to reproduce



Connect Support Chat activity does not record a conversation if the chat agent or caller leaves the conversation System messages such as the Initial agent's message, transfer initiation, and escalations do not get reflected in a record activity stream. This creates an incomplete transcript for support managers.
  1. Initiate Chat conversation between caller and agent.
  2. Submit incident and Save.

The chat conversation is recorded in worknotes / comments in the incident. If the agent or caller leaves the conversation, the Chat desktop says the agent/caller left the conversation, but those messages are not recorded in the chat activity.



In Connect chat, window shows up right away but takes a long time to completely load $ will pop up, but it continues to load for many seconds or minutes.
  1. Create a chat queue.
  2. Run a script to insert thousands of chat_queue_entry records where chat_queue_entry.queue equals the above queue's sys_id.
  3. Load $

Notice that the request to all?queueID=XXXX can take many seconds or minutes.



CMDB IdentificationEngine mutex causing performance drag

Under load, the IdentificationEngine single mutex is causing heavy congestion, resulting in canceled discoveries.

The fix for this PRB includes support for distributed locking to help with scaling. This is guarded by the property glide.identification_engine.distributed_locking, which is off by default. If you encounter this PRB, add this system property and set it to true.

  1. Run many discoveries at once such that the instance is saturated and the ECC queue input latency starts to rise.
  2. In a node, examine stack traces on a worker thread. If the run time is over 30 seconds, pick a different one.
  3. Refresh the stack trace several times.

Note the performance issues shown in the logs.

Instead of a very high proportion waiting for the IdentificationEngine mutex, there should be a dispersal of various different code locations.



Configuration Management (CMDB) CI relations do not show in the user form In Fuji instances, the User CI relations does show in the user form. However, adding a new relation does not work. There are some issues with the new user CI relations for the new relation formatter.
  1. Log in to a Helsinki instance.
  2. Add CI Relations to any form (e.g. incident).

CI Relations do not load on the form.



Configuration Management (CMDB) Relationship formatter has trouble loading when the max level is changed in Settings
  1. Navigate to the relationship formatter and click Settings.
  2. Click Filter Relations By Relationship Type and choose a different one.

The relationship formatter keeps spinning and does not load.

Dependency Views (BSM Map)


Next-Gen BSM In Helsinki BSM maps, groups cannot be collapsed

Dependency Views (BSM Map)


Next-Gen BSM Creating a global default view for BSM Maps does not work
  1. Navigate to BSM Map View.
  2. Create some filters and save the BSM Map View.
  3. Now, try to make this view the default for all users using these instructions.

Note this does not work with the Next Generation BSM.

The results for the different BSM types are:
  • Pre-Eureka: The Global User preference works here.
  • Eureka and later: The Global User preference does not work.
  • Fuji and later (Next Generation BSM): The Global User preference does not work.

Dependency Views (BSM Map)


Next-Gen BSM In the BSM map view, the full node names should be displayed In the Geneva and Helsinki BSM maps, the full CI name is not displayed. In the legacy BSM view, the CI name was fully displayed.

Dependency Views (BSM Map)


Next-Gen BSM In Geneva/Helsinki, BSM map does not create multiple layers of the groups that can be expanded/collapsed In Geneva and Helsinki, the BSM map does not create multiple layers of groups that can be expanded/collapsed at any time. This capability makes the map much more usable.

Domain Support



Geneva domain reference picker does not sort domain names alphabetically After upgrading from Fuji to Geneva, the domain reference picker no longer sorts domain names alphabetically.
  1. Log in to a demo Geneva instance as administrator.
  2. Navigate to System Definition > Plugins.
  3. Activate the Domain Support - Domain Extensions Installer plugin and wait for completion.
  4. Once the homepage is refreshed, click the gear icon in the upper right of the screen.

Expand the domain picker and observe that the domain names are not sorted.

Edge Encryption


Default keys are reset to NULL after an instance upgrade
  1. Activate the Edge Encryption plugin.
  2. Set default 128 and 256-bit keys on the instance.
  3. Create a proxy and register it with the instance.

    The keys should be available and the proxy is online.

  4. Shut down the proxy.
  5. Upgrade the instance.
  6. In the instance, navigate to Encryption Key Configuration > Set Default Keys.

Expected result: Default keys should be retained after an upgrade.

Actual result: The default keys have been cleared out by the upgrade process.



Inbound email attachments are not working as expected Inbound email attachment file names are not being decoded before they are evaluated against the white list in glide.attachment.extensions.

Event Management


In SNEventSender, NullPointerExceptions occur when AdditionalInfo field is empty This issue applies to integrations which send events to the Event Management 'Event' table. For these integrations, if the Additional Info field is empty, NullPointerExceptions fill the log.
  1. Create an Event Management 'Event' using a custom connector or the Web Service API.
  2. Leave the Additional Info field empty.

Note the NullPointerExceptions in the log.

Event Management



Alert rule causes incidents to be created for closed alerts Alert rules cause incidents to be automatically created and associated to a closed alert.
  1. Navigate to Event Management > Alert Rules.
  2. Create a new alert rule.
    1. Configure the required filter.
    2. Mark Auto Open as true and choose the task type.
    3. Save the alert rule.

The alert rule runs on the insert of a new alert and on any update of an existing alert. The alert rule runs on closed alerts as well, so a new incident may be created and associated to a closed alert.



Survey is not firing when the condition is 'is one of' and the choice list values are mixed case
  1. Add a field (of type Choice) to the sys_user_group table with four options:
    • Name: Support Type
    • Choices: First Choice, Second Choice, Third Choice, Fourth Choice
  2. Create a trigger condition for incident table. Add two conditions:
    • State is Resolved
    • AND
    • Assignment Group.Support Type 'IS ONE OF' First Choice, Second Choice, Third Choice.
  3. Update the CAB Approval group to have the Support Type as 'First Choice'.
  4. Create an incident with the assignment group set to CAB Approval.
  5. Set the status to Resolved.

Expected behavior: An assessment instance is created.

Actual behavior: There is no assessment instance.

HR Service Management



Human Resources Application: Core When upgrading, HR demo data defaults are reactivated and overwrite customizations If HR demo data is customized or categories deactivated in base system content, the content might revert to the base system defaults after upgrading.
  1. Modify the base system content in one of the following categories, or deactivate the data:
    • HR Categories
    • Workday scheduled job
    • Surveys
    • HR Case and Task templates
    • Document templates
    • HR skills
    • Connect action
    • Chat queue
    • HR Portal preferences
    • HR groups
  2. Upgrade the instance.

Note that the records have reverted back to the base system default data values.

HR Service Management


Human Resources Application: Core 'Auto Populate Fields' client script not populating the Location and Department when entering 'Opened for' form field In the HR Case table, a user can be entered into the 'Opened for' field. Per the 'Auto Populate Field' client script, the location and department fields should auto-populate according to the selected user's records, but they do not.


  • Install the 'Human Resources Application: Core' plugin.
  • In Users, search for a user who has a record for location and department. For example, Abel Tuter (Location - SHS quadra 5, Bloco E., Brasilia ; Department - Product Management).

Steps to reproduce

  1. Navigate to HR > Case Management > Create a New Record.
  2. Enter a user's name in the Opened For form field (e.g. Abel Tuter).

The Location and Department fields should auto-populate from the user's record, but they do not.

HR Service Management


Human Resources Application: Core Some Helsinki roles were deleted incorrectly during role cleanup Some unnecessary SM Core roles were complicating the role hierarchy during Helsinki, and they were removed in PRB647312. However, the hr_agent role was incorrectly deleted. Roles that were removed in PRB647312 should not be completely deleted - the role XML file should simply be removed.

HR Service Management


Human Resources Application: Service Portal, Human Resources Application: Performance Analytics, Human Resources Application: Workday Integration, Human Resources Application: Core, Human Resources Application: HR Connect HR category records (hr_category) are updated after patching from Helsinki Patch 2 to Helsinki Patch 3 After patching from Helsinki Patch 2 to Helsinki Patch 3, customized HR Category records (hr_category) are updated back to an out of box state.

In a Helsinki Patch 2 instance:

  1. Go to the hr_category list and open the record named Employee Relations.
  2. Change the field Active = true and remove the template from the Template field.
  3. Upgrade the instance to Helsinki Patch 3.
  4. In the Helsinki Patch 3 instance, open the Employee Relations category record.

Note you will see Active = false, and the template has been added back.

Language and Translations


Some portions of Service Portal are untranslated when using Portuguese


  1. Activate Service Portal.
  2. Activate the I18N: Portuguese Translations plugin.
  3. Activate the I18N: French Translations plugin.

Steps to reproduce

  1. Navigate to Service Portal > Service Portal Home.
  2. From Settings, change the Language to French.

    Notice that when you reload the Service Portal homepage, the section names are correctly shown in French.

  3. From Settings, change the Language to Portuguese.

    Notice that the same names in Service Portal are shown in English.

Expected behavior: All sections should be shown in Portuguese when this language is selected in Service Portal.

Actual behavior: Some sections are shown in English.

Language and Translations


Some Czech and Finish text is not correctly translated
  1. Install the plugin: com.snc.i18n.czech.
  2. Change the language to Czech.
  3. Navigate to Self Service > Knowledge > HR.

Expected behavior: Czech translations in knowledge fields are correct.

Actual behavior: Some OOB Czech translations in Knowledge fields are not entirely correct.




List v3 Components 'Time Ago' option is not displayed correctly in List v3 When the date format is changed, the 'Time Ago' date/time option does not display correctly in List v3.

Refer to the listed Known Error KB article for details.

MID Server



Rekeying MID server is unsuccessful after Geneva upgrade: Unexpected IOException loading keystore

During an upgrade to Geneva, which is the release that introduced MID Server validation, if you delete the keystore and then restart the MID Server, it will not be able to properly decrypt the mid.instance.password in config.xml because the keys to decrypt it are then gone.

Refer to the listed Known Error KB article for details.

Refer to the listed Known Error KB article for details.

MID Server



SFTP Data Sources with com.glide.sftp.use_snc set to true can hang If the com.glide.ftp.use_snc property is set to true (for example, after upgrading an SFTP server), scheduled SFTP exports might hang.

Refer to the listed Known Error KB article for details.



Notify - Twilio Driver Notify forces the maximum number of conference call participants to be 40, but this should be configurable The Notify plugin currently sets the Twilio conference maxParticipants limit to 40. This information is used by Twilio to restrict the maximum number of participants in a conference call, regardless of the order they join. Users should have the option to configure the number of conference call participants.
  1. Install the Notify plugin.
  2. Set up the Twilio configuration with Account SID and Token.
  3. Configure one of the numbers with Notify On Task Group (OOB notify group).
  4. Set property glide.notify.task.phone_number to the phone number configured in Step 3.
  5. Go to any incident and click Start Conference Call.
  6. Select more than 40 participants.

Notify limits the conference call participants to 40.

Performance Analytics


Overall percentages display twice in Breakdown widgets with Visualization 'Column' and percentage indicator settings In Helsinki instances, a Breakdown widget with Visualization 'Column' and percentage indicator settings shows the overall percentage twice instead of showing the Percentage for the breakdown element and then the overall percentage.

In a Helsinki instance:

  1. Create a new widget.
    • Type: Breakdown
    • Visualization: Column
    • Indicator: % of incidents resolved by first assigned group
    • Breakdown: Priority DISPLAY SETTINGS
    • Show data labels: true BREAKDOWN SETTINGS
    • Percentages: Percentage of elements
  2. Create meaningful incidents records that were resolved today and within the same Assignment Group. In addition, create meaningful incidents resolved today but on a different Assignment Group.
  3. Collect the related PA Jobs so there are scores to show on the widgets.
  4. Add the widget to a dashboard.

The widget is displayed with each column showing the overall percentage twice.

Performance Analytics


Performance Analytics DataCollector should not use glide.memory.watcher.log_threads_threshold to kill the job

Run data collection with very little memory.

Expected result: This property should not be used to decide the memory.

Actual result: When memory exceeds glide.memory.watcher.log_threads_threshold, it is killed.



Syntax error or access rule violation detected by database (ORA-00904: "sys_id": invalid identifier) with sys_rollback_incremental

The following errors appear in the logs:

2016-02-12 12:03:11 (809) glide SYSTEM TableAccessPolicy not found
    for 'sys_rollback_incremental', using default public policy
2016-02-12 12:03:11 (822) glide SYSTEM DBTable.create() for:
2016-02-12 12:03:12 (297) glide SYSTEM WARNING *** WARNING *** Unable to
    resolve ElementDescriptor from elementName, continuing anyway: sys_id
2016-02-12 12:03:12 (297) glide SYSTEM Creating index(es): CREATE INDEX
2016-02-12 12:03:12 (300) glide SYSTEM SEVERE *** ERROR *** Error creating
    index com.glide.db.GlideSQLException: FAILED TRYING TO EXECUTE ON
    ("number", "sys_id") COMPUTE STATISTICS
Syntax Error or Access Rule Violation detected by database
    (ORA-00904: "sys_id": invalid identifier)

at com.glide.db.DBIError.wrapAndThrow(
at com.glide.db.DBIError.handleException(
at com.glide.db.DBI.executeStatement(
at com.glide.db.DBI.executeStatement(
at com.glide.db.ddl.DBIndex.rawCreate(
at com.glide.db.ddl.DBIndex.create(
at com.glide.db.ddl.DBIndex.create(
at com.glide.db.ddl.DBIndex.create(
at com.glide.db.ddl.DBTable.create(
at com.glide.db.table.TableCreate.createTable(
at com.glide.db.table.TableCreate.process(
at com.glide.db.impex.Bootstrap.createTable(
at com.glide.db.impex.Bootstrap.upgradeTables(
at com.glide.db.impex.Bootstrap.upgradeTables(
at com.glide.db.impex.Bootstrap.upgradeTables(
at com.glide.update.DictionaryLoader.createOrUpgrade(
at com.glide.update.DictionaryLoader.loadDictionary(
at com.glide.update.PluginUpdateManager.loadDictionary(
at com.glide.update.PluginUpdateManager.loadDictionary(
at com.glide.update.PluginUpdateManager.loadPlugin(
at com.glide.sys.PluginRegistrar.registerPlugin(
at com.glide.update.PluginUpdateManager.registerDependents(
at com.glide.update.PluginUpdateManager.loadPlugin(
at com.glide.sys.PluginRegistrar.registerPlugin(
at com.glide.sys.PluginManager.registerPlugin(
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
at java.lang.reflect.Method.invoke(
at org.mozilla.javascript.MemberBox.invoke(
at org.mozilla.javascript.ScriptRuntime.doCall(
at org.mozilla.javascript.optimizer.OptRuntime.call1(
at org.mozilla.javascript.gen._refname__3._c_script_0(<refname>:66)
at org.mozilla.javascript.gen._refname__3.exec(<refname>)



Fields are 'broken' in a TPH table after moving multiple elements (which share the same storage alias) into offrow storage

Make sure the plugin "Database Column Offrow Migration" is activated. This includes the UI elements necessary to move columns offrow.

  1. Create a new table extending task.
  2. Add 6 mediumtext fields (xxlarge string fields) to task.
  3. Add 6 mediumtext fields (xxlarge string fields) to the new task extension.
  4. Create a row in the new task extension, populating >768 characters into each of the 12 mediumtext fields that you created.
  5. Save/Submit the record.
  6. Attempt to use the Task Table, or flatten the task table if it was not yet flattened.

    Users see an error displayed on the page.

  7. Right-click a column you created (e.g. col1) and navigate to Configure Dictionary > Move Column Offrow. Only users with elevated privileges will be able to see this option.
  8. Click Start.
  9. Go to another table's form with an element that shares the same storage alias as col1. Move that column offrow.

Note that either col1 or col2 are missing from their corresponding table forms. Users are unable to save data even if that field does render.



Oracle DB: Exception [ORA-00932: inconsistent datatypes: expected - got CLOB] upon sync of service with model Upon each sync of the business service with the business model, users get ORA-00932 errors.
  1. Create or open a business service.
  2. Trigger sync with business model.

An error occurs: ORA-00932: inconsistent datatypes: expected - got CLOB

Platform Performance


Angular AMB Services, NG shared components Session timeout broken by active AMB requests AMB sends are treated as user traffic and keep a session alive. As you can see in the Steps to Reproduce, we issue these AMB requests periodically as part of record presence, thus breaking session timeout while on a form.
  1. Open up any user record form.
  2. Leave the browser open.

The session never times out.

2016-04-19 06:17:52 (867) http-48 New transaction
    75613FBADB36120075A8317EAF9619B8 #1883 send
2016-04-19 06:17:52 (904) AMB-thread-2
    75613FBADB36120075A8317EAF9619B8 #1883 send
    Message -------------------------
2016-04-19 06:17:52 (915) AMB-thread-2
    75613FBADB36120075A8317EAF9619B8 #1883 send
    -- total transaction time: 0:00:00.048, transaction
    processing time: 0:00:00.048, total wait time: 0:00:00.000,
    session wait: 0:00:00.000, semaphore wait: 0:00:00.000,

Platform Security


Contextual Security: Role Management Enhancements Groups do not propagate roles on some instance nodes Adding a person to a group does not give the person roles from the group.

Project Management


Project Management Project Task related list is not appearing If Phase Type column is not there in the Project Task form, it hides the Project Task related list.

Project Management


Project Management When importing a MS project file, we are not able to import into an existing project. When we click the magnifying glass to choose an existing project the list is blank. This occurred after upgrading to Helsinki. We are currently in UAT for Helsinki When importing a MS project file, users are unable to import an existing project. Upon clicking the magnifying glass to choose an existing project, the list is blank.
  1. Navigate to Project > Administration > Import Project.
  2. Click the magnifying glass on the '(Optional) Choose an existing project to import into' field. Notice the search comes back empty.
  3. Click New at the top of the form.
  4. Create a test Project.
  5. Repeat steps 1 and 2.

Notice the search still comes back empty.

Project Management


Project Management The top_task field is being set to the sub_tree_root value and this corrupts the project hierarchy The top_task field is incorrectly set to the sub_tree_root value, which corrupts the project hierarchy. PRB676527 was opened because the sub_tree_root was incorrectly set to the top_task value. However, in some Helsinki instances, not only is the sub_tree_root set incorrectly to the top_task value, but the top_task value is also being incorrectly set to what should be the sub_tree_root value.

In a Fuji instance

  1. Activate the Project Portfolio Suite plugin and load demo data.
  2. Navigate to the HR Service Management Portal project (PRJ0010009).
  3. On the Project Tasks related list, configure the list to show the Top Project and Project (sub_tree_root).
  4. Next, go down to the Sub Projects related list and click Edit to add three Sub Projects into the PRJ0010009 hierarchy.
  5. Use the slushbucket to add the Compensation Tool, Consultant Off-boarding, and Consultant On-boarding projects to the HR Service Management Portal project.
  6. From the Sub Projects related list, select the PRJ0090845 - Compensation Tool.

Expected result:

  • In the Project Tasks related list, the correct Top project is shown (top_task is PRJ0010009 - HR Service Management Portal project).
  • In the Project Tasks related list, the correct Project is shown (sub_tree_root is PRJ0090845 - Compensation Tool).

In a Helsinki instance

  1. Repeat the steps above.
  2. Notice the incorrect behavior below.

Actual result:

  • Error messages are thrown.
  • The rollup field is incorrectly set on two of the subprojects.
  • In the Project Tasks related list, the Top project (top_task) is set to PRJ0090845 (invalid, this is the sub_tree_root value).
  • In the Project Tasks related list, the Project (sub_tree_root) is set to PRJ0010009 (also invalid, this is the top_task value).



Printer-friendly version not working with reports
  • For pie charts, the printer-friendly option (in the cog wheel/settings) results in a blank page with a 'Click to Print' button. The Chrome console shows an error: SetupSeries not defined.
  • Bar charts experience this same issue. For bar charts, the Chrome console shows this error: Failed To Load Resource 400: Bad Request.

In a Helsinki instance:

Pie charts

  1. Navigate to Report > All Contracts by Type report (a pie chart type report).
  2. Click the cog wheel (settings).
  3. Click Printer Friendly Version.

Note there is a blank page with a 'Click To Print' button. If you enable Chrome Console (COMMAND+OPTION+J), you will see an error:

Uncaught ReferenceError: setupSeries is not defined

Bar charts

  1. Change the pie chart to a bar chart.
  2. Run the report.
  3. Click the cog wheel (settings).
  4. Click Printer Friendly Version.

Note the page is blank without a 'Click To Print' button. The Chrome console shows this error:

Failed To Load Resource: 400 (Bad Request).



For map type reports where the set map is set to Michigan, display results are not included in the map When the map is set to Michigan, results appear outside the map instead of within it.

In a Helsinki instance:

  1. Navigate to the cmn_location table.
  2. Create a new Michigan location and fill in these values:
    • Name: <MI location>
    • Street: <MI address>
    • City: <MI city>
    • State: MI
    • ZIP/Postal code: <MI zip code>
    • Country: United States
    • Latitude: <MI coordinate>
    • Longitude: <MI coordinate>
  3. Open the task table [task_list].
  4. Open any record and add the location to the form by personalizing the form layout.
  5. Assign Ann Arbor to any task.
  6. Open the report module to create a new report with these conditions:
    • Table: Task
    • Type: Map
    • Map data: Task by location
    • Aggregation: Count
    • Set map: Michigan
  7. Run the report.

Resource Management


Resource Management While creating a Resource plan, users see NullPointerException and errors in the logs

The following warning is generated in the logs during the Resource plan creation:

2016-05-15 05:51:56 (510) Default-thread-4 5B91E5D3135712003C4EBDB12244B072
    WARNING *** WARNING *** Unable to find Cached Schedule for Year :2016 
2016-05-15 05:51:56 (512) Default-thread-4 5B91E5D3135712003C4EBDB12244B072
    WARNING *** WARNING *** Unable to find Cached Schedule for Year :2015 
2016-05-15 05:51:56 (512) Default-thread-4 5B91E5D3135712003C4EBDB12244B072
    WARNING *** WARNING *** Unable to find Cached Schedule for Year :2015 
2016-05-15 05:51:56 (536) Default-thread-4 5B91E5D3135712003C4EBDB12244B072
    WARNING *** WARNING *** Unable to find Cached Schedule for Year :2015 
2016-05-15 05:51:56 (557) Default-thread-4 5B91E5D3135712003C4EBDB12244B072
    WARNING *** WARNING *** Evaluator: java.lang.NullPointerException

Service Catalog


When system date format is not default, ITIL users are unable to update a form that has a Date variable with the write role When a Date variable has the write role configured and the system date format is customized, ITIL users are unable to save/update the form. The browser will display the following message: "The following fields contain invalid text: <Variable_question>"

Service Mapping


Service Mapping is making multiple redundant calls to CyberArk in case there are unresolved external credentials. In case there are unresolved windows credentials defined as external (CyberArk), Service Mapping makes multiple redundant calls during sessions with a Windows server. This attempts to resolve those credentials. These redundant calls should be removed because they result in significant delays and load on CyberArk.

Service Portal



Catalog UI policy action does not run on-load in Service Portal for conditions on the checkbox variable type
Catalog items with a CheckBox variable type that used to show another field via a catalog UI policy are not working the same on Service Portal. For example, a catalog item has the following:
  • Field A (CheckBox)
  • Field B (Single Line Text)

On load, Field B is hidden. It only appears after Field A is set to true (selected). This works correctly within the Service Catalog. On the Service Portal. the action within the Catalog UI policy only runs when selecting and clearing Field A.

Refer to the listed Known Error KB article for details.

Service Portal


g_form.setValue to empty is broken for reference fields in Service Portal The g_form.setValue("") is broken and throws a JavaScript error in the console for Service Portal.
  1. Create an onChange client script on incident.
    • Set the assigned to field to empty when the assignment group is changed.
    • UI Type should be both.
    • Example: g_form.setValue("assigned_to", "");
  2. Using{value}, open an incident record which has the assignment group populated.
  3. Empty the assignment group.

You should see the error message in the console:

Wed_Sep_14_11_42_35_PDT_2016&c=3_51:68822 Uncaught
TypeError: Cannot set property 'length' of undefined

Service Portal


Content Item which should open in a new tab no longer opens at all

System Applications


User sees error while deleting a scoped column on a global table
  1. Create a new application.
  2. Make sure you are on this application.
  3. Navigate to an existing table (e.g. incident).
  4. Create a new column on this table. This column should automatically have a column name of "x_something".
  5. Now click Delete to delete the column you just created.

Users see the following error:

Invalid 'Table' selected on the Field Label record. The 'Incident' table is in application 'Global', but the current application is '<name of your application>'. The 'Table' field can only select 'Global' tables with read and alter access enabled.

Tables and Dictionary


System Applications Core Cannot delete a scoped column added to an existing non-scoped table If a scoped column is added/created to an existing non-scoped table, this column can only be deleted by users with elevated privileges.
  1. Create a new application.
  2. Make sure you are on this application (you should be automatically switched to it after it is created).
  3. Navigate to an existing table (e.g. incident).
  4. Create a new column on this table. This column should automatically have column name of 'x_something'.
  5. Impersonate an admin user (whether or not this user has elevated security privileges does not matter here) and make sure you are still in the custom application.
  6. Try to delete the dictionary record for this column on form view.

    Note there is no delete button.

  7. Try to delete the dictionary record for this column on list view.

    Note the delete list action is grayed out.

  8. Try to delete the dictionary record from the incident table column's embedded list.

    Note there is no red "X" icon.

There is no way to delete this column.

User Interface (UI)


Safari 10.0.1 redirects users to UI11 When a user logs into their Fuji, Geneva and Helsinki instances from Safari version 10.0.1, they are redirected to UI11 instead of UI16.
  1. Set user agent string to: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.7 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.7".
  2. Log in to the instance.

UI11 appears.

Vendor Ticketing


Vendor Ticketing During Helsinki upgrades and activation of the Vendor Ticket plugin, the plugin overwrites the incident form layout's section 0 (including customizations) During a Helsinki upgrade, the incident form layout is updated. The Vendor Ticket plugin updates the form layout and resets it with the OOB configuration. Upgrading to Helsinki or activating the Vendor Ticket plugin will prevent users from seeing mandatory fields on the incident form.

On an OOB Helsinki instance:

  1. Modify the incident form layout's (section 0).
  2. Activate the Vendor Ticket plugin.
  3. Check the incident form.

Expected behavior: The incident form's layout should not be affected.

Actual behavior: The incident form's layout changes to the OOB form layout.

Visual Task Boards


Visual Task Boards When a record is updated and an AMB message is received on the client, Angular is not notified of the change After a record is updated in Helsinki, an AMB message is received on the client. Although the changes are processed (i.e. update assigned_to on card/record), Angular is not notified about the change because the necessary events are never triggered.

Web Services


Scripted Web service using XMLDocument2() does not return a proper response when the Web service is in an application scope Scoped applications for a scripted Web service return extra tags in the response. This prevents the user from being able to customize the SOAP response.

The response adds extra tags in the SOAP response element that prevents the integration from working properly:


Users expect the response to come back as follows:


Web Services


While reading request input stream and an exception is thrown, REST API does not log the exception's cause In the REST API, if an exception is caught while reading from the request input stream, it is caught and turned into a ServiceException. It then gets logged as a ServiceException, but the original exception (the cause) is not logged. This makes it impossible to know what went wrong while reading the request stream.
  1. Use a proxy testing tool to make a request where the server will hang trying to read from the request stream.
  2. Kill the transaction from the client side. This should trigger an exception on the server.

Note the exception is logged as a ServiceException and not the original cause.

Other Helsinki Patch 6 information

ServiceNow Platform: Available system properties

Two properties were introduced in Helsinki Patch 6: glide.import.error_message.generic and glide.export.escape_formulas.

Fixes included with Helsinki Patch 6

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