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

Geneva Patch 4

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

Geneva Patch 4

The Geneva Patch 4 release provides fixes for the Geneva release.

For the Geneva Patch 4 release:
Build date: 02-16-2016_1308
Build tag: glide-geneva-08-25-2015__patch4-02-10-2016

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

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

Note: This version is approved for FedRAMP.

Security-related Fixes

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

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



Hierarchy editor defect may cause column data loss on upgrade to Geneva ServiceNow engineers have identified a defect that affects customers upgrading from earlier family releases to a Geneva release. The defect will cause data loss on certain CMDB tables and is considered a severe impact problem. Refer to the listed Known Error KB article for details.



Reparenting from [ cmdb_ci ] to [ cmdb ] is causing a long upgrade completion time with the potential for data loss during the upgrade ServiceNow engineers have determined that one of the maintenance activities executing during the upgrade, reparenting cmdb_ci to cmdb, is causing significant delays leading to extended upgrade durations. In limited situations, it is also possible to lose changes made to records on these tables while the upgrade is running.

Instances with more than 2 million records in the CMDB tables have experienced extended upgrade durations of at least 30 minutes.

During the table maintenance, new changes made to records in the affected tables may not be preserved. Because of the sensitivity to timing, we cannot reliably predict when the issue may occur. Since the change to the CMDB record is lost when the upgrade completes, we consider this defect to have a high impact.

Refer to the listed Known Error KB article for details.



com.glide.ts After upgrading to Geneva, the cmdb_ci text index is broken because of reparenting to cmdb table ServiceNow engineers identified an issue that causes the text search index for tables in the CMDB module to fail after upgrading to Geneva from a prior family release. Although the index is rebuilt over time, a fix was developed to ensure continuous access to the search index after upgrading. Refer to the listed Known Error KB article for details.
Service Catalog



Service Catalog Plugin (Service Catalog core applications) Alignment of Variable Question text/label moved to left of input box versus above the input box The alignment of Variable Question text/label was moved to the left of the input box, as opposed to being above the input box. This makes multi-lined questions difficult to read. The following steps use demo data.
  1. Open Service Catalog.
  2. Select Hardware.
  3. Select Sales Laptop.
Note that the question Additional software requirements is to the left of the input box. In Fuji and previous versions, it is above the input box.


Hints (tooltip) for choice list values appear behind the values The hints for choice list values appear behind the values themselves. This issue occurs on Firefox and Internet Explorer. Chrome does not display any tooltip or hint on choice list.
  1. Navigate to the Choice Lists module.
  2. Identify a choice list element, such as priority field on task table.
  3. Populate the Hint field with some values for all choice list values. Add a good amount of text so you get a good size for the tooltip.
  4. Navigate to any form that uses this choice list field, such as the priority field in change request).
  5. Click on the field to see the choice list values and point to each of them.
Note that the tooltip is behind the choice list menu.
Service Catalog


UI Policy does not work correctly (i.e. not making label and grouped variables visible when reverse is true) when label and checkboxes are all included in UI Policy UI Policy doesn't work correctly [i.e. not making label and grouped variables visible when reverse is true] when label and checkboxes are all included in UI Policy. This occurred after an upgrade to Geneva Patch 3.
  1. Create a new Catalog Item.
  2. Create a Variable Set off that catalog item.
  3. Create a label and 3 check box variables underneath the label.
  4. Create another label under the 3 check boxes, and create 3 additional check box variables under the second label.
  5. Click Try It. Note that you see all labels and check boxes.
  6. Create a UI policy based on the choice you make for one of the first check boxes that hides the SECOND label and SECOND set of check boxes. Make sure Reverse is True.
  7. Click Try It. Note that the second group does not exist.
  8. Click the check box to show the second set and notice that nothing happens.
Web Services


REST API Provider REST API Explorer does not always fully load In the REST API Explorer, users cannot view the path parameter form fields or query parameter fields. This occurs inconsistently in Windows on various versions of Chrome, Internet Explorer, and Firefox.
  1. Install LastPass extension and sign in.
  2. Open the REST API Explorer.
  3. Verify Table API is selected. Note that there is no ability to select the table as the path parameters section is blank or missing. Additionally, no query parameters are listed.


Slow memory leak due to KillSwitch() observer objects being created but not destroyed App nodes experience gradual performance degradation, which may manifest as frequent symptomatic incidents such as 'Scheduler Workers Overloaded' and/or 'Mean Semaphores Exhausted' during periods of high user or job/worker activity. Application node resource profile exhibits a gradual increase in memory usage, without a corresponding increase in the number of transactions and sessions (load) over this time period. There is also a gradual increase (minimum of 100) of KillSwitch() observer objects within app node JVM memory. On a Fuji instance (preferably with no other workflows running on the system):
  1. Create a new workflow on Global.
  2. Delete the transition between Start and End. Ignore the warning about the invalid workflow.
  3. Publish the workflow.
  4. Start the workflow.
  5. Go to the context record and click the Cancel button. The cancel will fail because the invalid workflow causes a NullPointerException. Repeat this several times.
  6. Search in the context log for "killSwitch" count. Note that the number of observers increases every time you try to cancel.
Service Catalog


LDAP imports and User Criteria enabled makes secondary nodes unusable If User Criteria is enabled on instances with a very large number of users, this will make the secondary nodes unusable if there are very large imports on the user table (such as daily LDAP imports). On an instance with a very large sys_user and domains:
  1. Enable User Criteria.
  2. Run an LDAP import, or update all users. This will create a huge amount of sys_cache_flush data for criteria_cache and user_criteria_cache.
When this is picked up by the secondary nodes, they will become unavailable and eventually run out of memory.

All Other Fixes

Problem Affected Plugins Short description Description Steps to reproduce


