Pega Infinity™ includes an industry-standard patch release process to simplify and maintain high-quality releases. Several cumulative patches are released a year for each release stream. The Resolved Issues page contains information about client-reported issues that have been addressed for the specific release.
For a complete set of the Resolved Issues for this release, download the PDF attachment at the bottom of this page. (Note that you must be logged in to access the attachment.)
Low-code Application Development
Case Management
8.6.1 Patch Resolved Issues for Case Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161463 | 638001 | Case Dependency corrected for different access groups | Creating a queue item as part of the case dependency was not working as expected when the access groups of the dependent cases were different. Investigation showed that in this scenario, the logic was looping differently and the DependencyList page in pxCheckFlowDependencies was getting removed. To resolve this, the DependencyList page has been moved so it is processed inside the DependencyList.pxResults loop. | Case Management |
INC-161948 | 638961 | Locking settings enabled for circumstanced case types | Optimistic locking options were not present for a circumstanced case type, and the option to select the "Lock parent case when an action is performed on this case" check box was not available. However, when the parent case type was enabled with optimistic locking, a circumstanced child case could inherit a lock from its parent. Because "Lock parent case when an action is performed on this case" was not enabled on the circumstanced child case type, trying to update the parent case from the child case and save the parent case resulted in a "Lock not held on parent" error. This was a missed use case, and has been resolved by enabling locking settings in Case Designer for circumstanced case types. | Case Management |
INC-162168 | 634933 | Refresh works for nested lists | After creating Pagelist A with another Pagelist within (B), a section was created with a repeating dynamic layout to display Pagelist A and a button was added with action set to refresh this section. In the embedded section of the repeating dynamic layout, a nested repeating dynamic layout was created for Pagelist B and a button was set to refresh this section. When using this configuration, the refresh was returning the actionID for Pagelist A regardless of which button was used. To resolve this, an update has been made which will iterate over the stack and append the individual indexes to the encoded value in the pzAPICreateJsonForField function. | Case Management |
INC-162763 | 646112 | Case creation and Save As performance improvements | Performance improvements have been made to the getApplicationRuleSetList() function to avoid unnecessary and repetitive database calls. | Case Management |
INC-163154 | 638098 | Code updated for bulk actions buttons | After update, hovering over the "Filter case" button in pzBullkUpdate and the "Create" and "Clear" buttons in pzBulkAddActions caused them to disappear. The warning "This button generates markup that was used to support the older browsers. It is recommended that you update it to the newer markup" was shown, and an update code button appeared. Some custom rules exhibited the same behavior initially, but worked as expected after updating the code and saving them. This has been resolved by updating the buttons in pzBulkUpdate and pzAddBulkActions with the latest UI technologies used for button control codes. | Case Management |
INC-170041 | 655252 | Check and error message added for filename containing "%00" | At the time of file attachment or upload, if the file name contained % followed by two 0s (%00), the file upload mechanism distorted the UI and the Pega logo screen popped up. The file was saved properly in the ServiceExport directory, but while fetching the attachment info, the file was split in two because the engine considered %00 as a delimiter. This has been resolved by adding a file name check and a pyInvalidFileName field value to be used for an error message. | Case Management |
INC-170514 | 653763 | Lock conflict resolved for AssignmentCheck | The error "Unable to unlock this work object" sporadically appeared in both the runtime log and Pega RULES log when the robot was trying to create a case in Pega using an API call. Investigation showed that as the case was created, it was pulled by another robot (another requestor) which was using the GetAssignments API. This caused the perform assignment check to fail. To resolve this, a 'when' rule has been added to the performAssignmentCheck Activity. | Case Management |
INC-172584 | 654925 | Deprecated NewWorkGadget registered for BAC | Logging in through the Administrator portal and launching a new project resulted in a blank screen. Investigation traced this to the Create New Work action called in the NewWorkGadget control; because the NewWorkGadget is no longer used by Pega, it was not registered for use with BAC. To resolve this, validations have been added for Control: NewWorkGadget, and the control has been marked as deprecated. | Case Management |
INC-173725 | 656481 | Logic updated for DX API retrieving View/Action ID using embedded property | While calling the DX API using Assignment ID and action ID, a 500 error response was logged indicating that the server encountered an unexpected condition that prevented it from fulfilling the request. Investigation traced this to the logic used for resolving an embedded property referenced in a control/field to identify the correct page class. In a non-work object context for flow actions the new assign page doesn't exist, but the system was checking for it and clearing off errors from the named page. This has been corrected. | Case Management |
INC-173953 | 650850 | Updated Pega DX API special character handling | When the using Pega API v1 and invoking api/v1/cases/{ID}/actions/{actionID} for a few fields in section, special characters were being converted into HTML entities. For example,"You'll usually find this information in your terms and conditions." was being converted as "You& #39;ll usually find this information in your terms and conditions" in the API response. This has been resolved by updating the system to ensure the pyDXAPIEncodeValues application setting is honored. | Case Management |
INC-174045 | 650734 | DSS added to control merge strategy | The activity page merge option takes merge strategy as input and supports different merge strategy options like 'Replace', 'Update' etc. Previously, V1 DX APIs defaulted to REPLACE as the merge strategy; this has been updated to support both 'REPLACE' and 'UPDATE' merge strategies which can be controlled with the new DSS "v1MergeStrategy". The DSS to customize the merge strategy for v2 APIs is 'v2MergeStrategy', which also takes the values 'REPLACE' and 'UPDATE', which are for merge strategy '1' and '3' respectively. The default strategy from Pega 8.6 forward is 'UPDATE' and any other value other than the above two values will be considered as 'UPDATE'. | Case Management |
INC-175630 | 653864 | Application selections only announced when visible | The elements of the application switcher were being announced by the NVDA screen reader even when toggled off, i.e. not visible. The issue was occurring because the focus was remaining at the search bar even after closing the app switcher window, and has been resolved by adding the necessary logic to switch the focus. | Case Management |
INC-175882 | 658643 | Updated bulk action audit history logic and security | After update, using the standard bulk action feature did not record an audit history entry for the SLA action on a case. This was traced to changes made around authorization for opening worklists when using pzBulkProcessItem that limited the audit history to reassign, transfer or transfer assignment, and has been resolved by updating the login the Work-pzBulkProcessItem activity. In addition, the Require authentication to run checkbox has been enabled on the Security tab of the activity, and the Allow invocation from browser checkbox has been disabled. | Case Management |
INC-177183 | 656491 | Refresh assignment checks updated | Additional privilege checks have been added to refresh assignment. | Case Management |
Cloud Services
There were no Resolved Issues for Cloud Services in 8.6.1
Conversational Channels
8.6.1 Resolved Issues for Conversational Channels
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-147654 | 642187 | Updates to displaying embedded images in cases | Sending an email with an embedded image to the email ID associated with the email listener successfully created the interaction case, but the embedded image was not displayed when the case was opened from the work-basket. A rule-not found exception was seen in the tracer for pyGetImageDisplay, the rule responsible for displaying the images in the ET pane. Investigation showed that when URLObfuscation was turned on, the decryption of the URL was not successful because "&" had been encoded to '& amp;'. This has been resolved by calling the activity pyGetImageForDisplay using URLMapping instead. An additional issue was seen with displaying images in the email interaction pane where the additional empty new lines moved the image outside the intended place. This was traced to a customization for the reply area which used the pyHighlightedMessage property and converted newlines to br tags even in HTML mode. To resolve this, pyHighlightedMessage has ben modified to convert newlines to br tags only if the mode is plain text. | Conversational Channels |
INC-166844 | 651406 | Email bot updated to handle negative and positive feedback on the same text | When positive and negative training was done on the same piece of text, text extraction by Email Bot failed. For example, when using the sentence. “John Smith plays cricket”, the bot detects “John” as person name. If user wants to train the bot to detect “John Smith” as the entity, the user needs to first remove “John” and build the model, and then select “John Smith” and build the model again. In this case, the email bot never again detects “John Smith” as person name due to the negative feedback given for “John”. This was traced to the entities having same the startIndex/endIndex, and has been resolved by removing entities of the same modelName which have the pyIsRemoved property as true so that multiple entity models are detected on the same word. | Conversational Channels |
INC-170135 | 652524 | Rich HTML handling added for outbound email | The HTML content was visible in the received email when replying from the email pane in the existing email interaction. This has been resolved by adding logic to handle rich HTML for outbound email. | Conversational Channels |
INC-173193 | 660937 | Resolved exception from isArchived | After update, the message "ERROR - Could not retrieve the database time" was seen. This was traced to the interactions of the isArchived API with a version of Oracle, and has been resolved by adding code to skip the isArchived() API call if pzIsPegaCloud is set to false. | Conversational Channels |
INC-174475 | 650108 | Removed unnecessary commit in pyGetAttachmentsByCids | Attempting to reply to inbound emails generated the error "This action is not allowed as it is outside the current transaction". Investigation showed a commit was occurring for pygetattachmentsbycids even when there was no change in attachment, and this interfered with the subsequent transactions and resulted in the Transaction id mismatch issue. To resolve this, the commit has been removed and the system has been updated to save only when needed for backwards compatibility. | Conversational Channels |
INC-179722 | 659282 | Added handling for legacy HTML formatting in Email Manager Bot | When implementing Email Manager Bot features, pyBody fields were removing the additional spaces and causing the NLP model to not extract the correct data. Investigation showed HTML formatting from older version of Microsoft Outlook created nbsp; instead of space. This has been resolved by ensuring nbsp is replaced with spaces before calling JSoup clean. | Conversational Channels |
Data Integration
8.6.1 Resolved Issues for Data Integration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-145802 | 636323 | Oracle temporary space explicitly freed after writing LOBs | Oracle temporary space used to write the LOB was not freed up after writing records to Log-Service-File when using OJDBC8 or OJDBC10 versions and the table involved had inline BLOB storage such as small blob tables like Log-service-file (2-4kB blobs). This did not occur when using OJDBC7, but investigation with Oracle could not determine why the older version did not have this issue. This issue has been resolved by explicitly freeing the LOB space with a call to free() / freeTemporary() , a utility for LOB objects that was introduced in JDBC 4. | Data Integration |
INC-155624 | 648059 | MSGraph email listener enhancements | Attachments with .eml /.msg extensions were treated as FileAttachments by the MS Graph API and generating a classcastexception. To resolve this, a check has been added to identify the attachment along with content type so .eml will be correctly recognized. In addition, the MSGraph email listener functionality related to converting from Graph to MIME message has been enhanced around the 'TO' and 'CC' recipients in a MIME message and for parsing nested attachments in Item attachment for addition to MsgraphMessage. | Data Integration |
INC-156758 | 629938 | ExpandStream called before Page-Merge-Into to ensure correct merge | The Page-Merge-Into method was not merging the source page into the target page when the use case was run without tracer, but merged properly when run with tracer. This was traced to an intermittent issue with expanding properties, and has been resolved by calling expandStream on the source property if it is unknown prior to checking if the source and target properties are merge compatible. | Data Integration |
INC-158018 | 633375 | Archiving updated to include pxobjclass in CTE column list | After enabling the case archival feature on a casetype, cases were getting stuck in the Archive-Ready state while being archived, and a 'column not found' error was seen. Investigation showed that the generated SQL statement used to retrieve the resolved case instances used a common table expression (CTE) whose columns were inskey, insclass, and parentinskey, and the query that referenced the CTE was attempting to compare the column pxobjclass when pxobjclass did not exist in the CTE's column list. To resolve this, the CTE column list has been updated to pzinskey, pxobjclass, and parentinskey to prevent the 'column not found error' from occurring, and the query that referenced the CTE was also updated to use the correct column names and aliases. | Data Integration |
INC-161737 | 639845 | Queue processor correctly moves items to Broken Items | When an exception occurred while Queue Processor processed an item, he queue item was not moved to Broken Items. The error " inconsistent datatypes: expected - got CLOB DatabaseException caused by prior exception" was generated. This has been resolved by modifying the NativeSQL builder and NativeSQLBatchExecutor to allow the batch of queries to be retried. Additional changes were also added for Oracle databases to identify the correct column types. | Data Integration |
INC-162262 | 654965 | Query added to find time zone for MSSQL database | The exception "com.microsoft.sqlserver.jdbc.SQLServerException: xp_regread() returned error 5, 'Access is denied.'" was generated when the AES agent PushDBSizeInfo was being run. This was traced to the GetDBInfo activity trying to retrieve the time zone of the MSSQL database by executing a query that used a Microsoft SQL routine to read the windows registry to get the current time zone. The error was not due to security within the SQL Server, but instead was caused by Microsoft Windows security related to the permissions on the registry keys for the users under which specific SQL Server processes were running. To resolve this, an update has been made to call a different query which will get the time zone for the SQL Server. | Data Integration |
INC-163043 | 645392 | PEGA SOAP Service MTOM attachment handling updated | After configuring a PEGA SOAP service with the Enable MTOM checked, sending a SOAP request with attachment to the service returned an invalid request error stating "Value of content length header is greater than zero - [762], but this request has empty POST". Investigation showed that when the input request reached the getPostBytes method and inputstream tried to read it, there were no available bytes and end of file was detected. This was due to the inputstream having already been read in getMultiPartSOAPHandler() method in FileUploadHandler class. To resolve this, the system will update an 'if' condition in getPostBytes method to skip reading the request attachment when contentType is "multipart/related". | Data Integration |
INC-164308 | 634409 | UseNoCacheHeaders default expiration set to "0" | When the prconfig/HTTP/UseNoCacheHeaders/default was set true it used the value "Expires: Thu, 01 Dec 1994 16:00:00 GMT". This has been updated to the more commonly used setting "0". | Data Integration |
INC-164405 | 640183 | Enhancement added to support incremental update | In order to support incremental updates between versions of Pega and versions of Oracle, an enhancement has been added that will allow the engine to handle a mix of database version and JDBC driver version and issue the query that will work on Oracle 11g database despite using a newer driver version. | Data Integration |
INC-168983 | 645791 | Jobs restart after system failure | Several key standard CLUSTER type jobs were left in disabled state after a performance break test with rolling restart of the nodes. This was traced to prevention code that was originally intended to disallow stopping the scripts, but had an unexpected result after a system failure when the request to restart the standard pzDelayedQueueProcessorSchedule was rejected if the check of the job name matched the deny list. This has been resolved by removing the preventative code. | Data Integration |
INC-168983 INC-174296 |
645790 650753 |
Delayed JS/DF initialization failures will trigger alert | In order to ensure better cluster monitoring, a PEGA0102 alert has been added for job registration failure that will be triggered if there are startup issues. The logging will include the JOB_NAME for improved troubleshooting. | Data Integration |
INC-169116 | 654257 | Correct time zone chosen for fr_Fr appointment function | When using the "fr_Fr" location and and "Europe/Paris" time zone for appointments, a null pointer exception was seen related to the function getStartOrEndDateTime. Investigation showed that the incorrect time zone was being picked from the fr_FR.xml file when parsing the date. To resolve this, 4 letter time zone codes have been moved above the 3 letter time zone codes. | Data Integration |
INC-169518 | 649155 | Email addre+E317ss parsing logic updated | Email listener functionality for case creation and email notifications was not working as expected after update due to a difference in the the service email rule request header properties (pyInboundEmail.pyFrom & .pyInboundEmail.pyFromDisplayName) clipboard values. This has been resolved by updating the parsing logic for the email addresses to look for an InternetAddress object and then fallback to a regex match. | Data Integration |
INC-169764 | 645807 | Decision table query performance improvements | Severe latency was seen after update, and it was not possible to save business rule changes. This was traced to an issue with the decision rule being treated as a custom rule, and has been resolved by inserting a check. In addition, optimization has been added for queries on the pr_sys_decchg table. | Data Integration |
INC-170551 | 656560 | Rule Assembly update for pxTextInput and pxDisplayText | After the application restart, multiple rule assembly alerts were seen for pxTextInput and pxDisplayText . During first access, Assembly is done and container is cached in VTable; investigation showed that in this case, the Load class without the package name had a class not found issue, and then subsequent access tried to use the container from cache and assembly was not done. To prevent this, an update has been made to perform the class lookup using the package name and class name. | Data Integration |
INC-170599 | 645224 | DSS partition count setting made backward compatible | After update, the DSS to limit the number of partition counted was no longer working and instead used the default value of 20. This has been corrected and made backwards compatible. | Data Integration |
INC-170620 INC-170669 |
651805 651812 |
Handling added for RuleNotFound exception | If a declare rule was run on a redux page and the highest ruleset version was withdrawn, a RuleNotFound exception was thrown and step status was set with the message "Failed to find a 'RULE-DECLARE-EXPRESSIONS' ...". This has been resolved by updating the system to avoid throwing a RuleNotFound exception if the candidate list is empty for the declare expression. | Data Integration |
INC-170950 | 652331 | Handling added for datetime set by relative reference | When initializing a datetime property contained within .pxPages() in a data transform rule, if the property being set applied to @baseclass it was initialized as decimal string while all other properties were handled as normal GMT-based Pega date time strings. Investigation showed that the decimal value was set when the target page was given by a relative reference like .pxPages(TEXT) which was also defined on Pages & Classes. This has been resolved with an update to detect relative reference as page name in Pages & Classes tab and fall back to the old assembler. | Data Integration |
INC-171753 | 649439 | Checks for Apache Tomcat 6 with MSSQL removed | After implementing a specific local Tomcat configuration that removed the Tomcat version number from displaying on Tomcat standard error screens, the error "Tomcat 6 not supported or unable to detect version for custom Tomcat: Apache Tomcat. Contact Pega Customer Support!" appeared and Tomcat failed to start. Because Tomcat 6 was not supported for use with Microsoft SQL Server Systems, Pega used the ServletContext.getServerInfo() method to determine the Tomcat version; if the system used Tomcat 6 or an undetermined version in combination with MSSQL then the system would purposefully not start. As Tomcat 6 is no longer supported in Pega 8.5.2 and above, this check is unnecessary in those versions and the Tomcat version 6 checks in ClassMapImpl have been removed to allow serverAllowsMerge to return as true. | Data Integration |
INC-172350 | 658278 | Removed duplicate Set-Cookie Secure Keyword | Checking the headers of the login page showed the Cookie Pega-AAT duplicated the Secure keyword. This was traced to the PegaAATCookieWrapper extending the CookieWrapper class and causing the secure flag to be set in both the classes. This did not have a functional impact, but the secure flag set has been removed from the PegaAATCookieWrapper class to avoid duplication. | Data Integration |
INC-172546 | 652879 | Resolved classcast exception with assembled HTML controls | A classcast exception was being generated on login. Investigation showed the Static Assembler was unexpectedly using a different Assembler to assemble the Html control rule. Standard behavior is that StreamBuilderAssembler assembles controls of type StreamBuilder and ControlAssemblerForVTable assembles controls of type ControlBuilder. In this case, static assembly for HTML controls using VTable was performed using StreamBuilderAssembler, causing a classcast exception when using VTable because the instance of the generated.html class was incorrectly inheriting from StreamBuilder (the parent class of ControlBuilder) instead of ControlBuilder which is the specified interface in the generated.html Java code. This has been resolved by updating the system to skip rules of type 'Rule-HTML-Property'(control) during Static Assembly. | Data Integration |
INC-172675 | 649452 | Configuration added for extending queue processor timeout | Alerts for queue processor (QP) items which took more than 15 minutes to run could result in the system marking the node as 'unhealthy'. In environments with Pega Health Check enabled, this would shut down the node gracefully. It was not possible to change this default as it was hardcoded. In order to support systems that may have custom processes that run beyond 15 minutes, a a new setting has been exposed that allows configuration of the interval after which a node with long-running queue processor is marked as unhealthy and is restarted. By default this remains 900000 milliseconds / 900 seconds / 15 minutes, but it may be adjusted up to 24 hours to avoid premature node shutdown. The stale thread detection mechanism will take that setting into account and use the provided value or default to 15 minutes if the value was not provided. In addition, the threshold's units in the UI have been changed from ms to seconds. | Data Integration |
INC-172692 | 650612 | InsID will be derived from handle if null after update | Updating from Pega 7.2.x to Pega 8.4.x failed with a null pointer exception in the “Upgrade Context” target. This was traced to a rule where the pxInsID was null. To resolve this, an update has been made to derive the InsID from handle when needed. | Data Integration |
INC-173092 | 648736 | Handling added for multi-node concurrent access to conclusions | A proposition update was triggered and heap memory jumped up and a thread dump was generated. A Pega0004 error was also generated at the same time. Investigation showed that many queries were getting fired on pr4_rule_sysgen table in a multi-node environment during RAP import. This caused database contention as more than 80 nodes were trying to load conclusions simultaneously. To resolve this, an update has been made to run an agent periodically to save conclusions into the database. This agent is configured to not run on multiple nodes simultaneously, which will avoid database contention issues from conclusions. | Data Integration |
INC-173436 | 648819 | Performance improvement for Application Save: Node Level Data Pages | As part of new functionality introduced in 8.3, data types defined in the application record will be turned into data objects on Application save. As part of this process node level pages are invalidated and reloaded and there is an explicit commit that marks the Application record as dirty and sends any calls for the application record to the database for fresh records. In a multi-node environment, the number of queries to get the application record being saved became exponentially higher and performance impacts were seen. This has been resolved by updating the system to skip eager loading of the data page definition when an access rule or application definition is saved. | Data Integration |
INC-173895 | 655916 | ZMW adde to currency codes | The Zambian Kwacha, "ZMW", has been added to the currencies code list in ENCurriencies.xml . | Data Integration |
INC-174243 | 655887 | Links to specifications persist appropriately | When linking Rules to Specifications, check-ins of some unrelated rules deleted the link. Investigation showed the deletion happened in the pzHandleLinksPostCheckIn activity, and was caused by an empty parameter page name that caused pcInsKey to not have a value, so all links returned by "Obj-Browse" were later deleted. To resolve this, an update has been made to insure the "Pass current parameter page" option in step 2 of the Connect REST PostCheckIn activity is enabled so that the downstream activity pzHandleLinksPostCheckIn behaves as expected. | Data Integration |
INC-174612 | 659250 | Queue Processor threads explicitly cleared before new interaction | Queue Processor was not clearing already evaluated freshness caches before running an activity, potentially causing a stale data page to be processed. This has been resolved by explicitly clearing the thread on a new interaction by invoking ((IPRThread) thread).clearOnNewInteraction. | Data Integration |
INC-174694 | 650779 | Check added to ensure read locks are released | Read locks were not being properly released if a thread was holding a read lock and the system encountered an issue such as an out of memory condition. To resolve this, an update has been made to DeclarativePageDefinitionCacheImpl which will check whether a thread holds any read lock before trying to acquire a write lock, and if so release all the read locks held by that thread. | Data Integration |
INC-175205 | 652530 | Agent restart made more resilient | During a timeout outage, agents intermittently encountered a NoClassDefFound error and were disabled. After the database connection was restored, the agents were not automatically restarting. This has been resolved by making the code more resilient to errors; agent will be restarted when a temporary issue is detected, and the restart will be immune to most exceptions. | Data Integration |
INC-175343 | 655353 | Invalid date handling added to Legacy Adapters | Running the Job Scheduler activity failed with the error "not a valid date/time value". Investigation showed this was caused by LegacyPropertyAdapter.isEmpty being returned as true in case of properties having invalid values, and has been resolved by adding handling for an InvalidValueException in LegacyPropertyAdapter and LegacyPageAdapter. | Data Integration |
INC-175672 | 652943 | ServicePackage threads properly released | After completing a system stress test, the requestor pool threads for the ServicePackage were not released. Investigation showed that the threads were waiting for Data Pages to be loaded in the background even though there was no background job corresponding to those data pages in the Async Services pool. This has been resolved by making an update to avoid removing the object handlers when the load-datapage finds that an entry exists with a NOT_STARTED state. | Data Integration |
INC-176785 | 656078 | Validation on DateTime property working for mobile | A mandatory DateTime field with "Allow text entry" set to 'No' was not restricting validation when no value was provided. This was an unintended consequence of recent work done to validate input type date along with input type hidden, and has been reverted. | Data Integration |
INC-177470 | 657143 | Optimization prconfig check added for TableInformationMap | A prconfig setting check has been added to the TableInformationMap use of OPTIMIZE_SMA_QUERY during its foreign key lookup. | Data Integration |
INC-177737 | 663140 | Authentication requirement updated for CallConnector | After update, invoking a REST API call during SSO login which eventually called pxCallConnector (Final Activity) in @baseclass Pega-RulesEngine failed at the CallConnector step. This was caused by a change in recent Pega versions which enabled authentication for this activity, and has been resolved by marking the activity as internal and disabling the authentication requirement. | Data Integration |
INC-177993 | 657202 | Archival IndexManagerService performance improved for very large tables | Archival IndexManagerService was taking an excessive amount of time to run updateStatusForCasesWithInconsistentArchiveStatus(), a method which checks the parent case's archival status and compares it to all its children (cases & dependencies) statuses and flags parent cases with statuses that do not match. This check is done on all parent case instances that are in the indexer stage, and intermittently timed out and failed on a pr_metadata table containing over 5,000,000 records. This has been resolved by splitting the inconsistent check into smaller tasks and addressing potential parent/child/dependency relationships that can occur in the pr_metadata table. | Data Integration |
INC-179861 | 658950 | AES call to mbean disabled | Under certain conditions, the AESRemote 'push memory' agent call to the legacy memory management mbean caused unexpected behavior in declarative rules for work running in data flows and queue processors. This has been resolved at this time by overriding the push memory usage agent activity to skip mbean and connect REST. | Data Integration |
Decision Management
8.6.1 Resolved Issues for Decision Management
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-150395 | 625069 | Tokenizer updated to handle commas | The Text Analyzer was not working as expected in cases where the number was combined with a comma (,) with it but was working when a space was used between the number and the comma. This was traced to the tokenizer not correctly processing and splitting the input text when there was a special character before or after the token. This has been resolved by updating the tokenizer logic. | Decision Management |
INC-154746 | 613406 | ADM performance improvements and duplicate inputs corrected for delayed learning records | Additional work has been done to improve the performance for Adaptive Models used in multi-level decisioning, and an issue with duplicate pxCommonInputs has been resolved. | Decision Management |
INC-157357 | 636712 | Hazelcast remote execution not called from synchronized context | After navigating to the Admin Studio portal to view the nodes, the portal was temporarily freezing. Investigation of the thread dump revealed this was caused by a DDS pulse sending a remote execution call to all nodes to update logger settings even though the site was not using DDS. This has been resolved by updating the system to avoid calling Hazelcast remote execution from a synchronized context. | Decision Management |
INC-157629 | 626634 | Duplicate key exception resolved for adaptive model | During the model snapshot update, a DuplicateKeyException was generated while trying to insert a record in to the predictor table. This did not affect the model's learning, but did appear ion the model monitoring report. This was traced to a local scenario of having the same outcome values defined on the model with different cases (Accept and accept). All predictors used in an Adaptive model are inserted into the model monitoring tables as a part of the monitoring job: because the monitoring tables are not case sensitive, this lead to a unique constraint exception since there were multiple IH predictors with the same name. To resolve this, validation has been added which will skip adding duplicates from new responses. | Decision Management |
INC-159836 | 631206 | Upgraded Apache UIMA Ruta libraries to resolve memory leak | A memory leak issue that resulted in a reboot being needed every few days was traced to the class org.apache.uima.ruta.rule.RuleMatch. This has been resolved by upgrading the Apache UIMA Ruta libraries to v2.8.1. | Decision Management |
INC-161829 | 645206 | Corrected merged rule checkout error | A decision data rule that was created or updated in a branch and then merged to a ruleset version was failing a subsequent checkout from the same merged ruleset version. This was traced to recent work done to address an Indexoutofbound exception in pyEditElement related to java compilation exceeding the 65 000 byte limit, and has been resolved by updating the pzGetCircumstanceValue activity to exclude ruleset version from the circumstance value generated for pyEditElement section. The following activities in the Rule-Decision-DecisionParameters class have also been updated to replace the Obj-Open method with Obj-Open-By-Handle so that correct version of pyEditElement is referred - pzDeleteExistingLayout, OnBeforeDisplay and pzCheckIfRuleSyncWithLayout. | Decision Management |
INC-164243 | 656500 | DateTime validation works correctly after importing invalid data | After creating DecisionData (Dev studio) and adding a DateTime property to the form, importing records with invalid DateTime values failed with a validation error on the screen and the message "Error while converting format for data type DateTime property name Test_date_format with value scvf" was logged. Attempting to proceed by correcting the DateTime property and uploading worked, but any subsequent imports in the same session silently allowed invalid inputs to be passed without any validation errors and then showed blank date fields. This has been corrected. | Decision Management |
INC-165704 | 639505 | VBD data flow timeout increased and made configurable | Intermittent VBD timeouts were seen when writing records to MSK even though no errors were reported on the MSK side. Analysis showed that while batch data flows retry when a timeout occurs, real time data flows do not retry and the configuration to wait up to 10 seconds for an acknowledgement may not be sufficient depending on the system conditions. This has been resolved by increasing the default timeout to 20 seconds and adding a configurable timeout "vbd/streamPublishTimeoutMillis" to allow a customized setting. | Decision Management |
INC-166561 | 645650 | ADM Models correctly updated | The ADM models were not being updated when responses were processed either via the CaptureResponse API or when the time elapsed that should result in an update reflecting a non-response. This was traced to incomplete handling for a response coming for some other model which was converted to EMPTY, and has been resolved by modifying the logic so that the default responses and other responses are processed properly. | Decision Management |
INC-167334 | 639318 | GRS support added for Kafka Key password | An enhancement has been added to support using GRS to set values for the Kafka Key password dynamically. | Decision Management |
INC-169125 | 642401 | Nodes resume correctly after DDS restart | A corner case issue in VBD's code for handling a DDS session was preventing the nodes from recovering correctly after a system shutdown. As part of the process for an event which fires if all DDS nodes are taken down or as part of a switch from embedded to external Cassandra, VBD's cache is invalidated and then re-initialized once new VBD API calls are received or on the VBD service pulse. In this case, the invalidation of the cache did not complete due to logic in the VBD code that can lead to executing a Cassandra query that will not work in the case of all DDS nodes being down. This has been resolved by modifying the handling of a session change event to eliminate inadvertent Cassandra queries so the invalidation can complete correctly and continue the re-initialization process. | Decision Management |
INC-169544 | 649538 | Enhancement for MaxEnt modeling data | An enhancement has been added to create output for the model coefficients, the term frequency, and the inverse term frequency for use in maximum entropy modeling. For MRM processes, every Maximum Entropy (Maxent) based topic model will contain two additional stats resources. These resources can be used to validate and replicate running of topic model outside of Pega. The resources are: 1) Term Frequency file – A CSV file with all words used for training and their cumulative frequency across training set. File name format – TRAINING_DATA_TERM_FREQUENCY_< RandomNumber >.csv olumns – Word, Count 2) Coefficient file – A CSV file with all features (words, taxonomy matches and category matches) and model learnt weights for each topic across training set. File name format – MAXENT_COEFFICIENT_VALUE.csv Columns – Feature, < TopicName1 >, < TopicName2 > ,…, < TopicNameK > |
Decision Management |
INC-170721 | 658962 | Stricter criteria set for reusing an SSAExecutionContext | After a Strategy was configured with an existing Proposition Filter and the Explain Results box was unchecked, executing the strategy resulted in the error "Stack is empty, cannot pop any more frames". Investigation showed that the SSAExecutionContext object was reused across the two criteria evaluation in Proposition Filter rule: this works well as long as the input is the same across the two evaluations. However, the SSAExecutionContext object also stashed a reference to a PublicAPI object which became stale in the second evaluation and caused the empty stack issue for the given scenario. This has been resolved by providing stricter criteria in deciding when an SSAExecutionContext can be reused or not in the case of Proposition Filter rule. | Decision Management |
INC-171594 | 656184 | Spell check correctly applied to email body | Spell check was not being applied to email body for text analysis in Email Channel. This has been resolved to work irrespective of case. | Decision Management |
INC-174550 | 658395 | Alternative pyLabel source for Auto-generated Proposition Filter added as fall back | After using save-as to move an offer/action rule containing eligibility criteria into a new ruleset /branch, the criteria disappeared. Proposition Filter has an explicit dependency on relevant records, and in this scenario investigation revealed all of the relevant records had been previously deliberately deleted. Using save-as on auto-generated CDH rules like actions is also not a best practice. To better handle unexpected actions like these and avoid the hard dependency on Relevant Records, when creating the Proposition Filter via the programatic API the system will fall back to reading the label from the sourcePage if is not possible to get the label from Relevant Record. | Decision Management |
INC-174933 | 651828 | Special characters escaped for use in "is in List" lookups | After creating a specific criterion on any proposition using a string property, the "Is In List" operator, and a customer list with one value containing a "$", clicking save or check in resulted in the exception error "Problem invoking function: pega_decisionengine_propositionfilterfua.pzPropositionFilterMethodBody--(PublicAPI,ClipboardPage) java.lang.IllegalArgumentException: Illegal group reference at java.util.regex.Matcher.appendReplacement(Matcher.java:857) ". This has been resolved by escaping regular expression control characters in string replacement, which will allow the use of characters such as the $ sign for "is in List" lookups. | Decision Management |
INC-175207 | 655555 | Added handling for DSM Services stuck in leaving status after database outage | During a database outage, the heartbeat would fail and DSM services would eventually try to enter safe mode and stop. As the first step they would try to change the state to LEAVING, but because the database was down saving the LEAVING state failed and the exception was not handled correctly. This resulted in the rest of the stop operation logic not being executed and the service being stuck in LEAVING. To resolve this, an update h as been made to ensure the service goes to LEAVING_FAILED if anything fails during the stop operation including when setting state to LEAVING_FAILED. The state LEAVING_FAILED will get flushed to the database eventually when it comes back up. This will allow the aggregation service to start from the LEAVING_FAILED state and recover by itself after a database outage. | Decision Management |
INC-175707 | 655348 | Multi-level strategy gives correct rules during Batch run | When using a nested page structure with multi-level strategies that loop through each page and process the customer, a customer with two linked customers A and B had the results of A overridden by B during Batch Processing while single case canvas testing showed the correct results. This was caused by the DSM clipboard page method of carrying the parent page info not supporting the re-use of pages, and has been resolved by adding an enhancement that will sanitize the strategy stage processor to ensure the correct page reference is used. | Decision Management |
Low-Code Application Development
8.6.1 Resolved Issues for Low-Code Application Development
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-162881 | 636992 | Decision Table check-in warnings supported for large tables | After adding an empty row in the middle of Decision Table rows and checking in, the Decision table rule's CheckIn form shows a functionality warning about a conflict in decision table ("This rule contains 1 logic conflict(s). Click the 'Show Conflicts' button for more details."). However, this behavior did not occur as expected if the decision table had more than 500 cells in it, and has now been resolved. | Low-code app development |
INC-164002 | 639912 | Decision table null input handling updated for backward compatibility | After update, any null values as inputs in the decision tables were skipped if "Allow Missing properties" was not checked. This behavior was different from previous versions. In order to improve backward compatibility, the new function pxEvaluateDecisionTable has been added which has an additional parameter to set AllowMissingProperties, and the older function logic has been modified to take the parameter value from the parameter page. | Low-code app development |
INC-164171 | 644705 | Support added for connect-SOAP run in parallel mode | When connect-SOAP was configured to use the “run in parallel” mode, application settings derived through a datapage had incorrect values. While running the connect-SOAP through an activity, all the values were derived incorrectly. This has been resolved by adding a synchronization enhancement to support parallel run connect.SOAP. | Low-code app development |
INC-164439 | 657997 | Setting added to customize using blank Map values | After update to from Pega 6 to Pega 8 some of the Map Value rules were not working. This was due to the handling for blank default values which was changed in Pega 7. In order to support backwards compatibility, a new 'when' rule has been added which allows customizing whether or not blank values are allowed for the Map value default columns. pyAllowBlankValues will default to "false". | Low-code app development |
INC-165256 | 657038 | Improvements for Offer Eligibility rules loading time | After opening the Proposition filter/Action rule and clicking on Add Criteria, the pxAnyPicker drop down load was taking an excessive amount of time. Performance improvements have been made by adding a precondition at step 2 to avoid data page refresh for specific scenarios when it is not required. | Low-code app development |
INC-168914 | 659660 | Updates added against Cross-site Scripting | Cross-site Scripting (XSS) protections have been updated for the UI. | Low-code app development |
INC-171257 | 651733 | Expanded results for Proposition Filter Relevant Record Properties | Previously, a maximum of 500 records were returned from pr_data_tag_relevantrecord when using Edit Parameters for the report definition proposition filter rule. In order to accommodate more complex needs, an update has been made to use the D_pxGetClassDataModel data page to fetch all the records and make them available in the dropdown. | Low-code app development |
INC-174468 | 650943 | Delegated rules search considers localized text | The search / filter box used to look for particular delegated rules on the configuration tab did not consider localization via field values, where the on screen name and description of the delegated rule was localized. This resulted in the search text being compared against the original text (.pyAdviceText and .pyDescription) used for the name and description at the time the rule was delegated, but not with the localized text that actually appeared on the screen. This has been resolved by updating the pzPopulateDelegations activity to filter by localized values of pyAdviceText and pyDescription. | Low-code app development |
INC-178070 | 658679 | Browser invocation allowed for UnlockOperator | Attempting to unlock an operator who was locked out due to security policies was failing. This was an unintended side effect of security work performed earlier, and has been resolved by reenabling 'Allow invocation from browser ' for pzUnlockOperator. This activity requires an authentication check with privilege protection. | Low-code app development |
INC-180603 | 661738 | Added protections for GetSiblings | Cross-site scripting protections have been updated for the GetSibling activity. | Low-code app development |
Mobile
8.6.1 Resolved Issues for Mobile
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-157214 | 634986 | Mentioned user in Pulse appears correctly | When loading user names while using the "@" functionality in a Pulse post, adding or tagging the operator/user in Pulse by entering each letter brought up the list, but when using copy/paste it was not possible to select the desired value from the user.Suggestions list of operators/users. If by chance the user name was selected from the suggested list, the operator ID was added instead of the full name. This has been resolved. | Mobile |
INC-160485 | 655298 | Trailing "/" added to public links for SSO use | Links generated using pyWorkLinkWithLabel were not working with SSO due to not having a trailing "/" on the URL. This has been corrected by adding code to append the "/" if the public link url doesn't end with it. | Mobile |
INC-161398 | 639853 | DataSync SynchronizationResponseStreamer logging enhancements | The PegaRULES log contained "Response page does not match request, will generate failure response" errors even though no functional impact was observed. In order to enhance troubleshooting, additional DEBUG logs have been to DataSyncHandler, SynchronizationResponseStreamer is now logged on INFO level and contains more detail, and the error message has been modified to "Cannot prepare continuation response because offline package was stale. Will generate reset schedule response." to be more informative. | Mobile |
INC-164532 | 635298 | Correct context set for offline chat email processing | After configuring "Allow end-customers to submit an email when chat is unavailable", the options for email and message were presented in the chat window and an item was queued for the queue processor cyCreateOfflineEmailMessage, but the queue processor became stuck on the queue item. Investigation traced this to the configuration causing the pyShouldExtensionBeLoaded activity to run under the incorrect context, which prevented it from accessing the needed workparty and goal values. This has been resolved by adding the pyShouldExtensionBeLoaded class to the pages to ensure the correct context. | Mobile |
INC-164947 | 639860 | Handling added for missing div when opening work object | In mobile offline app, opening a work object in a specific scenario for the second time resulted in an endless busy indicator. It was not possible to navigate away, and the app had to be closed and reopened to continue. Investigation showed that some app sections had an action that tried to load a harness section where one specific div was missing, and this has been resolved by updating reloadSectionOSCOHandler to handle the missing div in the failure callback. Additionally a console.error() will appear for the missing section. | Mobile |
INC-165779 | 641973 | SQL query handling updated for mobile | When the check box in mobile channel "Disclose application size when users log in for the first time" was enabled it produced the error "There was a problem getting a list: SQLState: Message: ERROR: relation "pr_data_full_sync_stats" does not exist". Investigation showed that all SQL queries passed to getDb().executeRDB(...) method were using the SQL table directly, ignoring any customizations to table mapping or database prefixes. This has been resolved by replacing the table name with a class reference ("Class: Pega-OfflineFullSyncSizeStatistics") so that table mapping can replace the reference with a proper table name and proper database prefix. | Mobile |
INC-166048 | 641956 | Navigation icons added for use in offline mobile | When using an offline mobile app, clicking on an image / link on the home page for navigation resulted in the error “Resource missing. See client logs.” This was traced to a missed use case that resulted in some icons not being available in the package, and has been corrected by including the following: webwb/py-menu-toggle.png webwb/pzgrid_downarrow.png webwb/pymenuleftarrow.png webwb/pymenurightarrow.png webwb/pymodal_mask_img.png webwb/py-grid-sort-down.svg |
Mobile |
INC-167388 | 651306 | Values treated as strings for offline data transform concatenate | When using a Data Transform to construct a URL using multiple properties that contain values with a leading or trailing "0", the "0" was trimmed when the corresponding mobile JS code was generated using pega.process.expression.getValue("pyWorkPage.PlanData.SegmentID", "pyWorkPage.PlanData") . This was traced to the offline property type assuming that any numbers-only string should be treated as a number, so the data transform concatenate was converting “0001” to 1. To resolve this, the value will be treated as a string when being evaluated in an offline data transform. | Mobile |
INC-168935 | 645397 | CalendarGadget updated to display events in Saudi locale | When using the pxCalendar section with the locale setting ar_SA, the calendar was correctly converted to a Saudi calendar but the events which were showing in the English version of the calendar were not showing up in in the Saudi Calendar. This was caused by the CalendarGadget page not populating properly due to the localized Hijri calendar failing a datetime check that was looking for a Gregorian calendar with time in GMT format, and has been resolved by updating the when rule "pzShouldDisplayEvent " to use the proper function for the localized calendar. | Mobile |
INC-172124 | 651292 | Improved Operator ID selection in Mobile Logs Retrieval section | Data-Admin-Operator-ID.pzOperatorsByApplication returns only the first 500 operators, which is insufficient for large-scale use. There was a workaround of turning off paging for this report definition and setting maximum records to a bigger value, but this caused potential performance issues when opening very large users list. To resolve this, an autocomplete control will now be used to select Operator ID in the Retrieve Device Logs section of Mobile Channel. When part of an operator ID is typed into this control, the first 100 best results are shown and may be selected. | Mobile |
INC-173633 | 650276 | Google Key security updated | Cross-site scripting protections have been added for Google Key. | Mobile |
INC-174435 | 659480 | Survey Complex Question Definition properly displayed | Selecting any Complex Question to look at the definition displayed a blank screen. This was traced to an issue with the ruleformtabs properties for the layout group used by complex questions, and has been resolved by changing the Layout Group display type from "Default" to "Tab". | Mobile |
INC-175000 | 657007 | Handling added for Address Map control in Microsoft Internet Explorer 11 | Microsoft Internet Explorer 11 does not support Class, async, await and arrowed functions due to not implementing the necessary EC6 features. This caused Address Map Control to not work in this browser because pypega_map_googlegis js creates a js class. To resolve this issue, alternate methods have been added for use with Microsoft Internet Explorer 11. | Mobile |
INC-175684 | 658698 | Parameterized data pages updated on record change | Changing source data page records without changing the parameter value was not updating parametrized data pages. This has been resolved by updating the system so the parametrized data page populator function is now called every time the page is accessed. | Mobile |
INC-180233 | 660579 | Offline.Rulecache UI module capacity increased | Clicking the save button on a modal window caused the application to freeze and all the buttons were disabled. This was traced to the pega.offline.rulecache UI module having a default hard limit of 500 rules. Once the hard limit was reached, the system intermittently silently refused caching additional rules depending on the amount of rules packaged or the order in which the rules are loaded to the cache. To resolve this, the system has been updated to only log a console warning once the maximum threshold is reached, allowing the application to operate normally and at the time inform about the potential impact of having too many rules in memory. | Mobile |
Project Delivery
There were no Resolved Issues for Project Delivery in 8.6.1
Reporting
8.6.1 Resolved Issues for Reporting
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-151293 | 630347 | Out of memory condition resolved for BIX extraction | A node was going down automatically during execution of a BIX Extract rule when working with old objects. Investigation showed this was related to an out of memory error: the work object had nested page lists, and when one of the page lists contained a propertylist which contained more records, the system was trying to add entries to the LinkedList if any properties were missing the reference during extraction. Because LinkedList allowed duplicates, it filled with enough errors to cause the out of memory condition. To resolve this, LinkedList has been replaced with LinkedHasSet, which does not allow duplicates. | Reporting |
INC-160190 | 658126 | Logic updated to allow page property and declare index with the same name | A Property which was in a page list which in turn was embedded in a Page was not visible in the Report Browser. This was traced to the two properties sharing the same name, and was caused by a check which ensured only entries with unique names were added. In order to support this configuration, logic has been added to pzAddPropListForClass_TreeGrid such that if a page property and declare index share the same name, they are both added to the tree grid. | Reporting |
INC-160608 | 648636 | Added handling for missing deleted/report shortcut for drilldown | Whenever “Report Details” for a drilldown report without category was clicked, a Flow Action Error was generated. This was due to a missing Report shortcut normally stored in the Report Definition, and has been resolved by modifying pzPreProcessReportDetails to handle the edge case of a shortcut not present/deleted for a drill-down report. | Reporting |
INC-162649 | 639398 | DSS added for handling missing attachments | When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs. |
Reporting |
INC-166120 | 657057 | Parameter added to prevent name localization in Dev Studio Reports | Running the DataTableEditorReport against a customer table translated names that matched localized values, such as "Mr. Block" became "Mr. Sperren" when the locale was set to de_DE even though the property was marked as "Do not localize" in UI Controls in the report definition filter. To resolve this, the parameter 'pyskiplocalization' has been added for use in the RRFilters_logic and while displaying the select Values popup. | Reporting |
INC-168203 | 641337 | Improved performance for data flow runs | Nodes were intermittently going into safe mode after a service registry heartbeat failure. Investigation found that some of the activities were performing an Obj-Browse that invoked report definition logic to call the database classmap. This has been resolved by modifying the implementation for the initialization and caching of list of classes in a table. | Reporting |
INC-169055 | 646674 | Performance improvements for database queries and archiving | In order to improve the performance of database queries, repetitive unnecessary database calls have been removed, archival queries have been simplified, and diagnostic metrics were added. Optional batch requestors have been added to all archival services with their own DSS settings to allow processing more cases in parallel. It is recommended to create 2 additional indexes to help with the archival process. The indexes will be on: pegadata.pr_metadata (pyisparent, pyobjclass, pyarchivestatus) INCLUDE (pyinskey); pegadata.pr_metadata (pyisparent, pyarchivestatus) INCLUDE (pyinskey); |
Reporting |
INC-169856 | 649460 | Personalized table sort order limited | After implementing a personalized table, the query started adding more 'order by' sorts, causing system impact. This was traced to the pzPopulateSortOrder activity Implementation having different constants assumed for the same purpose (999 in one place and 99999 in another), and has been resolved by updating the logic in step 1 and step 2 to disregard sort orders higher than 999. | Reporting |
INC-170389 | 645001 | Updated authentication for report filter screen | If the report filter screen was shown first after clicking on the report link in the report browser, an error is generated for users but not for administrators. This has been resolved by registering the activity and adding a BAC registration section to the prompt filter section. | Reporting |
INC-175622 | 652279 | Screen reader announces report names | An update has been made to pyReportBrowserItem to ensure names of the reports on the report browser are read correctly. | Reporting |
INC-176205 | 655939 | Secure shared link generation added to scheduled reports | When a scheduled report with a link was sent in email, clicking the link displayed an access denied message. To support this use, logic has been added to pytaskoutputprocessor in the pega-scheduledtask-reporting and pega-scheduledtask classes that will create a secure encrypted URL using the PublicLinkURL function. | Reporting |
INC-176385 | 657671 | Corrected blank lines for hidden report filter criteria | When the report browser had five filter criteria for a report and only the last two were made visible due to conditions, three blank lines were shown above the visible filters. This was traced to the Report Definition column filter showing the grid row as empty space when "Filter Not Visible in Viewer" was selected, and has been resolved by adding an inline style to PzPromptGrid. | Reporting |
Security
8.6.1 Resolved Issues for Security
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-157095 | 638806 | Enhancement added for tenant-level authentication | In a multi-tenant PDC with a few tenants that utilize their own custom SSO, a pre-authentication activity inside a tenant that should block community access was also affecting tenants that did not have that pre-auth activity set. This was a missed use case and has been resolved by adding a tenantId hash in SchemePRAuth.makeUniqueSchemeName() to create the authServiceName. | Security |
INC-162434 INC-175897 |
640050 655467 |
LookUpList correctly executes during SSO login with model operator | After configuring SSO to create operators on fly using a model operator, a new user logging in for the very first time had their operator ID created using the model operator, but after update new users logging in to the system received the error "Only authenticated client may start this activity: RULE-OBJ-ACTIVITY @BASECLASS LOOKUPLIST". This was due to the methods used for additional security on the activity @baseclass LookUpList which allows it to only be run by authenticated users, and has been resolved | Security |
INC-163201 | 646912 | BrowserFingerprint updated | Security improvements have been added to the browser fingerprint process. | Security |
INC-166995 | 642440 | DeleteDocumentPg added to allow list | During performance testing with CSRF settings enabled, a '403 Forbidden' error was seen in the network trace when FinishAssignment called pyActivity=pyDeleteDocument on close action. This has been resolved by adding pyDeleteDocumentPg to the list of allowed activities. | Security |
INC-168837 | 646974 | CSRF token updated for use with OKTA login | An issue seen while connecting via OKTA has been resolved by updating the CSRF token validation for use with IDP initiated SSO login. | Security |
INC-169186 | 655538 | Disconnect button availability extended | A case was not refreshing when the disconnect button was selected while using the standard section for authorization grant type authentication. This was traced to a query executed to find a div with attribute pzInsHandle, but that attribute was not applicable in the user portal. To support this use, the query has been extended to be applicable for user portal (attribute data-ui-meta) and Dev Studio landing page. | Security |
INC-169310 | 649712 | Cache check added for SQL queries | When performing load testing, a high number of gets were seen for some SQL Queries. In order to improve performance, a check has been added in GlobalTrustStoreCacheImpl.java to assess whether the cache has been initialized or not. | Security |
INC-170423 | 648983 | Added catch for SAML WebSSO duplicate key exception | After logging in from SSO, closing the Pega window and opening it again resulted in the error "Unable to process the SAML WebSSO request : Violation of PRIMARY KEY constraint. Cannot insert duplicate key in object." This has been resolved by updating the session index handling and adding a catch for the duplicate key exception. | Security |
INC-171875 | 653893 | Skip restored for browser request CSRF token | Many SECU0008 alerts were seen in the production logs. This was the result of a CSRF token check on requests without pyActivity or pyStream, and has been resolved by restoring a conditional skip of the check as those other browser requests do not contain a CSRF token. | Security |
INC-173294 | 650235 | Mobile "Forgot Password" supports circumstanced rule | An enhancement has been added to support a circumstanced rule for the "Forgot Password" flow on mobile. | Security |
INC-175058 INC-175706 |
660934 659528 |
SSLContext created using protocol from REST connector rule form | After upgrading to IBM websphere v9.0.5.6 or higher, API calls Like REST, Connect-HTTP etc were failing to connect to endpoints using TLSv1.2. Investigation showed that although the connector was configured to send TLSv1.2, the ClientHello handshake was triggered for TLSv1.3. Because the SSLContext was created with highest version supported by protocol in the WAS container, this has been resolved by modifying the code to create SSLContext based on the the protocol selected in the REST connector rule form. Additionally, please note that the Connect-HTTP connector has been deprecated and the Connect-REST capabilities in the platform should be used instead. | Security |
System Administration
8.6.1 Resolved Issues for System Administration
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-161984 | 638856 | Web Tier busy threads released on timeout | Tomcat Web Tier Busy Threads were not being correctly released, causing stability and performance problems that included health check pings not receiving a thread to service the request so the node was marked as bad, users were quiesced, and the node replaced. Investigation showed the 'put' on the blocking queue did not time out when the queue was full and waited indefinitely, keeping the thread blocked. To resolve this, the system will use 'offer' on the blocking queue instead of 'put' to force thread release on timeout. In addition, debug logs have been added to understand when the offer (or Put) does not succeed and the state of the queue that is causing this issue; the debug logs for class com.pega.pegarules.session.internal.serverpush.RoboticAutomationImpl should be enabled only if the thread busy issue is observed and for limited time window while actively debugging. | System Administration |
INC-164794 | 637991 | Apache Commons libraries updated | Apache commons-codec has been updated to version 1.15 , and Apache commons-io has been updated to version 2.7. | System Administration |
INC-171587 | 652191 | Resolved Push Node Daily Information exception | The "Push Nodes Info Daily" agent was generating an exception on each of the nodes. This has been resolved by enhancing the PegaAESRemote code to handle the exception and get the node info locally, then push it to the console when it is not able to get it via the cluster management API. | System Administration |
INC-173162 | 650793 | Certificate match will use Subject Distinguished Name | Signature verification was failing due to the system not finding the matching root certificate for the chain. The root certificate was in the trust store, but the system found a different certificate first and that other certificate (an intermediate certificate) was not considered a valid certificate for validating the whole certificate chain. This was traced to filtering on the Issuer Distinguished Name (DN) instead of the Subject DN and was due to intermediate certificates potentially having the same Issuer as a root certificate (e.g. if that root certificate was used to create the intermediate certificate). To resolve this, an update has been made to check the Subject DN instead of Issuer DN. | System Administration |
INC-174298 | 650257 | Instance count logic updated | A performance issue was seen during update that resembled an upgrade hang. This was caused by a combination of incorrect logic in DDLGenerator.getInstanceCountForClass() around counting instances of 'core' classes and all of the site history-data- tables being mapped to the same table that had 1.4+ billion rows. This behavior has been addressed with more correct query logic while performing instance counts. In addition, instance count will be supressed during command line invocations (prpcUtils, platform upgrade). | System Administration |
INC-180479 | 659640 | DSS partition count setting made backward compatible | After update, the DSS to limit the number of partition counted was no longer working and instead used the default value of 20. This has been corrected and made backwards compatible. | System Administration |
User Experience
8.6.1 Resolved Issues for User Experience
Ticket # | Issue # | Title | Description | Product Area |
---|---|---|---|---|
INC-155070 INC-157367 INC-160805 INC-164892 INC-165277 INC-176960 INC-167747 |
637579 637946 640852 636539 645171 655522 649655 |
PDF generation corrected | Issues with PDF generation have been resolved by upgrading the PD4ML libraries to version 4.0.9fx5. | User Interface |
INC-155406 | 638704 | Clipboard security updated | Security has been enhanced for clipboard properties by restricting registration for readonly properties. | User Interface |
INC-157404 | 630694 | Adaptive Model report information exports correctly | Clicking export to Excel or PDF in the Prediction Studio Adaptive Model report was not working. Investigation showed the first double quote of the propositionName was getting replaced from & quot ; to "", which resulted in an error while performing openUrlWindow action. This has been resolved by adding a new helper handler, while creating context menu using Handlebars. | User Interface |
INC-157448 | 638923 | Latitude and longitude populated for CreateWork history | After enabling geo location in the casetype rule, when the case was created using the Create menu option from either Dev studio or Manager portal the Latitude and longitude values were set on the pxRequestor page and were available in the Case Audit history in the Map control. When the same case was created using CreateWork action configured on a button, it did not log the latitude and longitude values in the case Audit history. Investigation showed this was caused by a 'when' condition in the AddWorkHistory activity which checks the requestor page for latitude value and which had a null value when a createWork action was used to create the case. To correct this, the template metadata of the form will be populated with latitude and longitude values from pxRequestor page to be used in the latitude and longitude hidden fields. | User Interface |
INC-157860 | 633948 | Corrected error message display in right-to-left locales | When using the standard report definition view in the Arabic (ar_AR) locale, error messages for a filter condition were displayed with an incorrect extended horizontal scroll bar with white space. This was traced to the legacy popover styling causing an issue with locales that display text from right to left, and has been resolved by setting the default overlay left to 0PX for these locales. | User Interface |
INC-160839 | 643468 | Session timer corrected | Configuring pxsessiontimer in the Portal header to log users off after 30 minutes was not working as expected: users were still logged in the next day or after keeping the session idle for more than 30 minutes. After waking up the system, it was possible to search clicking on the search results resulted in being logged out. This was traced to the ShowLogoffTimer activity not being correctly registered, and has been resolved. | User Interface |
INC-161937 INC-169012 |
640263 651256 |
VMWare workspace One Mobile support added | Support has been added for the VMWare workspace One Mobile app by updating the BrowserUtilsRuntime file to add the necessary user agent. | User Interface |
INC-162426 | 638769 | Regex handling updated for Rich Text Editor spellcheck | When using the Rich Text Editor and performing a spell check, the spell checker was adding additional CSS to the property. This was traced to the presence of a unicode newline character causing the existing regex to fail to strip the style tags. To resolve this, regex handling for the unicode newline character in the style tag has been added. | User Interface |
INC-163198 | 637796 | Performance improvements for research path interaction | Research path interaction driver composite loading was taking an excessive amount of time due to RULE-HTML-SECTION @BASECLASS ERRORLIST being called multiple times. This has been resolved by changing the ErrorList Section to guard the getMessagesMapByEntryHandle API call with a condition "if (ClipboardPage.getMessageCountAll > 0)". | User Interface |
INC-163544 | 639299 | Accessibility corrected for Cosmos user portal left navigation panel | It was not possible to see the focused control label in the left pane of the Cosmos user portal because it was not expanding when its control received focus from tabbing. Investigation showed the class acting as a polyfill for :focus-within was applied only on the observed element when using Microsoft Explorer 11, and this has been resolved by updating the CSS selectors and ensuring the class is applied to every parent element down the DOM tree. | User Interface |
INC-163644 | 652967 | Error message handling added for nested page lists | When a multiselect referring pagelist(x).pagelist2() had an error message, the error was repeated for all pagelist(y).pagelist2() in the UI. This has been resolved by adding error handling for nested page lists by using registerErrorMessages for multiselect errors. | User Interface |
INC-163702 | 634968 | Path to image resource files updated for offline app | When using the offline app, "resource missing " errors were seen for some image files. This has been resolved by overriding the images folder path in the userworkform with the correct path to the webwb folder. | User Interface |
INC-164012 | 640038 | Source edit with formatting resumes process automatically | When opening a paragraph rule and clicking on Actions > checkout out to branch, the rule refreshed and the modal never appeared to allow the selection of a branch on the current application. This was an inadvertent side effect of work done to resume the event queue if it was paused when applying styles, and has been resolved by modifying the work so it resumes the action sequence only when source mode is initialized in the Rich Text Editor. | User Interface |
INC-164620 | 640661 | jQuery variable handling updated for mashup | After update, embedded mashup was not working. The browser console log showed the error "Uncaught TypeError: $ is not a function at pega.web.manager._initGadgets (PegaReg?pyActivity=pzIncludeMashupScripts:69)". The $ function belongs to the jQuery library, and investigation traced this to a difference in variable handling. This has been corrected by updating the referring jQuery to use the variable 'jQuery' instead of '$'. | User Interface |
INC-164979 | 650153 | Column values displayed in modify filter of grid | Column values were not displaying in the modify filter after cancelling the ‘due date apply filter’ condition in grid -Go to My Work -> Work Queue -Apply filter condition for Program and Country/region columns. This was traced to the pysymbolic date value being posted after selecting and before applying the filter, and has been resolved. | User Interface |
INC-165964 | 656816 | Harness context set for modal dialog on interaction portal | An AddDelete refresh condition on a page list property was not triggering a ReloadSection as expected. This was a special use case in the interaction portal where a modal dialog was opened but the harness context was not set properly, and has been resolved by ensuring the harness context is correct. | User Interface |
INC-166444 | 642112 | FlexModalTemplate Modal window size consistent | The FlexModalTemplate modal window size was changing on second click. This was a missed use case for dirty dialog CSS implementation, and has been resolved by moving the CSS necessary into the isDirtyDialogOpen if condition. | User Interface |
INC-166706 | 647478 | Handling added for Rich Text Editor base tag in email | Clicking on an email interaction case from the worklist was not opening the case. This was traced to a base tag present in Rich Text Editor content which impacted security protections, and handling has been added to remove this tag. | User Interface |
INC-167611 | 652467 | Business users can move dashboard widgets on production portal pages | Business users were not able to use "Edit dashboard" to move dashboard widgets in production portal pages. This was a missed use case of using an operator with different security level, and has been resolved by using the control pzUserDashboardIncludeScript instead of including pzpega_dashboard script directly in the UserPortal harness. | User Interface |
INC-168414 INC-176971 |
641034 655219 |
Web Mashup works from nested iframe | Web Mashup was failing with the error "Browser cookies must be enabled for PRPC Internet Application Composer to function" when it was configured within a nested iframe setup. This has been resolved by adding a cookie check and the appropriate handling for this usecase. | User Interface |
INC-168695 | 643015 | String conversion logic updated for toFixed function | The toFixed function of pzpega_ui_formatNumber.js was incorrectly converting a string while formatting the value. This potentially caused the UI to hang until manually refreshed. To resolve this, the logic has been updated to convert the string to a number before calling toFixed(). | User Interface |
INC-169203 | 645694 | Robotics Desktop Automation correctly runs on subsequent tabs | When using Customer Service (CRM) to call Robotics Desktop Automation (RDA) from a data page, closing the first interaction tab after the RDA automation was completed resulted in the automation not being triggered for the second tab. If the first tab was not closed, the automation on the second worked as expected. Investigation showed the attachOnUnload was unregistering the client actions for all the open tabs and the attachOnLoad was not being called on reload. This has been resolved by updating attachOnLoad so it is now called with InvokeOnReload as 'true' to register client action for the tab in focus. | User Interface |
INC-169796 | 649261 | Null check added for pyModes setting | The column filtering function was not working after update from Pega 8.1 to Pega 8.5. This was traced to pyModes being set as null for page group properties, and has been resolved by adding a null check before adding the type to avoid getting an improper result from the Formatter Rule-Utility-Function. | User Interface |
INC-169866 | 653549 | View content type updated to FIELD | After update table grids were not visible in the UI for some operators while other operators with the same access group were able to see the same table with the result rows. Investigation showed that the personalized view stored in 8.1.x did not have a content type set, causing all of the columns to be hidden after update to 8.4+ due to the personal view not matching with the design time view. To resolve this, the content type has been updated to FIELD for views. | User Interface |
INC-170258 | 645041 | Removed unneeded query parameter in UI | When using an Ajax container without a dynamic container, a refresh harness / section event call related to pyBlockUnregisteredRequests was not being properly registered, resulting in a 403 error and the message "Unregistered request encountered ..". This was traced to a "pyDataTransform=" query parameter that was present in the PZPEGA_UI_MICRODC file, and the parameter has been removed to resolve this issue. | User Interface |
INC-171121 | 648132 | Filter popup persists correctly | When the Apply filter option was selected for a table configured with a page list property as source, the filter popup appeared on the screen but disappeared after 3 to 4 seconds. This has been resolved by enabling the stretch for tabs option in the layout group. | User Interface |
INC-171352 INC-175322 |
653692 658651 |
Focus set correctly on the modal window in theme-Cosmos | In theme-Cosmos with touch enabled, clicking on a button to open a modal window set the focus on the background instead of in the modal window, forcing tabbing through the full page to reach the modal window. This was traced to the templates not using the pzModalCancel control which has the necessary container_close for the modal dialog close icon, and has been resolved by adding a check to set the focus correctly. | User Interface |
INC-172178 | 655022 | TransID updated to trim spaces | While preparing newTransID from a response, special characters slipped into "newTransID" param value and generated an error. This has been resolved by updating the system to trim spaces from newTransID. | User Interface |
INC-172483 | 651709 | Filtering updated for UI markup | Filtering has been added to the UI code to preserve the browser display appearance but remove inappropriate or potentially insecure markup. | User Interface |
INC-172521 | 651552 | Email template content visible in user application | An issue was seen with email templates functionality where the body content given during the email template creation was not visible when the template was used in the application by an end user. This was a missed use case for recent security updates, and has been resolved. | User Interface |
INC-173238 | 656505 | Restored missing API call for icon navigation | After logging in and searching for a bond, navigating to the home page without clearing the search string from the bond screen resulted in a pop-up warning to remove unsaved changes. Clicking on OK and then attempting to click on the list index number available below the table resulted in an error. Investigation showed pzCTkn was missing for the API calls triggered by clicking on the icon; this has been resolved by updating the pega_yui_connection.js file. | User Interface |
INC-173345 | 655039 | Check added for empty geolocation values | Latency issues were traced to Geolocation-related errors in the log files. To improve performance, changes have been added to check for empty pyLatitude and pyLongitude before adding in the postdata of an async request. | User Interface |
INC-173382 | 653443 | Security update for previews | Security updates have been made around the sanitizing of preview streams. | User Interface |
INC-174020 | 650888 | Performance improved for Directed Web Access (DWA) | Slowness when using a Directed Web Access (DWA) link has been resolved by refining the code of the PZPEGA_UI_DOC_EVENTSCONDITIONSCHAINING script to improve performance. | User Interface |
INC-174921 | 652321 | Client Side required validation applied to dropdown Date field | The mandatory validation on submit of the screenflow screen was not being triggered even though 'Required' was configured on the Date field. This was traced to the validation being applied to a hidden field when the date time control is configured in dropdown mode, and has been resolved by adding a condition for validating this configuration. |
User Interface |
INC-175990 | 652088 | Browser check added to ensure on-click event trigger | Clicking Submit from the screen after opening the case from the worklist did not trigger the click event action when using Microsoft Internet Explorer 11. This was due to a change in that browser, and has been resolved by adding a check. | User Interface |
INC-176403 | 653576 | Security updated for buttons | Cross-site scripting protections have been updated for Button controls. | User Interface |
INC-176734 | 655178 | Invalid manual time value stops progress and displays error | When an invalid time was manually entered, eg. 11, the system previously remained in an error state until the time was corrected. Post-update, the current time of the user's session / browser was populated into the time field when an invalid time was entered. Although the error still displayed, the current time was saved and the user could continue. This has been resolved by adding a condition to show the entered time value and not continue if the entered time value is invalid. | User Interface |
INC-177263 | 655830 | isFutureDate edit validation fires correctly | The date value entered was not getting converted to the user-specific time zone and resulted in an incorrect value for validation when using isFutureDate. This has been resolved by adding an update which will convert the date value to the specific time zone before comparing it with the current date. | User Interface |
INC-177852 | 658654 | Added UI handling for error message on Delegated data table | It was not possible to navigate in the UI if there were error messages shown on properties in a delegated data table until that column was filled with a value. To resolve this, an update has been made to prevent reload or save on scroll. | User Interface |
INC-178639 | 658056 | Improved accessibility for Autocomplete Role | Accessibility issues with Autocomplete Role have been resolved by adding role = "combobox" for autocomplete in template mode. | User Interface |
INC-179378 | 661174 | Repeating Layout renders correctly after update | Repeating dynamic layout was not working properly after update. This was caused by a missing active class, and was traced to changes made in the pzpega_ui_layoutgroup function where reload happens on close of a modal dialog. To resolve this, a safe check has been added to setInActiveLayout in layoutgroup.js. | User Interface |
INC-179622 | 659155 | Flow action list available in navigation menu | After update, only one flow action which had highest likelihood was visible when an assignment in a flow had multiple flow actions. Alternatives were not visible in the Action menu. This was an unintended side effect of work done to simplify the Actions menu which did not consider the usecase of an alternate flow action being configured, and has been resolved by restoring the flow action list to the navigation menu in pyWorkCommonActions. | User Interface |
INC-179883 | 661615 | Pega reference tags persist | Cross-site scripting protections have been updated to allow Pega reference tags. | User Interface |