Assessment Assessment state shows value instead of display value on 'My Assessment and Surveys' page. In Geneva, the state field on My Assessment and Survey cards is showing the actual value instead of the display value. In a Geneva instance:
  1. Create a survey and assign it to any user (Survey > View Surveys. Select any survey, then click on Assign Survey and assign a user).
  2. Impersonate the assigned user.
  3. Go to Self-Service > My Assessments and Surveys.
  4. Review the card state. Note that it is set as the real value and not the display value.
  5. Take the survey, and without completing it, click Save.
  6. Go back to My Assessments and Surveys and view the state. Notice it is now 'wip' instead of 'In progress'.


Add ability to limit a number (or put a custom number) of Closed Conversations displayed in the end user chat window (sys_property)


Connect Support Add ability to make custom Idle time message and add it as Macro
Cloud Management


Update AWSUtil to process resolve name from the nameObj in the normalized object Update AWSUtil to process resolve name from the nameObj in the normalized object
  1. Install AWS.
  2. Provision an instance.
  3. Go to that instance and note the name or change to any custom name.
  4. Run discovery.
  5. Check the VM name.
Cloud Management


Azure ARM template deployment not handling array parameter types correctly When trying to pass a parameter that is an array type to an Azure ARM template, it seems to just get passed as a string. The goal of using the array is to iterate over the array and create a VM for each. Instead, the user only gets 1 VM. Additionally, the custom data that it gets is wrong, containing the single string instead of each VM getting the appropriate part of that array input.
Cloud Management


Using ec2 cat for item stack or VM created in Fuji after an upgrade to Geneva fails provisioning Setup
  1. On a Fuji instance, enable Amazon.
  2. Run Discovery.
  3. Create a ec2 cat item.
Steps to reproduce
  1. Upgrade the instance to Geneva.
  2. Order the cat item created before the upgrade.
Note that provisioning fails, and the following error is thrown on ec2 provisioning:
Skip approval?(ec88365feb02020045e1a5115206fed9): Caught exception in InterpretedScript <refname>:
org.mozilla.javascript.InterpretedScriptException: Caught exception in InterpretedScript <refname>:
org.mozilla.javascript.WrappedException: WrappedException of Cannot convert null to an object.


Service Mapping processes stop when confronted with duplicate CIs Service Mapping processes will stop when the identification engine finds duplicates in the CMDB for the payload it is processing. Creates and updates to CIs will not happen through discovery when there are duplicate CIs in the CMDB.
Date and Time


SimpleDateFormatEx not formatting correctly, causing wrong display values in GlideDateTime GlideSimpleDateFormatEx is not formatting the date correctly for the first 4 days of the year (at minimum) if the date pattern uses lower-case 'h' for 12-hour format. Later dates seem to work as expected. This is used to get the display value, so it causes the first days of the year to have an incorrect display value. The 2nd of January 2016 will get displayed at the 2nd of January 2015.
Dependency Views (BSM Map)


Next-Gen BSM Special character 'é' is preventing the BSM Save Map action In the BSM Map, a CI with the special character 'é' is causing the Save Map not to save. The dev tools will show the error: Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.
  1. Create a CI with the name containing the special character '&eacute;'.
  2. Create add relationship with this CI.
  3. View the BSM map.
  4. Save Map.
Open the dev tools, and you will see the error.
Dependency Views (BSM Map)


Next-Gen BSM Errors when expanding BSM icon in horizontal view Client side debugging displays the following error: Error evaluating custom function: TypeError: Cannot read property 'split' of undefined(…) The following error displays at the top of the form: Could not execute custom action 'expand() {//Focus and fetch data...'
Dependency Views (BSM Map)


Next-Gen BSM Geneva BSM OOB Filter Lists (depth, location, and manufacturer) are populating with unexpected values In Chrome on Geneva Patch 1 Hot Fix 5, the filter lists for Depth, Location, and Manufacturer in the BSM view are not displaying the correct/expected values. There is no mention of a difference in the documentation for these values from Fuji to Geneva, but the results are different.
  1. In a Geneva instance, navigate to Business Services.
  2. Open a Business Service.
  3. Open the filters.
  4. Select the "Filter CIs By Depth", "Filter CIs By CI Location", or "Filter CIs By CI Manufacturer" dropdowns. Confirm that they are all using CI Types and not the expected values.
  5. Compare that to Fuji and documentation for expected values.
Dependency Views (BSM Map)


Next-Gen BSM CI text overwritten on map - name not readable The reserved area for CI names is too small - only 13-17 characters are visible, which is not enough for most CIs. When a user mouses over, the full name is displayed over CIs next to the targeted CIs. This makes the CIs unreadable, including the next CI name on the right.
Dependency Views (BSM Map)


Next-Gen BSM No indication that the map is loading
Dependency Views (BSM Map)


Next-Gen BSM Deselect a map indicator - tab is still active
Dependency Views (BSM Map)


Next-Gen BSM Search issues: Cannot see full CI name in in the drop down of the search
Dependency Views (BSM Map)


Search issues: Require class name instead of table name
Dependency Views (BSM Map)


Load more causes duplications


Process classification fails when the condition contains 'Computer.Name' In Fuji, process classification with Computer.Name qualifiers fails to classify any applications. The same process classification without the Computer.Name qualifier works in Eureka. Create a Process Classification as below:
  • Table: Application
  • Type: Runs on::Runs
  1. Give condition as "Name is not empty".
  2. Choose one IP address and run a quick discovery. This will populate all applications.
  3. Delete all the applications in Process Classification > Applications.
  4. Change the condition as "Computer.Name" isnotEmpty.
  5. Choose the same IP address and run a quick discovery. This will not populate Runs:Applications.
Note that Runs:Applications is not populated.


Errors with parsing results from 'Linux - Storage' payload When running the "Linux - Storage" probe, several errors can occur:
  1. An "EvaluatorException" error reporting against the ProbePostProcessor script.
  2. From running the probe, the following error occurred: **** "Exception while running probe post processing script: The undefined value has no properties. (sys_script_include.2b67f91637412100dcd48c00dfbe5d67; line 85)"
  3. After doing some modifications to the "storage.bash" script, the following error occurred: **** "The undefined value has no properties. (sys_script_include.33235a2a37422100dcd445cbbebe5d22; line 683)"
  1. Run a Discovery scan against a Linux server that has some storage devices connected to it.
  2. Observe results from the "Linux - Storage" probe.


Orchestration SSH Command Activity is causing issues on AIX due to a command called 'command' In AIX and Linux, there is a command called 'command.' The issue appears to be occurring due to the 'sh command' line, which calls the file 'command'. Due to the PATH variable, on AIX this is causing the /usr/bin/command to get picked up when the 'sh command' is being called from the stub2 script. As a result, when stub2 is run, this does NOT execute the 'sh command' script. 'sh command' should be changed to ensure that the correct 'command' script is being explicitly called.
  1. Run a simple script to an AIX server via Orchestration.
  2. Note that the PATH variable can interfere with this behavior and cause /usr/bin/command to be called, meaning that the script is never run.


When running Discovery on an instance, the Alteon load balancer is not discovered


MID Server CMDB data created as system instead of MID server user Prior to Geneva, CMDB data created/updated by Discovery was done by the MID server user. In Geneva, we changed the 'Discovery - Sensors' business rule to run 'after' instead of 'async' to support ECC priority. Because of this, the user who created the ecc_queue input record (again, the MID server user) is no longer used to run the subsequent background job. This is now done as the system user.
  1. Run Discovery on Fuji.
  2. Observe CIs created/updated by MID server user.
  3. Run Discovery on Geneva.
  4. Observe CIs created/updated by system.


Failure to discover F5 load balancer due to SSH credentials
  1. Try to discover F5 LB on an instance that has the F5 SSH credentials configured and no Discovery plugin enabled.
  2. The F5 will be discovered as a Linux server.


Need to add additional F5 OID for SNMP classification A F5 classification OID is missing.


Missing OID for F5 load balancer A F5 classification OID is missing.
Edge Encryption


Security admin cannot use a different encryption type on a field if they make a mistake, even after mass decryption
  1. As Security Admin, create a new encryption config (e.g. Order Preserving AES128 on the change_request.short_description column).
  2. Run a mass encryption job, then come to realize you've chosen the wrong encryption type - you really needed Equality Preserving.
  3. Make your Order Preserving encryption config Inactive and perform a mass decryption.
  4. Leaving the old one Inactive, create a new Equality Preserving encryption config for change_request.short_description.
  5. Try to submit the new encryption configuration.
Note that you get an "Invalid insert" error, and you cannot create a new encryption config.
Edge Encryption


Sorting a list having a filter on an order-preserving encrypted field will ignore the filter condition
  1. Set up a proxy and instance.
  2. Create a new order-preserving encryption configuration (e.g. on incident.short_description).
  3. Perform a mass encryption on that configuration so that all short description data is encrypted.
  4. On the proxy, open and first sort by Number (descending order).
  5. Set a filter on the encrypted Short Description field, such as >= S.
    • You will correctly see a subset of matching records.
  6. Sort again on Number (ascending).
    • You can sort on any field; it doesn't have to be an encrypted one.
Note that the filter condition is ignored: you see all 46 records, sorted by Number (ascending). However, the breadcrumb still shows the filter condition correctly.
Edge Encryption


Encrypted attachments do not download properly In a Geneva instance:
  1. Go to System Definition > Plugins.
  2. Activate Encryption Support (com.glide.encryption).
  3. Go to System Security > Users and Groups > Encryption Contexts.
  4. Click New.
  5. Give it any Name and click Submit.
  6. Go to User Administration > Roles.
  7. Select 'admin'.
  8. Right-click the form header. Choose Configure > Form Layout. Make sure Encryption Context is added to the form.
  9. Save.
  10. In the Encryption Context field, choose your newly created Encryption Context.
  11. Click Update.
  12. Go to User Administration > Users.
  13. Select David Loo.
  14. Input any password into the Password field.
  15. Click Update.
  16. Log off and log back in as david.loo with the password you set.
  17. Go to the incident table.
  18. Open an existing incident NOT in a closed state.
  19. Click the Attachment icon and check the Encrypt box.
  20. Choose any file and click Attach.
  21. Download the file you just attached and try to open it.
Edge Encryption


Proxy fails to start because of a rule failing signature validation Initial proxy upgrade works as expected on Linux, OS X, and Windows. However, any subsequent proxy upgrades exhibit some bad behavior. On Linux and OS X, subsequent upgrades succeed, but they will overwrite the existing contents of the <proxyName_port>_backup folder. On Windows, any subsequent proxy upgrades fail. On a Geneva instance:
  1. Install and start a Geneva Edge Encryption proxy.
  2. Notice the proxy fails to start with the following error:
2016-01-14 09:37:44,167 ERROR Rule 'List Request Post' does not have a valid
2016-01-14 09:37:44,170 ERROR post rules failed signature
Edge Encryption


User should be able to allow clear text data in encrypted fields
  1. Encrypt the sc_item_option.value field (Standard AES128).
  2. In the Service Catalog, try to order Mobile > iPhone 5 (has options) through the Service Catalog (via proxy). You will get an error (invalid insert in Value).
  3. Open sc_item_option.list.
  4. Right-click the column header and open Configure > Table.
  5. Open the Value column and go to Attributes tab below Related Links.
  6. Click New and add: edge_encryption_clear_text_allowed. You will have to create a new one in the Dictionary Attributes table for sc_item_option.value column as a true/false value.
  7. Submit the new attribute.
On Geneva, you will still get the invalid insert error.


OOB client script 'Modify Comments Label' does DOM manipulations and should use platform APIs
Knowledge Management


Knowledge Management V3 ACLs do not work on Version 2 knowledge articles in Fuji search KB Search does not respect Knowledge V2 ACLs.
  1. Start with a Dublin instance and upgrade to Fuji (so that you have a Version 2 knowledge article).
  2. Set all kb_knowledge read ACLs to admin overrides=false and requires role nobody.
  3. Go to Knowledge > Homepage.
  4. Search for articles that should not be accessible for this user
Note that you get several results in the list - this should not be the case.
Knowledge Management


Knowledge Management V3 'Create Content' button on legacy and v3 Knowledge landing page displays regardless of ACL / User Criteria if a v2 Knowledge Base exists When upgrading from any prior version to Fuji or later, a version 2 Knowledge Base is created, and existing knowledge is moved to it. ACLs for v2 Knowledge apply to this Knowledge Base to determine read/write/create access, while User Criteria is used to determine access to v3 Knowledge Bases. OOB, the platform hides the User Criteria related lists 'Can Contribute' and 'Can Read' on v2 Knowledge Bases so that users cannot able to add User Criteria without customization. Since no User Criteria is on v2 Knowledge Bases, the 'Create Content' button displays on the Knowledge landing pages.
Knowledge Management


Knowledge Management V3 Custom fields on Knowledge Feedback are auto-populated based on feedback with NULL view_id If the Knowledge Feedback table (kb_feedback) has custom fields, the kbWriteComment function auto-populates those fields with the values of other feedback entries that have NULL view_id. On a Fuji instance:
  1. Navigate to system properties.
  2. Set glide.knowman.use_live_feed to false.
  3. Navigate to kb_feedback.list
  4. Remove any existing entries (to more easily reproduce on demand)
  5. On the kb_feedback sys_dictionary entry (right click header, Configure > Table), add a custom field:
    • Name: Assigned To
    • Element: u_assigned_to
    • Type: Reference
    • Reference Table: sys_user
  6. Navigate to a demo KB and add a feedback entry.
  7. Check the kb_feedback table.Note the comment is there with no view_id.
  8. Add another comment. Note there is now a view_id.
  9. Add Beth Anglin to the custom "Assigned To" created in step 5 to the record with no view_id.
  10. Add another comment to the demo KB. Note the new entry is automatically assigned to Beth Anglin
Any comment made on any article is now assigned to Beth Anglin automatically.
Knowledge Management


Knowledge Management V3 Populating a knowledge record on Knowledge keyword takes excessively long time to load, resulting in occasional transaction cancellations When attaching a keyword for Knowledge Feature Content, a Knowledge keyword record has to be created. Within this form, there is a 'Knowledge' field that references kb_knowledge. If kb_knowledge has a lot of records (around 20,000), clicking on the lookup icon on this field will cause the form to hang. Eventually, the transaction gets canceled but the list can still load sometimes.
  1. Use a KB with large number of categories.
  2. Navigate to any Knowledge Bases > <yourKB> > New.
  3. Click on the lookup icon on '''Knowledge''' field or the Category Field.
Note that the page takes a long time to respond.
Knowledge Management


'Submit' button for feedback is not translated When using the KB in a different language, the 'submit' button for feedback is not translated after clicking 'Yes' on 'was this helpful?'
  1. Navigate to Plugin > Install any language, and change the language to Spanish.
  2. Navigate to ESS portal > Conocimiento.
  3. Open on KB.
  4. In the Opinion box, type xxx and then click Enviar.
  5. In the box 'Le resulto de ayuda?' click Si.
Note that a new Opinion box will show, but the Submit button is not translated.
Language and Translations


Translation of search filter / search filter breadcrumb 'Like/contains' was translated to German with 'gefällt mir'. In search context, this is incorrect and should be 'enthält'.
Language and Translations


Current translation source files for the following languages: Japanese, German, Brazilian Portuguese, French contain incorrect translations Incorrect translations from sys_ui_message need to be removed and corrected so that they can be updated with valid translations for the following languages: Japanese, German, Brazilian Portuguese, and French.


User list personalizations seep to other users with the same roles
  1. Go to user David Loo.
  2. Reset his password so that you can log in as him.
  3. Remove the itil roles and add the security_admin and teamdev_code_reviewer roles (his roles should match admin).
  4. Log in as admin.
  5. Personalize the columns in the incident list.
  6. Log in as David Loo and go to the incident list.

Note that they have the same layout.

MID Server


MID Server Fuji upgrade did not create needed indexes on table ecc_agent (name), ecc_agent_metric (agent), and ecc_agent_metric (name) Indexes are not created during an upgrade to Fuji, which benefit queries from the business rule 'Update mean on MID Server Status'. The needed indexes are:
  • alter table ecc_agent_metric (agent)
  • ecc_agent_metric (name)
  • ecc_agent (name)
MID Server


SNCSSH does not try keyboard interactive authentication if password auth failed and vice versa If SNCSSH has already tried an authentication method using a credential with a password, it will not try the other one. J2SSH does do this, resulting in a few cases where J2SSH works and SNCSSH does not.
MID Server


Upgrade Oracle JDBC driver on the MID Server to be the same version as glide The Oracle JDBC driver that is shipped with the MID Server is very old and does not support Oracle 12c. The driver on glide has been updated to a newer version that is compatible with Oracle 12c, but this change has not been incorporated into the MID server.
  1. Use JDBC probe against an Oracle 12c target.
  2. The probe will fail with "ORA-28040: No matching authentication protocol"
MID Server


ECC queue unable to resolve a host with SNC SSH probes when the host contains a host name rather than an IP address The source validation logic in SourceAsHostProbe is checking for a valid ipv4 address, whereas the config on the other side allows names as well.
MID Server


SFTP file reads fail to close inbound file handles on import Starting from Geneva, the SFTP client does not close the file handle when done. This applies only to SFTP import data sources. On an OpenSSH SFTP server:
  1. Edit /etc/ssh/sshd_config to set loglevel = DEBUG1 and restart service SSHD.
  2. On an instance, create a data source and import a file.
  3. Reset log level on the server to INFO, and restart service SSHD.
  4. Examine the server log /var/log/secure.
At the conclusion of the operation, you should see a session_close message, but you will not.


Mobile UI g_form.getActionName() is not reporting the correct action name getActionName is not returning the specified action in an onSubmit script.
  1. Create a new onSubmit client script for an incident: alert(g_form.getActionName());
  2. View an incident on mobile.
  3. Click Save.
Note that you are not alerted for the save.
Performance Analytics


Selection of max score date can be slow when scores exist for breakdown is null and element is not null Users may experience issues when a breakdown with a large number of elements has been deleted and queryScoreDate is used to calculate the last score date. These pa_scores records then wait to be deleted by the collection cleanup. The queryScoreDate selects the last score date by select max(start_at) from pa_scores where indicator = <sys_id> and breakdown is null and value is not null and start_at <= 20351231. This query will also select all breakdown indicator scores of the deleted breakdown.
  1. Create a breakdown with many elements.
  2. Create a large set of scores. For example, collect 3 years of daily scores.
  3. Delete the breakdown.
  4. Navigate to a dashboard with widgets that have indicators with this particular breakdown.
Note that it may slow down to 30 seconds or more.
Performance Analytics


Performance Analytics, Performance Analytics - Data Collector Revert changes due to: Speed up PA collections clean job by using newly designed table cleaner Due to an issue with the newly introduced table cleaner, changes made have been reverted. See PRB652541.
Platform Miscellaneous


JS array shift/unshift performance degradation in Fuji compared to Eureka
Platform Performance


TableDescriptor#isValid should check for illegal characters in table name string AMB makes an extra query per transaction. It tries to query the database for a table that does not exist - "/amb/meta/disconnect". TableDescriptor#isValid should check for illegal characters in the table name string.
  1. Try getting a new TableDescriptor object for an invalid table/string - "/amb/meta/".
  2. Execute the isValid() check.
Instead of getting False (since the table is invalid), note that you get True, since the table name is not checked for illegal characters.
Platform Security


current.isValidRecord() in ACL script returning false when querying using GlideRecordSecure Impersonate a user who is not admin, and try to query with GlideRecordSecure. You will see no results because the Read ACL for Knowledge is checking for current.isValidRecord(), which is always returning false.
Platform Security


The script include RoleManager method expandRole fails to find inherited roles in Geneva The RoleManager script include expandRole function now includes a query for 'inherited' = true, but the sys_user_role_contains table does not have that column. This results in the expandRole not finding included roles.
  1. View the RoleManager script include method expandRole. See "expansion.addQuery('inherited', true);" at line 181.
  2. Check the table definition for sys_user_role_contains table.
Note that there is no column named 'inherited'.
Release Management


Release Management v2 Duplicate feature number gets used when creating new release_feature record after GoTo search If you use the GoTo search on a list of release_feature records to find a specific record by Number, and then click the New button, the new record will have the number used in the GoTo search. In a Calgary, Dublin, or Eureka instance:
  1. Bring up a list of release_feature records. If none exist, create several of them.
  2. Use the GoTo search feature above the bread crumbs to search for a specific record by number.
  3. Click New.
  4. Note that the value used in the GoTo search is used for the new record's number value
Trying these same steps on other task based records such as incident, change_request, and problem results in a correct new number being used.


Font color is white after exporting heat map to PDF/PNG/JPEG In heat maps, the font color is black in the report builder. When it is exported to PDF/PNG/JPEG, the font color becomes white.
  1. Create a report with type heatmap (Table: incident, Row: Location, Column: Assigned to).
  2. Export to PDF/PNG/JPEG.


In Fuji, creating a report with a special character such as an apostrophe shows unescaped characters on report list Creating a report with a special character such as an apostrophe in Fuji shows unescaped characters on report list. Reports then show incorrect characters in their titles.
  1. Go to Reports > Create new.
  2. Create a report with a title that contains an apostrophe, such as "Amy's report."
  3. Save.
  4. Go to View/run reports.
Note that the title's apostrophe is replaced by the unescaped characters.


Adding report to a homepage creates a new homepage
  1. Create a homepage (Home > Create new page).
  2. Open any of your reports. Use the option 'Add to Dashboard' at the dropdown menu beside 'Save'.
  3. Note that Add to Dashboard takes a long time to load (in Chrome and Firefox).
Note that you are taken to homepage with some report, but without your report. Also, there is another homepage with the same name (My Homepage 1) created where the report is seen.
Service Catalog


Service Catalog Plugin (Service Catalog core applications) Content_Site Table error causing a job to be looping after upgrading to Eureka After upgrading to Eureka, the glide.scheduler.worker.1 is triggered and loops.
 main,glide.scheduler.worker.1,4,ASYNC: Script Job (187214398 ms)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

This began with the following error:

2014-11-01 04:41:38 (004) worker.1 worker.1 SEVERE *** ERROR *** Table
'junipernetworksstage_2.content_site' doesn't exist
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table
'junipernetworksstage_2.content_site' doesn't exist at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
at java.lang.reflect.Constructor.newInstance( at
com.mysql.jdbc.Util.handleNewInstance( at
com.mysql.jdbc.Util.getInstance( at
com.mysql.jdbc.SQLError.createSQLException( at
com.mysql.jdbc.MysqlIO.checkErrorPacket( at
com.mysql.jdbc.MysqlIO.checkErrorPacket( at
com.mysql.jdbc.MysqlIO.sendCommand( at
com.mysql.jdbc.MysqlIO.sqlQueryDirect( at
com.mysql.jdbc.ConnectionImpl.execSQL( at
com.mysql.jdbc.ConnectionImpl.execSQL( at
com.mysql.jdbc.StatementImpl.executeQuery( at
com.mysql.jdbc.DatabaseMetaData$7.forEach( at
com.mysql.jdbc.DatabaseMetaData$7.forEach( at
com.mysql.jdbc.IterateBlock.doForAll( at
com.mysql.jdbc.DatabaseMetaData.getPrimaryKeys( at
sun.reflect.GeneratedMethodAccessor326.invoke(Unknown Source) at
at java.lang.reflect.Method.invoke( at
com.glide.db.DatabaseMetaDataWrapper.invoke( at
com.sun.proxy.$Proxy6.getPrimaryKeys(Unknown Source) at
com.glide.db.rdbms.glide.DBIGlide.getPrimaryKeys( at
com.glide.db.rdbms.glide.DBIGlide.executeQuery( at
com.glide.db.rdbms.glide.DBIGlide.executeAction( at
com.glide.db.rdbms.glide.DBIGlide.executeAction( at
com.glide.db.DBAction.executeAndReturnException( at
com.glide.db.RDBMSQueryContext.executeQuery( at
com.glide.db.DBQuery.execute( at
com.glide.db.DBI.getPrimaryKeys( at
com.glide.db.DBI.getPrimaryFields( at
at com.glide.db.TableDescriptor.getPrimaryKeys( at
com.glide.db.TableDescriptor.getPrimaryKey( at
com.glide.db.TableDescriptor.getPrimaryKeyName( at
com.glide.db.meta.Table.<init>( at
com.glide.db.meta.Table.<init>( at
com.glide.script.GlideRecord.initTable( at
com.glide.script.GlideRecord.get( at
com.snc.apps.AppsUtil.getRecordDisplayValue( at
com.snc.apps.AppsUtil.getM2MDisplayValue( at
com.snc.apps.AppsUtil.getFileNameByObj( at
com.snc.apps.AppsUtil.getFileName( at
com.snc.apps.FileSyncherHandler.setFileValues( at
com.snc.apps.FileSyncherHandler.updateFile( at
com.snc.apps.FileSyncherHandler.match( at
com.snc.apps.FileSyncherHandler.match( at
com.snc.apps.RecordSyncher.sync( at
com.snc.apps.AppsUtil.syncFileTable( at
com.snc.apps.AppsUtil.syncAllAppFiles( at
com.snc.apps.api.AppFiles.syncAllAppFiles( at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke( at
at java.lang.reflect.Method.invoke( at at at
at com.glide.script.ScriptEvaluator.execute( at
com.glide.script.ScriptEvaluator.evaluateString( at
com.glide.script.Evaluator.evaluateString( at
com.glide.script.Evaluator.evaluatePossiblePrefixedString( at
com.glide.job.RunScriptJob.evaluateScript( at
com.glide.job.RunScriptJob.execute( at
com.glide.schedule.JobExecutor.execute( at
com.glide.schedule.GlideScheduleWorker.executeJob( at
com.glide.schedule.GlideScheduleWorker.process( at

Followed by 100,000 nullPointerException

Service Catalog


Unable to save variables in a record if a field in that record uses current.variables as part of a calculated value The user is unable to make any changes to variables in the sc_req_item form. Modified variable values are not saved.
  1. Navigate to Tables.
  2. Go to sc_req_item.
  3. Create a new table column:
    • Type: String
    • Column label: SKU
    • Column name: u_sku
  4. In Form Design, select Calculated and Calculation fields.
  5. Select the Calculated option.
  6. In Calculation, enter return current.variables.u_sku;.
  7. Navigate to Maintain Item and click New.
  8. Add the Name, Catalog, and Category.
  9. Save the item.
  10. In the Variables related list, click New.
  11. Enter the following:
    • Type: String
    • Question: u_sku
    • Name: u_sku
  12. Click Save.
  13. Create several other variables.
  14. Go to the created item in the catalog.
  15. Fill in the variable values.
  16. Submit the order.
  17. View the submitted request item.
  18. Attempt to change any of the variable values and save. Note that the record saves, but the variables revert to the old versions.
Service Catalog


Service Catalog Plugin Lookup Select Box variable Help Text/Tag disappears when Reference qualifier refreshed when triggered by ref_qual_elements variable change Lookup Select Box variable's 'More information' Help Text/Help Tag disappears from the catalog form at the point that the variable's Reference qualifier filter is refreshed, when triggered by ref_qual_elements=<some other variable> and that other variable value is changed.
Service Catalog


The title of variable sets in order guide is not displayed in Geneva
  1. Navigate to Service Catalog > Catalog Variables > Variable Sets and click into common_comments.
  2. Set Display title to 'true' and save.
  3. Add a variable (Type: Single Line Text, Question: comments, Name: comments) and save.
  4. Navigate to Service Catalog > Catalog Definition > Order Guides.
  5. Create new Order guide named 'Test Order Guide'.
  6. Go to the related lists for Test Order Guide, and add common_comments.
  7. Save.
  8. Click Try it.
Note that the Variable set title common_comments is not displayed.
Service Catalog


Contains not working in condition builder for Catalog UI policy on RITM
  1. Log in to any instance.
  2. For any Catalog Item, create a Reference variable referencing the User table.
  3. Create another string variable.
  4. Now create a UI policy:
    • Condition as Ref variable Contains Abel
    • In the UI policy Action, make the string variable as visible as false.
  5. Try the Catalog Item.
  6. Select the User as Abel, the string variable will be hidden.
  7. Order the Catalog Item.
Now, if you check the RITM, the String variable is not hidden.
Service Mapping


Loading data for history view can cause severe performance issues Open an instance with Service Mapping and at least 1 business service.
Service Mapping


Cannot read Apache config file Users cannot read the Apache config file in step 12.3 on Apache on UNIX pattern.
Service Mapping


Process detection failed Failed to find process on port on Linux Red Hat after detecting that the host is listening to that port.
Service Mapping


config.xml is not completely retrieved from server
Service Mapping


Pattern debugger throws error when starting debug on connection section, and the last step in the identification section is a reference to library
Service Mapping


Duplicate named cmdb_rel_type records cause identification failures If more than one cmdb_rel_type record has the same parent and child descriptors (e.g. "Contains" and "Contained by"), identification may fail with an "Unable to resolve dependency" error.
  1. Create a duplicate "Contains::Contained by" cmdb_rel_type record.
  2. Discover a service with an inclusion relationship such as tomcat > tomcat WAR (this is defined as having a contains relationship via CMDB metadata rule).
You will receive an identification engine error: Cannot resolve dependency
Service Mapping


cmdb_ci_service.service_classification field is set Read-Only in dictionary by Service Mapping plugin installation cmdb_ci_service.service_classification field is set Read-Only in dictionary by Service Mapping plugin installation. This field is on cmdb_ci_service, so this and all the extended tables are affected, including existing pre-Service Mapping users of this table. In a Geneva instance:
  1. Install Service Mapping.
  2. Open /
Service Mapping


Entry point with wrong fields in debugger When a user enters debugger for Tomcat WAR for Linux pattern, the user gets an entry point with incorrect fields. In cmdb_ci_endpoint_tomcat_war table, the right criterion attributes are there.
Service Mapping


Very long map load time in case of specific topology When there is a special topology with multiple cluster objects containing the same member elements, the map load time is very long. This results in timeouts.
Service Mapping


ServiceWatch and Service Mapping create connection to wrong IP as result of incorrectly parsing host name as a hex value
Service Mapping


Identification engine errors do not supply enough information in the discovery log In the discovery log, the information for Identification engine errors is not sufficient to understand which steps should be done in order to solve the problem. The discovery log should include more information on the sys_class_name and attributes and a proposed solution when possible.
Service Mapping


Run command cannot be tested Run command cannot be tested on debug mode - the user always gets an error message.
System Applications


Deactivating script include does not set replace on upgrade to true on any out of box script includes Deactivating script include does not set replace on upgrade to true on any out of box script includes. This is because of a new field API name that pre-fills API name from a client script. In the database, the field is set to null until it is saved for the first time. Therefore, the replace on upgrade logic fails on deactivating a script include.
  1. Go to any out of box script includes.
  2. Set the active field to false.
  3. Save.
Note that the replace on upgrade flag is set to false.
System Applications


Studio, System Applications Core Version number is not automatically set to required format when publishing The first time a user attempts to publish an app, the version number in the version field defaults to 1.0 (rather than 1.0.0, which is the required format). After the user clicks the Submit button, an error returns stating the version format should be x.y.z.
  1. Create an app.
  2. Configure your instance to allow publishing
  3. From Studio or sys_app record, attempt to publish the app (leaving the default field values as they are).
Note that the auto-created version number is 1.0, and the publish fails. "Version should be like x.y.z. For ex. 2.1.0, 1.2.0." error is returned.
Team Development


Version Support 'Compare to Current' sometimes gives a TypeError on a sys_update_version record On an OOB Dublin, Eureka, or Fuji instance (or on Geneva and later if using an old UI that does not support DiffMerge):
  1. Navigate to sys_translated_text.
  2. Click on the 'document' field of any record in this table (whose versions are tracked).
  3. Modify something on this record and save.
  4. Navigate to sys_update_version and sort by created. The record that was just modified should show up first. Click on this record.
  5. Scroll to the bottom of the page. Under Related Links, click on Show Related Record. You should be on the record that you modified in step 3.
  6. Delete this record. You should be taken back to the sys_update_version form for the record you just deleted (if not, navigate back to it).
  7. Scroll to the Version List related list at the bottom of the page.
  8. Right-click on one of the "Previous" versions of the record and select Compare to Current.
Note that nothing happens, the browser console has an error, and "TypeError: Cannot convert null to an object" shows up in server logs.
Usage Analytics


GetSumOfAutomatedWorkflows Usage Analytics Script causing instance to run out of memory
User Interface (UI)


Current calls in Reference Quals fail against Default values in place on new records Default values are not recognized when dot-walked from current in Reference Qualifiers on new records. This is a UI16 issue.
User Interface (UI)


glide.ui.clickthrough.popup property to true, does not work on glide list For a 'reference field', we have defined a property 'glide.ui.clickthrough.popup' so that it can be used to open reference record in the current page (or in a separate window so that changes made in the current page are not saved). A similar property should also exist for 'glide list' based on the reference icon to open it in the current page or separate window without auto-saving the current page.
  1. Create the 'glide list' field, or use the existing 'watch list' field in the incident table (i.e., add watch list field to form).
  2. Add values to the list.
  3. Make changes in the form.
  4. Open 'glide list' lock and select one value.
  5. Click the Reference icon. This will open the record in the current page.
  6. Go back to the previous page (i.e. the incident form).
Note that the changes you made were auto-saved.
User Interface (UI)


Max_length is not honored for field type 'Two Line Text Area' character count Max_length of field type is not honored via the UI; it is only honored by the database.
User Interface (UI)


NG shared components TimeAgo not calculating yesterday / 2 days ago correctly Using 'TimeAgo' user preference results in strange date/times being displayed. In the Australia/Sydney timezone: - Fuji: adds 5 hours to time for yesterday - Geneva: displays '2 days ago' as '3 days ago' On a Fuji instance:
  1. Set the timezone to Australia/Sydney using the cog next to log out. (You may need to add the choice via Configure Choices on a sys_user record's Timezone context menu.)
  2. Open any Incident.
  3. Change the 'Opened' date to yesterday.
  4. Change the date/time display to 'Time Ago' using the cog next to log out.
  5. Note that the time displayed is 5 hours ahead.

On a Geneva instance:

  1. Set the timezone to Australia/Sydney using the top right corner of the screen. (You may need to add the Australia/Sydney choice via Configure Choices on a sys_user record's Timezone context menu.)
  2. Open any Incident.
  3. Change the 'Opened' date to 2 days ago.
  4. Change the date/time display to 'Time Ago' using the cog in the top right corner of the screen.
  5. Note that the time displayed is 3 days ago instead of 2.
User Interface (UI)


Display value shows in record header, even if user fails read access If a user fails the read ACL on the display value, it will still show in the record header.
  1. Set a read ACL on incident.number to fail for all users (uncheck 'Admin overrides').
  2. Navigate to /
Note the number is still visible in the header.
User Interface (UI)


Magellan Navigator In Hebrew, the X on the navigator search is on the wrong side in Hebrew In a Fuji Patch 10 or Geneva instance:
  1. Go to Plugin > Install Hebrew language.
  2. In the instance, look at the navigator search box.
Note that the X on the navigator search is on the wrong side.
User Interface (UI)


Elevated Roles option is unavailable in UI16 with SSO login
  1. Set up SSO with SAML login on a Geneva instance.
  2. Create a user that has the ability to elevate roles (e.g. admin and security admin).
  3. Log into the instance using SAML in UI16.
  4. Try to elevate roles.
Note that the roles selection is blank.
Web Services


request.getSession().setMaxInactiveInterval(<time in seconds>) no longer works in Fuji P11 In Fuji P10, modifying the Installation Exit - Login works correctly when 'Remember Me' is not checked, and the session ends after X seconds. In Fuji P11, the session never expires.
  1. Follow the instructions in Customizing Login for Selective Session Timeout.
  2. Save the installation exit.
  3. Log out of the Fuji P11 (or latest Fuji) instance.
  4. Log in as admin. Be sure to uncheck Remember me.
  5. Wait 30 - 60 seconds.
Note that the session will not end. In earlier versions, the session ends and you are prompted for login again when trying to perform an action after 30 seconds of inactivity.
Web Services


Web Service Provider - Common Instance is not configured with dedicated SOAP semaphores, and integration transactions over-utilize all instance threads, causing instance performance degradation or outage In an instance that is not configured with dedicated SOAP semaphores, the Web Service Integration traffic exhausts the instance semaphores, causing an instance performance degradation or outage.
  1. Stand-up an instance and configure it to not have any dedicated SOAP semaphores.
  2. Set up several SOAP web service integrations.
  3. Start sending more concurrent traffic than there are semaphores on the instance.
Monitor memory usage and ability to transact with the instance.

Expected Results: Web service traffic is prevented from utilizing all the instance semaphores and causing an instance performance degradation or outage, or web service traffic attempting to use non-dedicated SOAP semaphores errors out to failure.

Actual results: The SOAP transactions can grab and use all the instance semaphores and cause an instance service disruption for the customer.



Graphical Workflow Support (Workflow Runtime Engine) When UI11 is being used on a Fuji instance, the 'Refresh' and 'Help' icons are not displayed when displaying a workflow context in the graphical workflow editor If a Fuji instance has the glide.ui.doctype property set to false, the workflow editor does not display the refresh or help buttons in the navbar.
  1. Log into a Fuji instance and ensure there is an active workflow context.
  2. Go to the workflow context record and click the Show Workflow related link. You should see the refresh and help buttons in the top right of the interface (this is expected behavior).
  3. Navigate to the sys_properties table and set the glide.ui.doctype value to false (i.e. set the instance to UI11).
  4. Log out and log back in.
  5. Go back to the context record and click Show Workflow.
Note that the icons are no longer there.


"SEVERE *** ERROR *** Workflow CommandManager corrupted scope stack: Started with scope stack size 1 finish with 0" when using custom-created workflow activities When using multiple custom activities in a workflow that are tied to a custom application when more than 1 of these activities being used has a Stage value, the following error occurs: SEVERE *** ERROR *** Workflow CommandManager corrupted scope stack: Started with scope stack size 1 finish with 0. current=wf_workflow_execution(d0387259372892003fb294d543990ea3) command=RUN_FLOW event=execute In a Fuji or Geneva instance:
  1. Create a custom application on your instance.
  2. Change your Application scope to this custom Application.
  3. Create at least 2 custom wf_activity_definition records.
  4. Create a new workflow and add at least 2 of these custom Workflow Activities. Adding a 3rd activity is preferred to be able to see the issue more easily.
  5. Assign a 'Stage' value to at least 2 of these activities.
  6. Run this workflow.
You should see that the workflow will proceed past the first 2 activities, but then it will get stuck in the 3rd activity.


Published version of workflow included with plugins was reverted to OOB version The published version of workflows is reverted to the OOB version, and user data is being overwritten.
  1. Check out the 'Pwd Connection Test - Master' workflow.
  2. Add an approval activity.
  3. Publish the workflow.
  4. Upgrade to Geneva Patch 1.
Note that workflows are reverted back to OOB.


Graphical Workflow Support (Workflow Runtime Engine) Legacy stage renderer on workflow fields in lists - workflow stages are not shown When a record's workflow is set to use the Legacy stage renderer, the workflow stages are not displayed for the 'workflow' type field in lists. Instead, a broken display of the fields choice list is shown.
  • Stage Names/values defined in the workflow wf_stage records are ignored completely.
  • A line is displayed for each choice list value for this field, in the order of the choice list.
  • If the workflow field attributes are empty (which is OOB for sc_request), then a sort-of state description is displayed in each row.
  • If the workflow field attributes are icons=WorkflowIconsStages (as listed in product documentation), then the values of the choice are displayed in each row.
  • If the current field value is one of the choice list values, then that row gets the blue arrow icon, and it displays the choice list value (or 'In Progress' if there is no attribute).
  • If the workflow field attributes are empty, any lines above the choice value currently get set to the green tick 'Completed' icon. Others are set to a grey icon and 'Pending - has not started'.
  • If the workflow has set the stage value to one not in the choice list, then all icons are grey, or 'Pending - has not started'.
Please note that sc_req_item works on Geneva, which uses field attribute icons=WorkflowIconsSCR instead. This is unrelated to PRB658785.
On a Geneva instance:
  1. Order the 'Sales Laptop' example catalog item. The Service Catalog Request workflow will run.
  2. View /, and add the 'Stage' column to see the stage renderer.


Graphical Workflow Support (Workflow Runtime Engine) Workflow engine is unavailable for a period during upgrade While the workflow plugin is being upgraded from Eureka to a Fuji or higher build, workflows may fail to run. This error may appear in the logs: 'Record not available for wf_element_definition:c7a66f7d0a0a0b3a004544a6d2f14076'
  1. Upgrade from Eureka to a Fuji+ build.
  2. While the workflow plugin is being upgraded, create a P2 Incident. That should create an SLA and trigger the SLA workflow.
  3. View the Workflow Context modules. Note that no workflow is created for the SLA.
  4. View the instance log and confirm that the 'Record not available for wf_element_definition:c7a66f7d0a0a0b3a004544a6d2f14076' error occurred.
Note: The time that the workflow engine is unavailable is determined by the size of the wf_context and/or wf_history tables. For tables with more than 1 million rows, this time will be relatively short (60 seconds or less), and it may be difficult to reproduce the problem.

Other Geneva Patch 4 information

Configuration Management Database (CMDB)

Fixes included with Geneva Patch 4

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