Release Notes for Oracle Health Insurance Enterprise Policy Administration Release 4.26.1.0.0

This document contains the release notes for Oracle Health Insurance Enterprise Policy Administration Release 4.26.1.0.0.

Version compatibility: Oracle Health Insurance Enterprise Policy Administration Release 4.26.1.x is only compatible with other Oracle Health Insurance applications release version 4.26.1.x unless explicitly stated otherwise.
18 months after the release date this release will be End of Life. After this date Oracle is not responsible for performance or security issues.

Enhancements

ID Summary Patch

CPN-3502

Improved query efficiency for configuration entities with dynamic data tables

This enhancement optimizes how the system handles queries on configuration entities with dynamic data tables (such as message groups). Previously, the system repeatedly fetched information from these dynamic data tables, resulting in slower access. With this release, the system retrieves data from memory whenever possible, delivering faster performance.

CPN-3641

Enhanced PHI logs access using base views

In SaaS deployments, PHI access logs are stored in the database for 60 days in the PHI_LOG_EVENTS table. Logs older than 60 days are moved to OCI Object Storage by a daily database scheduler job. Prior to this release, customers could query recent logs (≤ 60 days) using the logphievents generic API, but accessing older logs required raising an SR with the AMS team to retrieve files from OCI Object Storage.

This enhancement improves the customer experience by enabling PHI access logs to be extracted directly through base view generation. The PHI_LOG_EVENTS table is now included in base view generation, allowing customers to schedule a daily extract of the PHI_LOG_EVENTS_BV base view and load the extracted data into their own data warehouse for analysis and reporting.

An access restriction is created for PHI_LOG_EVENTS_BV, but it is not automatically granted to the ALL_VIEW_ACCESS_ROLE.

4.25.1.0.9

CPN-3676

Upgrade to Java 21, Jakarta EE 9.1 and WebLogic 15.1.1

This enhancement upgrades Java to version 21, Java EE to Jakarta EE 9.1 and WebLogic to version 15.1.1. See "Additional Upgrade Steps for Installation" below and the installation guide for more details.

CPN-3775

Allow purging of data with a 7-day retention period in non-production environments

The data purge process previously required a minimum retention period of 30 days. This enhancement allows to configure a lower retention period (e.g: 7 days) specifically in non-production environments, while production environments maintain the 30-day policy. This change will help optimize disk space in non-production environments.

4.25.1.0.18

CPN-3799

Operational Reports and Data Transfer

The following changes are made in Operational Reports and Data Transfer:

  • In the previous release, the CSV files generated by the Data Transfer IP did not include a header row. In this release, CSV files include the header.

  • In the previous release, when a query returned no records, the Data Transfer IP responded with HTTP 200 with an empty response body. This behavior is changed to return HTTP 204 (No Content).

  • Two new error messages are introduced in the Operational Reporting IP. The IP returns an HTTP 422 response with one of the following error messages:

    • OHI-IP-ORV-008: View {0} does not exist

    • OHI-IP-ORV-009: Access restriction grant is missing to query the view {0}

  • Default PAR (Pre-Authenticated Request) URL expiry time has been changed from 30 minutes to 1 minute.

  • The following issues specific to On-Prem deployments are fixed:

    • Incomplete or truncated responses when querying very large data.

4.25.1.0.9

CPN-3862

Optimized evaluation of logging parameters in dynamic logic

When debug or trace logging is turned off, certain log statements may still trigger additional data retrieval or calculations in the background. This can slow down execution or cause errors, for example when trying to log a null value.

With this enhancement, such log statements are automatically guarded. When debug or trace logging is disabled, the associated expressions are skipped, avoiding unnecessary work and improving overall efficiency.

Example:

log.debug("Claim ID: {0}", claim.getId())

In earlier versions, claim.getId() was executed even if debug logging was disabled. If claim was null, this resulted in a NullPointerException, even though debug logging was turned off. With this enhancement, the expression is executed only when debug logging is enabled.

This enhancement applies only to new or recompiled dynamic logic.

CPN-3869

Expose Foreign Keys and Unique Keys on Base Views

The Data Transfer functionality requires some understanding of the data model and the keys between different Base Views. A Base View does not have a key on its own, but the underlying tables do.

This enhancement introduced two new tables:

  • BVG_FOREIGN_KEYS, representing the foreign key relations between two Base Views

  • BVG_KEYS, representing the unique and primary keys on a single Base View

The data from each table can be accessed by a Base View itself.

CPN-3926

Automatic heap histogram collection for improved memory analysis

A heap histogram is a lightweight memory dump that provides detailed information about objects in the heap, including their class names, sizes, and counts. It helps identify memory leaks, understand object allocation patterns, and optimize memory usage.

With this enhancement, heap histograms are automatically captured in SaaS deployments when the heap memory reaches a critical state, enabling proactive and improved memory analysis.

4.25.1.0.7

CPN-3973

Groovy 5 upgrade

This release includes an upgrade from Groovy 4.x to Groovy 5.0.7. This upgrade introduces performance enhancements and new syntax options. For detailed information, please refer to the Groovy 5.0 Release Notes.

Some of the key breaking changes in Groovy 5 include:

  • Stricter handling of duplicate imports: In earlier versions of Groovy, the compiler was lenient when finding duplicate imports or an import and a similarly-named class definition. While having duplicates was considered poor style, the compiler followed the lenient behavior of letting the last definition "win". From Groovy 5, the compiler now follows Java behavior and gives an error in such cases.

  • New default imports from java.time: The java.time packages are an additional default import in Groovy 5. If you have classes in the default (no) package with the same names as classes in the java.time package, you will need to rename those classes, or place them in a package, or use an import alias, to avoid conflicts. The most common classes that might conflict are Year, Month, and Duration.

For additional details, see the Breaking changes section in the Groovy 5.0 release notes.

Not all internal compiler or runtime changes are fully described in the Groovy 5.0 release notes. Customers are therefore strongly advised to perform comprehensive unit and regression testing of the dynamic logic to ensure compatibility with Groovy 5.

To enable compatibility with Groovy 5, the bytecode of existing dynamic logic is reset during the upgrade. This reset causes the application start-up time to be slightly longer on the first startup after the upgrade, as the dynamic logic are recompiled at startup time. Future application restarts do not recompile this bytecode, so subsequent startups are faster.

CPN-3975

Optimized memory usage during dynamic field/records retrieval and activity processing through chunking strategy

Memory utilization is improved during the retrieval of dynamic fields and records in the dynamic logic. A new predefined method, getDynamicRecordsByType, is introduced to retrieve dynamic records based on the field usage name (refer to "Predefined Methods" in the Developer Guide for details).

Write access is enabled for all dynamic fields of attachedPolicyData within "Policy Calculation Period Segments", allowing these fields to be modified using Groovy-style property access instead of the setDynamicField method (see "Policy Calculation Period Segments" in the Developer Guide).

Additionally, activity processing chunking is introduced to further optimize memory usage. When enabled, activity groups are processed based on a configurable chunk size (default 100 MB), and transactions are committed once the defined threshold is reached to prevent excessive memory consumption, after which processing continues for the remaining activities of the group within the same iteration.

4.25.1.0.18

CPN-4025

Security logs retrieval via API and data transfer

Prior to this release, security logs were written only to the file system and were not accessible through any API. With this enhancement, SaaS customers can now retrieve security logs using a dedicated API as well as through the data transfer feature.

A new API, logsecurityevents, is introduced, backed by the new table LOG_SECURITY_EVENTS. A corresponding base view, PHI_LOG_SECURITY_EVENTS_BV, is now available to support extraction of security logs via the data transfer feature. This allows customers to schedule regular extracts (e.g., daily) and load the data into their own analytics or SIEM systems.

Access to security logs is controlled:

  • The access restriction for PHI_LOG_SECURITY_EVENTS_BV is created but not granted automatically to ALL_VIEW_ACCESS_ROLE.

  • A dedicated access role must be explicitly granted to users who are allowed to extract security logs.

The table LOG_SECURITY_EVENTS is included in auto-purge with a default retention period of 7 days.

4.25.1.0.9

CPN-4206

Introduced additional attributes in security logs for enhancing log auditing and parsing capabilities

Introduced the following new attributes in security logs:

  • eventCategory: All security events are categorized into distinct categories. This attribute holds the category assigned to the security event being logged.

  • eventType: Brief summary of the security event being logged.

  • eventOutcome: Outcome of the event. Possible values: Success or Failure.

  • eventSeverity: Describes the severity of the event. Possible values: INFO, WARN or ERROR.

  • httpStatusCode: HTTP response code of the request for which the event is being logged. This will be null whenever the code is not deterministic at the time of event.

  • failureReason: Briefly describes the reason of failure. This attribute will be non-null only where relevant.

  • apiEndpoint: Holds the API endpoint to which the request was sent.

  • sessionId: Identifies the session provided by the caller. Applicable to SaaS and UI requests.

  • accessTokenId: Identifies the access token associated with the request. Applicable to SaaS and non-UI requests

4.25.1.0.16

CPN-4207

Enhanced PHI access logs to include access scope, session ID and access token ID

Enhanced PHI access logs to include three new attributes:

  • accessScope: Indicates whether a single record or multiple records are accessed within a transaction.

  • sessionId: Identifies the session provided by the caller. Applicable to SaaS and UI requests.

  • accessTokenId: Identifies the access token associated with the request. Applicable to SaaS and non-UI requests.

4.25.1.0.16

CPN-4302

Configurable PHI Event Logging for Data Transfer IP

PHI event logging for Data Transfer IP is now configurable using the system property ohi.datatransfer.logging.phi.events.enabled.

By default, this property is set to true, so existing behavior remains unchanged and PHI access events continue to be written to LOG_PHI_EVENTS when PHI data is accessed during Data Transfer IP operations.

When this property is set to false, PHI access event records during Data Transfer IP operations are not written to LOG_PHI_EVENTS.

Before disabling PHI event logging, customers should review their audit, compliance, and security requirements.

NXT-26542

Exposed generic API for deployment metadata and extended User Preferences to support switching between customer and browser timezones

A generic deployment metadata API is now available to retrieve the customer time zone. The User Preferences API includes a new browserTimeZone flag, which defaults to false. When set to true, timestamps are displayed in the end user’s browser time zone. When set to false, timestamps are displayed in the configured customer time zone.

4.25.1.0.18

NXT-30348

Reinsurance Regimes

This enhancement introduces a dedicated Reinsurance Regime feature that separates reinsurance configuration from benefit configuration, simplifying the management of reinsurance rules and making them easier to configure and maintain. It supports the application of reinsurance treaties during claims adjudication based on configured business rules and provides a clear calculation of the insurer’s retained amount and the reinsurer’s share of the claim.

NXT-31011

Access Restriction on Download Feature

This enhancement links the ability to download data from the JET user interface to a user role. Only users with access to the Download Data restriction grant can download data from JET UI using the download action.

4.25.1.0.5

NXT-31023

Search Result Download in CSV Format

This enhancement addresses the issue of referenced fields being downloaded in one column as JSON data in the CSV exports from UI. With this enhancement all the displayed data of a reference field will be downloaded into separate columns.

4.25.1.0.7

NXT-31178

Upgrade to JET version 19.0.0

This enhancement upgrades the JET (JavaScript Extension Toolkit) core library to version 19 from 17. This uptake includes the required dependency, tooling, and compatibility updates to align the UI with the OJET 19, enabling continued support for the latest Oracle JET components, framework fixes, and runtime improvements.

NXT-31592

Conditionally disable actions for the claims and policies page

This enhancement introduces the ability to disable the following buttons conditionally:

  • Submit claim

  • Submit policy

  • Edit policy

4.25.1.0.6

NXT-31594

JET: Save user preferences for table displays

This enhancement enables you to save your table column selections and column widths on supported pages. After you adjust a table, select Save Preferences to save your settings for that page.

Where it applies

  • System- or floorplan-driven pages that use following templates when the flexColumn property is true (Note: Default setting is true):

    • View/Edit List

    • Search Object Table

Supported pages and tables

  • Product Definition

    • Product Service Definition table in products and across products page

  • Claims

    • Draft provider pricing clause table within worksheet and across worksheet page

    • Fee Schedule lines

    • Provider Pricing Clause

    • Claim lines table within claims page

  • Common

    • Reference Sheets

4.25.1.0.15

NXT-31617

Increase the length of scope attribute on OAuthClientCredentialsGrantConfiguration entity

The scope attribute was limited to 100 characters, which was insufficient to store full scope values provided by Oracle Integration Cloud. Its length is increased to 200 characters.

4.24.1.0.11, 4.25.1.0.1

NXT-32017

UI: Additional Features Advanced Search

With this enhancement, the following multiple capabilities are added to the advanced search:

  • Ability to select query operators for different search criteria.

  • Ability to specify selected criteria as mandatory in advanced search.

  • Multiple adjustments to reference sheet lines, page searches, and sort, including the ability to search on nulls, the ability to sort on start and end dates, view last updated by, and time details.

4.25.1.0.13

NXT-32037

User Interface - Additional tab features

Added a 'Close Other Tabs' option via a three-dot menu to close all but the active tab, auto-scroll to keep the active tab visible, and improved tab closing behavior to fall back to the previous tab when closing the last tab.

4.25.1.0.13

NXT-32464

Non-Unique Provider Identifiers

This enhancement enables the configuration setting that controls whether a provider identifier is unique across providers.

NXT-32471

Improve handling of HTTP error: 401 UnAuthorized in JET UI

With this enhancement, OHI uses system property OHI_DEPLOYMENT_TYPE to handle HTTP 401 error. When this property value is set to "CLOUD", this will force a "401" response to re-direct the OHI JET login page when the IDCS OpenID session cookie is missing/expired.

4.25.1.0.16

NXT-32524

Table component improvements - Usability with editable row

Introduced check (Apply) icon as a table row-level action in edit mode. Clicking the check icon returns the row from edit mode to view mode. Actions in other rows will be disabled until the user clicks on the check icon of the current row being edited. Editable row remains in edit mode and persists the data when the user clicks outside the table or switches to another browser tab.

4.25.1.0.8

NXT-32617

UI: Ability to exclude trailing wildcard with like search

This enhancement allows excluding the automatic inclusion of the trailing wildcard for like search in quick search, advanced search, and lookups by setting the application property ohi.ui.likesearch.wildcard.enabled to false.

The system also auto-truncates the leading and trailing white space for searches.

4.25.1.0.8

NXT-32621

UI: Additional Features Quick Search

With this enhancement, the quick search component is extended, and it will be possible:

  • To include all types of fields in the quick search.

  • To have query operators like between, less than, greater than, etc, configurable in quick search.

  • To set specific search criteria flagged as mandatory.

4.25.1.0.8

NXT-32629

UI: Expandable "more" section in tables

With this enhancement, the overflow region for the table ("More" link) is now expandable to a two-column layout, allowing more information to be viewed at once.

4.25.1.0.8

NXT-32633

UI: Additional Features Sort

With this enhancement, the sort component is updated to display null values based on the sort order, that is, for Default and Criteria:

  • If the sort order is descending, nulls last is applied.

  • If the sort order is ascending, nulls first is applied.

It is now possible to specify sorting criteria for a multi-value property (list) configuration in a form and region.

4.25.1.0.13

NXT-32962

Implement Max Row Limit for Tab-Result Component

This enhancement introduces a maximum row limit of 100 for the Tab-Result Component. If the number of rows in the tab results exceeds 100, it is recommended to apply search criteria to view more records.

Documentation Links:
Developer Guide - Tab-Results

NXT-33004

Copy Action for Duplicating Records on HRR Pages

The Copy Action is available when the metadata indicates that cloning is supported for a resource. It allows users to quickly duplicate an existing record by providing a new functional key. The system pre-fills the remaining values from the original record (excluding system-generated fields), allowing users to modify and save the new record while keeping the original record unchanged.

During cloning, the following child entities are not copied: User Roles for Access Roles, Relation Identifiers for Persons, and Provider Limit Rules for Provider Limit Categories.

Modifying individual child records during the clone operation is currently not supported for Access Restriction Grants under Access Roles, Partial Provider Pricing Clauses under Pricing Options, and Diminishing Rate Blocks, along with nested block amount and size lists, under Diminishing Rates.

4.25.1.0.19

NXT-33070

Improved Multi-Select Behavior for Row Selection in Tables

The record-selection behaviour has now been updated to follow an additive selection model, ensuring that selecting a record no longer clears existing selections. All previously selected records will remain selected and will not be unintentionally deselected.

Prior to this implementation, when user selects multiple records using checkboxes, clicking anywhere on a another row (outside the checkbox) would deselect all selected records except the one that was clicked.

NXT-33394

UI: Search Object - Table template to support edits

This enhancement introduces the ability to inline-edit table data on the search page, built on the 'Search Object - Table' template.

NXT-33488

Remove outer join for 'And' mode quick search

As part of this enhancement outer join is removed from "AND" mode based quick search and selection pop-up in LOV field. Also, outer join is removed for searches on insurable entity field in JET UI when used in quick search "OR" mode

4.25.1.0.13

NXT-33659

Disable user location based time conversion

JET UI no longer relies only on the user’s browser timezone for datetime display. This helps prevent incorrect time conversion for customers operating across different geographic locations. The customerTimeZone, configured in the deployment metadata table during application installation, is used by default by JET UI. Users can override this through the "Use Browser Timezone?" option in the Preferences dialog, after which the UI will use the browser timezone. If customerTimeZone is not configured or is invalid/unsupported by JET, the UI falls back to the browser timezone.

4.25.1.0.18

NXT-33697

UI: European date/number formatting for English Language

With this enhancement, support is added to keep the UI in English language while using European date and number formats (e.g., dd/MM/yyyy and 1.234.567,00), when user sets 'en‑EU' in the existing ohi.ui.default.locale system property. If the property is not set, date and number formats continue to follow the user’s selected locale (language + region), with no change in behaviour.

4.25.1.0.15

NXT-33718

Extended user preference - Reorder and Auto-commit

With this enhancement it is now possible to reorder table columns as per user’s preference. Also, the save button to store preference is replaced by auto commit feature.

This feature is available for all pages based on the following floor plan template:

  • View and Edit List Table

  • List View - Table

This feature is also available for selected pages which are not floorplan based:

  • Common Pages like Reference sheets.

  • Claims page claim line tab.

  • In Policies application, pages like Premium schedule lines, Adjustment lines, and Fee schedule lines.

4.25.1.0.18

NXT-33750

Enhance UI download functionality to include all search results based on query criteria.

This enhancement expands the UI download functionality, allowing users to export the complete set of search results that match the active query across all download-enabled use cases in the application.

POL-10667

Operational Data Purge API

This enhancement introduces the ability to remove operational data that has aged beyond a configurable retention period. Operational data consists of policies and their related objects and group clients.

POL-14575

Removal of OHI_ENROLLMENT_RESPONSE_LOB property

This enhancement removes the ohi.ws.enrollmentresponse.request.lob property and lineOfBusinessCode from the enrollment (request).

POL-15381

Exclude Commissions Transactions for Invoice

This enhancement introduces a new parameter 'excludeComFromFinTransSet' for the invoice integration points. This new parameter controls whether Commission Financial Transactions are included in the same transaction set as the Premium Transactions.

POL-15385

Hosted Transaction Tracking

This enhancement introduces the capability to persist details on hosted transactions as described by the SaaS Service Description document. Every premium calculation, example calculation, quote or processed policy (enrollment) is logged in a dedicated table.

POL-15555

Accept enriched enrollment requests

This enhancement introduces the ability to access user-defined attributes included in the enrollment request payload, within the context of the enrollment response definition groovy function. By enabling the option to put in additional parameters and use them while building a response payload, the response can become more concise to the specific situation of the claim.

4.24.1.0.14, 4.25.1.0.3

POL-15745

Refund process for unapplied payments

This enhancement introduces (Australian localization only):

  • An updated refund process for end-dated policies that keeps payment registrations that cannot be applied in status New, instead of marking all registrations as Applied.

  • Creation of a REFUND_MEMO registration as part of Apply Registrations process with an estimated refund amount for end-dated policies.

  • Tracking refund offsets applied to each payment registration during the Process Registrations process.

  • Additional business rules that prevent changes to applied registrations.

POL-15962

Shadow Calculation Results

This enhancement introduces the ability to configure premium schedules and adjustment rules that do not count towards the billed premium.

Instead the results of these calculation serve as the basis for the generation of accounting details and service as intermediate results for other subsequent premium adjustments.

POL-16056

Store Long Addresses

The character limit for the "Additional Address" fields has been increased from 60 to 250 characters. This change applies to the following fields:

  • ADDITIONAL PART 1

  • ADDITIONAL PART 2

  • ADDITIONAL PART 3

This update affects Relation Entities.

4.25.1.0.2

POL-16189

Minimal group client IP response

This enhancement introduces the ability to control the contents of the response of the group client IP. Sometimes, knowing whether the response was processed successfully or not is sufficient. An optional parameter named 'response' controls the response content. When response=minimal, the response payload does not include the group client details.

POL-16469

POL-16598

Detecting & resolving duplicate message transformation task.

  1. If a more recent transformation task exists, the older task is stopped to avoid duplicate tasks. This applies only to the Policies application.

  2. Only tasks with an Errored status can be restarted.

4.25.1.0.9

POL-16632

Set policy enrollment event text parameters

This enhancement introduces the ability to set custom text parameters in business event messages (Business Policy Enrollment events) through the business event dynamic logic condition. Furthermore, this enhancement enriches the functionality of the business event dynamic logic condition for evaluation of the Business Event Rules:

  • Every change that matches the business event rule leads to a policy enrollment event.

  • The JSON payload attached to the policy enrollment event is limited to the specific changed object.

  • The changed or added object is added as an input parameter of the business event dynamic logic condition.

  • A new predefined method, getActivePolicy, is introduced that can be used for comparison in the business event dynamic logic condition.

4.25.1.0.6

POL-16635

Undo Persisted Accounting Details

This enhancement allows to undo persisted accounting details when financial messages are unsent.

In addition, the following operations/batches are adjusted to allow accounting to be persisted:

  • Generate Fee and Produce Invoice for a Policy.

  • Generate Fee and Produce Invoice for a Group Account.

POL-16770

Ability to configure function change event rule for additional entities

This enhancement enables the use of function change event rules on the following entities:

  • Address

  • Relation Identifier

  • Attached Policy Data

  • Registration

4.25.1.0.3

POL-16791

4.24.1.0.13, 4.25.1.0.3

POL-17172

Policy Processing Errors

With this enhancement, the policy page always displays the technical processing errors irrespective of the policy status

4.25.1.0.3

POL-17288

Support for Advanced payments

This enhancement introduces ability to support advanced payments. Advanced payments are calculation results produce using run and produce invoice much before the billing date. Premium calculation activity today reverses results which are beyond the due billing cycle. This behavior is made configurable by adding a new system property ohi.policies.calculate.future.calculationresult.reversal

4.25.1.0.1

POL-17301

Additional Dynamic Fields on Policies entity.

This enhancement increases the number of single-value non-time-valid dynamic fields that can be stored on the Policies entity.

4.25.1.0.1

POL-17431

Providers - Service Address - Store Long Addresses

The character limit for the "Additional Address" fields has been increased from 60 to 250 characters. This change applies to the following fields:

  • ADDITIONAL PART 1

  • ADDITIONAL PART 2

  • ADDITIONAL PART 3

This update affects Provider entity.

POL-17575

Reset a value using floorplan conditions

With this enhancement, a new optional floorplan property resetValue is introduced, which can be used within the condition block to reset the value for a field.

4.25.1.0.3

POL-17674

Extended the field length for agent and broker entities.

This enhancement extends the field length characters for the following fields on agent and broker entities.

Broker : Name (length to C200) Agent : First Name (length to C200), Middle Name (length to C500)

4.25.1.0.4

POL-17681

Quote processing without temporary policy persistence

The Quote IP is redesigned to calculate quotes without temporarily storing policy data in the database. This reduces unnecessary database writes during quote calculation while preserving the existing premium calculation behavior. A new system property ohi.policies.quote.flush.enabled controls this behavior. This enhancement is backported to 4.25.1.0.19 and higher versions.

Default behavior in 4.26.1

The default value is false, which uses the new quote processing path without database writes. Setting it to true enables the previous database write behavior for compatibility. We recommend using the default value by leaving this property unset. This property will be removed in a future release.

Default behavior in 4.25.1

The default value is true, which retains the existing behavior for backward compatibility. Setting it to false uses the new quote processing path without database writes. We recommend thoroughly testing Quote IP use cases after setting this property to false and before promoting the change to production.

4.25.1.0.19

POL-17690

Integration Point’s design updated to handle code references case-insensitively.

After this enhancement, Integration Point’s design updated to handle code references case-insensitively (e.g. brandCode, policyCode, addOnCode), so values like "abc" match an existing "ABC" instead of causing update failures or unique-key violations.

POL-17946

Generic Auditing Framework

This enhancement introduces a Generic Audit Framework in OHI to provide standardized tracking of record-level and field-level changes across supported entities. It captures create, update, and delete actions along with details of what changed, who performed the action, and when it occurred. A new API allows users to retrieve audit history with filtering and pagination, while built-in access controls ensure audit visibility aligns with entity, record, and field-level permissions. Audit tracking applies only to user-driven or directly modified fields and does not include technical or system-generated (calculated) fields.

Audit API resources use separate access restrictions instead of inheriting those of their parent resources. Therefore, users with access to a resource, such as Policies, may still require an additional Audit API-specific grant.

The need to grant separate Audit API access will be removed in the next patch. Users with access to the main resource will automatically be able to access its Audit API.

POL-18132

UI: Conditional display of row-level actions: edit and delete for tabs.

This enhancement introduces the ability to control the display of actions (edit/delete) through initconditions.

4.25.1.0.13

POL-18136

Disable source change log aggregation for the connector configuration

With this enhancement, it is now possible to:

  • Disable aggregation for source change logs when generating outbound messages using the connector configuration.

  • Include a unique correlation ID as part of the outbound request header.

  • Access aggregate change event from within the Message Transformation dynamic logic.

4.25.1.0.9

POL-18358

Improved activity notification tracking and recovery by migrating to the OHI task-based framework.

This enhancement migrates activity notification processing to the OHI task-based framework. As a result, notifications are easier to track, support, and recover when delivery is delayed or fails.

POL-18557

Worklist Framework

This enhancement creates workitem when subject (policy, claims or authorization) cannot be processed automatically the system creates a work item and routes it to the appropriate queue. A user with access to that queue can fetch or be assigned the work item, review the pend reason, take the required action, and submit the subject (policy, claims or authorization).

POL-18558

Introduced Workitem data model and APIs to support configurable queue-based processing , including assignment controls, status tracking, and hold history.

This enhancement introduces workitem data model and APIs to support configurable queue-based processing , including assignment controls, status tracking, and hold history.

POL-18587

Extend ADD-On Entity to support Dynamic Records

This enhancement introduces dynamic records to Add-ons

4.25.1.0.18

POL-18631

Increased length for street and city address fields

With this enhancement, the 'street' and 'city' fields for relation addresses and provider service addresses now support up to 250 characters, increased from the previous limit of 60 characters.

POL-18663

End Policy - End Date Validation

This enhancement introduces validation for the End Policy UI operation. If ohi.ui.policyEndDate.enrollment.startDate.check is enabled (true), the policy end date must be later than the start date of the most recent policy enrollment product.

4.25.1.0.18

Additional Upgrade Steps

Pre-Upgrade phase

  1. Make sure to have enabled auto-purge for (connector) activities, because the Liquibase script 2025-09-10_INT_AGGREGATE_CHANGE_EVENTS.xml (introduced to fix the bug POL-12671) contains conversion of aggregate events based on activities. This script will take a while (depending on the data volume).

  2. Disable connector configurations that are not used (anymore).

Post-Deploy phase

  1. Groovy 5 is more restrictive and doesn’t support direct use of .size or .value on collections (lists)

    Example: Replace .size with size() and list*.value.sum() with list.sum()

    checkPOEP = defaultPoliciesSql.getPolicyEnrollmentProducts(testCode + '_POLI_001', 2, 'PERSON', testCode + '_RELA_001')
    // def poepSize = checkPOEP.size //INVALID,throws error
    def poepSize = checkPOEP.size() //VALID
    def customerList = getCustomerList(inputList)
    // Integer b = customerList*.value.sum(); //INVALID,throws error
    Integer b = customerList.sum(); //VALID

    The impacted dynamic logic to be identified and updated as stated below

    Identify the impacted dynamic logic using GUI based search or API as mentioned below

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%*.value.sum()%').or.logic.like('%.size%')"}
    }
  2. Java 21 and Groovy 5 enforce stricter rules and no longer allow direct use of private variables and methods

    Example: Parsing the below JSON as a String and then calling .value on it results in an error, since .value is a private field of the String class and is not accessible

    "communicationPreference":[{"communicationMode": "EMAIL"}]
    person.communicationPreference.get(0).communicationMode.value //INVALID, throws error
    person.communicationPreference.get(0).communicationMode //VALID

    Identify the impacted dynamic logic using GUI based search or API as mentioned below and update it

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%.value').or.logic.like('%.value.toString%')"}
    }
  3. With the Java 21 upgrade, Java EE-related package names have changed from javax to jakarta (for example, javax.ws is now jakarta.ws) as part of the adoption of Jakarta EE standards. Please update any use of javax.ws. in dynamic logic to jakarta.ws. to ensure compatibility.

    Identify the impacted dynamic logic using GUI based search or API as mentioned below and update it

    API: POST generic/dynamiclogic/search

    {
    "resource": {"q":"logic.like('%javax.ws.%')"}
    }

Configuration Properties

Ref Action Description

CPN-4302

Added

ohi.datatransfer.logging.phi.events.enabled

Introduced a new optional property

NXT-32617

Added

ohi.ui.likesearch.wildcard.enabled

This property enables or disables the trailing '%' sign from quick, advanced search, and lookup (LOV) with the query operators like and likeic.

NXT-33750

Added

ohi.api.download.max.rows

The ohi.api.download.max.rows system property, which allows users to configure the maximum number of rows that can be downloaded through the Download API.

By default, this property is set to 2,000 rows. The maximum supported value is capped at 10,000 rows.

POL-10667

Added

ohi.purge.notification.endpoint

Base URI of the system that is going to receive notification events for purge operation.

POL-14575

Removed

ohi.ws.enrollmentresponse.request.lob

System property removed

POL-17288

Added

ohi.policies.calculate.future.calculationresult.reversal

When set to false, only future results after a mutation’s effective date are reversed if a mutation exists. When true, all future results are reversed regardless of mutations. Default is true.

POL-17518

Added

ohi.activityprocessing.notification.type

Property that controls if a notification should be sent after completion of an activity.

Allowable values are: 'Always', 'OnFailureOnly' and 'Never' (default value 'Always').

Always means: send notification always regardless of the completion status of the activity. OnFailureOnly means that a notification is sent when an activity is completed with errors. And Never means no notification will be send at all.

POL-17518

Added

ohi.activityprocessing.notification.type.{0}

Activity type-specific property that controls if a notification should be sent after completion of an activity.

Allowable values are: 'Always', 'OnFailureOnly' and 'Never'.

Always means: send notification always regardless of the completion status of the activity. OnFailureOnly means that a notification is sent when an activity is completed with errors. And Never means no notification will be send at all.

If not specified, it will take the value of property ohi.activityprocessing.notification.type.

POL-17681

Added

ohi.policies.quote.flush.enabled

Added a new optional property to control if the quote IP should use the new quote processing path without database writes

POL-18557

Added

ohi.worklist.notification.endpoint.{0}

The generic endpoint for sending notifications can be overridden for a specific notification definition code.

POL-18557

Added

ohi.worklist.service.{0}.media.type

The media type used when sending the notification to the external endpoint. Optional. Default: application/json.

POL-18557

Added

ohi.worklist.service.{0}.notification.method

The HTTP method used to send the notification. Optional. Possible values are POST or PUT. Default: POST.

POL-18557

Added

ohi.worklist.service.{0}.client.authentication

The authentication mechanism used when invoking the notification endpoint. Optional. Possible values are BasicAuthentication, OAuth, or None. Default: BasicAuthentication.

POL-18557

Added

ohi.worklist.enabled

Decides if the work items are created on the system or not. If set to true, work item tasks are created else skip creation of workitem. The default value = "false".

POL-18557

Added

ohi.worklist.notification.endpoint

The generic workitem notification endpoint.

POL-18663

Added

ohi.ui.policyEndDate.enrollment.startDate.check

When ohi.ui.policyEndDate.enrollment.startDate.check is enabled (true), the policy end date must be later than the start date of the most recent policy enrollment product.

Web Services

Ref Action Description

CPN-3799

Modified

Operational Reporting IP

Two new error messages are introduced in the Operational Reporting IP. The IP returns an HTTP 422 response with one of the following error messages:

  • OHI-IP-ORV-008: View {0} does not exist

  • OHI-IP-ORV-009: Access restriction grant is missing to query the view {0}

CPN-3799

Modified

Data Transfer IP

  • CSV files generated by the Data Transfer IP includes the header.

  • When the query returned no records, the Data Transfer IP responds with HTTP 204 (No Content).

CPN-4206

Modified

logsecurityevents

Added 9 new attributes: eventCategory, eventType, eventOutcome, eventSeverity, httpStatusCode, failureReason, apiEndpoint, sessionId, accessTokenId.

CPN-4207

Modified

logphievents

Added three new attributes: accessScope, sessionId, and accessTokenId.

NXT-26542

Added

deploymentmetadata API

New read-only generic API is added.

NXT-26542

Modified

userpreferences API

Added a new attribute browserTimeZone to the user preferences API.

NXT-30348

Added

reinsuranceregimes API

Enable Generic POST, PUT, PATCH, COLLECTION PATCH, DELETE operations.

An attribute "Reinsurance regime code" has been added to the Reinsurance Treaty entity

NXT-32464

Modified

Provider IP

If more than 1 provider is matched to an identifier, then an error message is thrown

NXT-33750

Added

Download API

New HTTP API integration Point -Download API is added

POL-10667

Added

Purge Policies

Purge policies that have aged beyond a retention period

POL-10667

Modified

Attached Policy Data IP

Added new attribute exemptFromPurge to attached policy data

POL-10667

Modified

Policy In Integration Point

Added new attribute exemptFromPurge to attached policy data

POL-12671

Modified

generic/aggregatechangeevents API

Attributes added:

  • reference to Activity

  • reference to Connector Configuration

  • unprocessed (to be able to check on aggregate events that are not picked up yet)

POL-15381

Modified

policies/{policyId}/sampleinvoice

Added optional attribute excludeCommissionCalculation (default false) to the request: if true then no commission will be calculated

POL-15381

Modified

policies/quote/{calculationInputDate}

Commission calculation is no longer executed since commission data are not part of the response and can enhance the performance

POL-15381

Modified

policies/{policyId}/examplecalculation/{calculationInputDate}

Commission calculation is no longer executed since commission data are not part of the response and can enhance the performance

POL-15381

Modified

policies/{policyId}/cancelwithinvoice

Added optional attribute excludeComFromFinTransSet to the request (default false), if true, financial commission data are not included in set and not send.

POL-15381

Modified

policies/{policyId}/invoice

Added optional attribute excludeComFromFinTransSet to the request (default false), if true, financial commission data are not included in set and not send.

POL-15555

Modified

Enrollment Status Response Integration Point

Add additional (user configurable) parameters to the request

POL-15745

Added

generic/paymentrefunds API

API for new entity Paymentrefunds

POL-15962

Added

generic/calculationresultlines

New attribute added: calculationOnly

POL-15962

Modified

generic/premiumschedules API

New attribute added: calculationOnly (default false)

POL-15962

Modified

Premium Calculation

Shadow calculation results do not count towards the total amounts in calculation result

POL-15962

Modified

policies/{policyId}/sampleprocessandapplyregistrations

attribute calculationOnly on calculationResultLine added

POL-15962

Modified

policies/{policyId}/sampleinvoice

attribute calculationOnly on calculationResultLine added

POL-15962

Modified

policies/{policyId}/examplecalculation/{calculationInputDate}

attribute calculationOnly on calculationResultLine added

POL-16189

Modified

Group Client Integration Point

Add optional parameter "response=minimal" to minimize the response payload

POL-16469

Added

generic/policypremiumcalculationdetails

API for new entity PolicyPremiumCalculationDetails.

POL-16632

Modified

Compare policy versions

Every single change that matches a business event rule leads to the creation of a policy enrollment event

POL-16635

Modified

policies/{policyId}/fee

The following attributes are added to the request: - createAccountingDetailToPersistDynLogic - includeSubjectForGroupingAccounting - includeReversalForGroupingAccounting

The attribute createAccountingDetailDynLogic is now optional

POL-16791

Modified

generic/calculationresultlines API

Added attribute calculationContext (PII)

POL-16791

Modified

generic/scheduledimensions API

Added indicator calculationContext

POL-16791

Modified

Quote IP

The calculationContext on the calculation result line is added to the response. EnrollmentType (code, displayname) is added to policyEnrollment.

POL-16791

Modified

Example calculation IP

The calculationContext on the calculation result line is added to the response. EnrollmentType (code, displayname) is added to policyEnrollment. Also sort on date of birth is added for calculation result lines within a calculation result.

POL-16791

Modified

Sample process and apply registrations IP

The calculationContext on the calculation result line is added to the response. EnrollmentType (code, displayname) is added to policyEnrollment.

POL-16791

Modified

Premium calculation

The context that is derived for a premium schedule line or adjustment rule is stamped on the calculation result line

POL-17432

Modified

Providers

ADDITIONAL_PART_2 is updated

POL-17432

Modified

Providers

ADDITIONAL_PART_1 is updated

POL-17432

Modified

Providers

ADDITIONAL_PART_3 is updated

POL-17690

Modified

policymutations IP

checks on references like output definition and fee definition are case insensitive

POL-17690

Modified

policyaccounttransactions IP

search on account number, account definition are case insensitive

POL-17690

Modified

policyaccounts IP

search on account number, account definition are case insensitive

POL-17690

Modified

organizationproviders IP

checks on references to specialty are case insensitive match on provider using provider code and flex code system are still case sensitive since both are not stored as upper case

POL-17690

Modified

policies (Patch) IP

checks on references like brand are case in sensitive, also matching on details where code is involved, like add on and check on policy if it exists is case insensitive

POL-17690

Modified

persons IP

checks to references like prefixes, titles, relation tags are case insensitive

POL-17690

Modified

organizations IP

checks to references like relation tags are case insensitive

POL-17690

Modified

groupclients IP

checks on references like referencing group client, data access group are case in sensitive, also matching on details where code is involved like group account and check on group client if it exists is case insensitive

POL-17690

Modified

individualproviders IP

checks on references to specialty are case insensitive match on provider using provider code and flex code system are still case sensitive since both are not stored as upper case

POL-17690

Modified

activities IP

search on activity type is case insensitive

POL-17690

Modified

policyupdaterequests IP

checks on references like brand are case in sensitive, also matching on details where code is involved, like add on and check on policy if it exists is case insensitive

POL-17690

Modified

macros IP

search on Macro Definition is case insensitive

POL-17946

Added

Audit Search Generic API

Enable Generic POST operations.

Retrieves Generic Audit records for a selected auditable entity, including its create, update, and delete history.

POL-18136

Modified

connectorconfigurations API

Added new attributes aggregateSourceChangeLogs and includeSystemCorrelationIdHeader to connectorconfigurations API.

POL-18277

Modified

policies/{policyId}/examplecalculation/{calculationInputDate}

Validation rules with “Exclude from Validation?” true are excluded during execution of validation rules.

POL-18277

Modified

policies/quote/{calculationInputDate}

Validation rules with “Exclude from Validation?” true are excluded during execution of validation rules.

POL-18557

Added

workitems/{id}/respondfeedback

IP to provide a response to a feedback request

POL-18557

Added

workitems/fetchnext

IP to fetch the next workitem (and assign if not assigned yet)

POL-18557

Added

workitems/{id}/hold

IP to put a workitem on hold

POL-18557

Added

generic/queuedefinitions

API for new entity QueueDefinition.

POL-18557

Added

generic/globalsladefinitions

API for new entity GlobalSLADefinition.

POL-18557

Added

generic/workitemholdtypes

API for new entity WorkitemHoldType.

POL-18557

Added

generic/workitemnotifications

API for new entity WorkitemNotification.

POL-18557

Added

generic/queuependreasons

API for new entity QueuePendReason.

POL-18557

Added

generic/queuemessages

API for new entity QueueMessage.

POL-18557

Added

generic/workitemhistory

API for new entity WorkitemHistory.

POL-18557

Added

generic/workitemholdhistory

API for new entity WorkitemHoldHistory.

POL-18557

Added

generic/workitem

API for new entity Workitem.

POL-18557

Added

workitems/assign/{assigneeUserId}

IP to assign workitems to user

POL-18557

Added

workitems/{id}/updatepriority

IP to escalate and/or update priority of a workitem

POL-18557

Added

workitems/{id}/requestfeedback

IP to raise a feedback request on a workitem

POL-18557

Added

workitems/{id}/release

IP to release a workitem from hold

Data Conversion

Ref Action Description

NXT-31011

Added

OHI_ACCESS_RESTRICTION_GRANTS

The new access restriction will be provided to all non system active roles (with retrieve flag as Y), having at least a system function access grant with retrieve flag as Y

NXT-32464

Removed

Provider Identifiers

Unique constraint on identifier and identifier type is dropped in all the applications.

POL-12671

Added

Aggregate events and details

For each connector configuration aggregate events and details are created.

POL-15962

Added

Premium Schedule

New mandatory attribute calculationOnly, default false

POL-16791

Added

Schedule Dimension

The new, mandatory, indicator calculationContext? is set to N for existing dimensions.

POL-18136

Added

includeSystemCorrelationIdHeader

The value of includeSystemCorrelationIdHeader for existing connector configurations are set to false and there is no impact

POL-18136

Added

aggregateSourceChangeLogs

The value of aggregateSourceChangeLogs for existing connector configurations are set to true and there is no impact

Dynamic Logic

Ref Action Description

CPN-3973

Modified

Groovy 5 upgrade

Upgraded Groovy from 4.x to 5.0.7.

NXT-30348

Added

getTreaties

New pre-defined method to access the enrollment data for Treaties.

NXT-30348

Added

Reinsurance Regime

New dynamic logic condition. When this condition evaluates to true, the reinsurance regime is executed.

POL-16632

Added

getActivePolicy

Predefined method that retrieves the active version of the policy

POL-16632

Modified

businessEvent

This dynamic logic condition has the new or updated object as input parameter and offers the possibility to set custom text parameters

POL-16791

Modified

Premium Function

Added the possibility to set the calculationContext of the calculated premium

POL-16791

Modified

Adjustment Function

Added the possibility to set the calculationContext of the applied adjustment

POL-16791

Modified

Schedule Dimension Evaluation Condition

Added the possibility to set the context/reason for the selected premium schedule line or adjustment rule. This only applies to premium schedule line evaluation and adjustment rule evaluation

POL-17120

Deprecated

jersey.config.client.followRedirects

jersey.config.client.followRedirects property is deprecated.

POL-18136

Modified

Message Transformation

aggregateChangeEvent is added as a new In parameter when aggregateSourceChangeLogs is set to false

POL-18557

Added

Signature 'Queue Parameters'

New signature for function dynamic logic on Queue Definition.

POL-18557

Added

Signature 'Workitem Notification'

New signature for function dynamic logic on Notification Definition to assemble payload for notifications.

POL-18557

Added

Signature 'Queue Evaluation'

New signature for dynamic logic condition on Queue Definition.

UI Changes

Ref Action Description

NXT-30348

Added

Reinsurance Regimes (CL0208)

CLAIMS: A new JET UI page, "Reinsurance Regimes" has been added.

POLICIES: New Fields reinsuranceRegimeCode has added in reinsurance treaties page

NXT-33659

Modified

Preferences Dialog

A new checkbox, "Use Browser Timezone?" has been introduced in Preferences dialog which can be used to override the user’s configured timezone.

NXT-33750

Modified

All floorplan based pages (and Reference Sheet Lines)

API based download is enabled in UI pages.

However, there is an exclusion list application wise:

UI based download is retained in Extensibility tabs and tabs of some Detail pages:

  • Claims - Transaction Sources (Transaction Source Usages), Banks (Addresses, Bank Account Number Relations), tabs in all the Pricing Rule pages

NXT-33750

Modified

Proddef - Product Service Definition (Products and Across)

Boilerplate text value is updated for all the Regime fields to indicate the type of regime

POL-15962

Modified

Policies page

Added support for calculation-only premium schedule results

POL-16469

Modified

Policy detail page

Added Next Premium Calculation Date field

POL-16770

Modified

PO0032 (Change event rules)

These entities are newly added for Subject field

  • Address

  • Relation Identifier

  • Attached Policy Data

  • Registration

POL-16791

Modified

Adjustment Rules

CalculationContext indicator is added

POL-16791

Modified

Premium Schedules

CalculationContext indicator is added

POL-16791

Modified

Schedule Definition

CalculationContext indicator is added to schedule dimension.

POL-16791

Modified

Calculation Results

CalculationContext is added to calculation result line

POL-17172

Modified

Policies Page

With this enhancement, the policy page always displays the technical processing errors irrespective of the policy status and restart link is enabled for messages in 'TE' & 'CT' status

POL-18136

Modified

Connector Configuration (PO0125)

Four new fields are introduced - 'includeSystemCorrelationIdHeader', 'aggregateSourceChangeLogs', 'createEvents', 'eventDescription'

POL-18557

Added

Queue Definitions Page (CO0029)

Added New search table page Queue Definitions.

POL-18557

Added

Work item Hold Types

Added new page to Add edit delete Wok item Hold Types

POL-18557

Added

Work item notification

Added new page to Add edit delete Wok item Notification

POL-18557

Added

Global SLA Definitions

Added new page to Add edit delete Global SLA Definitions

POL-18557

Added

Worklist

Added new page to see list of work items and perform operations on work item

POL-18557

Modified

Claims Search page, Claims view page (CL0172)

Added new action button 'Next Work Item'

POL-18557

Modified

Authorizations Search page, Authorizations view page (AU0005)

Added new action button 'Next Work Item'

POL-18557

Modified

Pend Reasons (AU0013)

Added new attribute 'priority' in the table column

Breaking Changes

Ref Action Description

CPN-3973

Modified

Groovy 5 upgrade

Upgraded Groovy from 4.x to 5.0.7.

NXT-31011

Added

OHI_ACCESS_RESTRICTION_GRANTS

JET (UI) will implement a new access restriction called "Download 'Data'" to manage the visibility of the Download button. Users who are not granted this access restriction will no longer see the download action, making this a breaking change.

NXT-33750

Modified

Below breaking change will be observed for UI download enhancement.

  • Date / date time fields are not formatted.

  • For system enumerations ( example status field on claim) key will be download.

  • For composite columns - example when two different fields were shown in one column in UI, download will have columns per value. Example instead of one column for formatted name, download will have separate columns for first name, middle name , last name and so on. Another example is maximum value / current value in counters, and setup pages, in download separate columns will be present for maximum/current days, units and amount.

  • Product service definition - download will show separate columns for each regime.

  • In UI if a custom list of value is added on a native field / string field using floorplan based configuration, only native data will be part of download - example - partial provider pricing clauses only method code will be download

POL-13928

Removed

Data File Sets IP

Removed the GET operation on the datafilesets IP endpoint.

POL-14575

Modified

Enrollment Request

lineOfBusinessCode removed as query parameter and on enrollment request.

POL-14575

Removed

ohi.ws.enrollmentresponse.request.lob

System property removed

POL-15745

Added

Process and Apply Registrations

For Australian localization:

  • Unapplied payment registrations for end dated policies now remain in status New rather than being included in the carryover amount

  • Applied or refunded payment registrations cannot be created, updated, or deleted

  • Payment registrations with code types CARRYOVER_OFFSET, REFUND_OFFSET, CARRYOVER, or REFUND_MEMO cannot be created, updated, or deleted.

POL-16469

Modified

Calculate Premium (AU)

For Australian localization, the policy calculation process selection criteria is updated to only process policies that are due for calculation i.e. based on the next premium calculation date for the policy.

POL-17241

Modified

Bill Allocation and Group account available product tabs

System floorplan for premiumbillallocations, groupaccountproducts is modified for filter condition on Group client billing account, insurableClass, Enrollment Product, Enrollment Product Category, Group account Available Product Add On. Custom floorplans if any need to be modified by referring to system floorplan accordingly.

POL-17340

Modified

Process Flow pages, Group Clients page, Group Account Products page

System floorplan for groupaccountproducts, groupclientbillingaccounts, grouprulesteps, policypendrulesteps, policyrulesteps is modified for filter condition on contactRelation, insurableClass, pendRule, calloutRule, validationRule. Custom floorplans if any need to be modified by referring to system floorplan accordingly.

POL-17681

Modified

Quote IP

This section applies when ohi.policies.quote.flush.enabled is set to false, or when the property is left unset in releases where false is the default.

Quote IP no longer temporarily writes quote policy data to the database when the new no-database-write quote processing path is used. As a result, database-level validations that are enforced only during database writes, such as unique key constraints, maximum column length checks, and mandatory database column checks, are not applied during this quote processing path.

Dynamic logic executed during the Quote IP flow should not query quote policy data, policy-related data, or member information from the database, for example by using SearchBuilder or lookUp predefined methods. Such queries will not return the in-flight quote data because that data is not persisted. Dynamic logic should use the relevant data provided through bind parameters instead. Existing dynamic logic that queries quote policy or member data from the database during Quote IP processing must be updated to use bind parameters rather than database lookups.

Because quote data is not persisted in this processing path, database-generated ID attributes are not populated and remain null. Accessing the ID of the policy, policy-related data, or member information in dynamic logic during the Quote IP flow may result in a NullPointerException. Such dynamic logic must be updated to use Groovy null-safe access where appropriate, or rewritten so it does not depend on database-generated IDs.

Before this change, if the policy code or person code was not provided in the Quote IP request payload, the system generated the code by using the Policy Code Generation and Person Code Generation dynamic logic. If the dynamic logic was not configured, the database-generated ID was used as the code. With the new no-database-write quote processing path, the Policy Code Generation and Person Code Generation dynamic logic are not executed, and the database-generated ID is not used as the code. Instead, the system generates unique policy and person codes based on UUID values. The generated policy code is not included in the Quote IP response, but the generated person code is included. Therefore, integrations that rely on the person code in the Quote IP response having a specific format may be impacted.

Access Restrictions

Ref Action Description

NXT-31011

Added

OHI_ACCESS_RESTRICTIONS_B

A new access restriction of type DWDATA and code as UI_DATA_DOWNLOAD has been added. The same has been assigned to ALL_FUNCTIONS_ACCESS_ROLE

NXT-33659

Modified

CO0019

The 'deploymentmetadata API' access restriction has been added to function code CO0019.

NXT-33750

Added

Download API access

A user who has been granted GET access to a resource’s HTTP API can download that resource’s data using this endpoint.

POL-14796

Modified

CO0019

keyboardshortcuts API and floorplans.enhance IP added to CO0019 function code and also removed duplicate access restrictions from setup access role which were part of CO0019

POL-16469

Added

Next Premium Calculation Date

Access Restriction Type: Next Premium Calculation Date

A new access restriction type is added for the nextPremiumCalculationDate field on the PolicyPremiumCalculationDetails entity.

POL-18557

Added

workitems.assign IP

Access restriction for Assign work item IP

POL-18557

Added

workitems.respondfeedback IP

Access restriction for Respond feedback IP

POL-18557

Added

workitems.requestfeedback IP

Access restriction for Request feedback IP

POL-18557

Added

workitems.hold IP

Access restriction for Hold work item IP

POL-18557

Added

workitems.release IP

Access restriction for Release work item IP

POL-18557

Added

workitems.updatepriority IP

Access restriction for Update Priority IP

POL-18557

Added

workitems.fetchNext IP

Access restriction for Fetch Next work item IP

POL-18557

Added

workitems.eligibleusers IP

Access restriction for Eligible users IP

POL-18557

Added

CO0042

Workitem Hold Type (JET) — access restriction function code for accessing Workitem Hold Types page.

POL-18557

Added

CO0041

Global SLA Definition (JET) — access restriction function code for accessing Global SLA Definitions page.

POL-18557

Added

CO0029

Queue Definition (JET) — access restriction function code for accessing Queue Definitions page.

POL-18557

Added

CO0030

Workitems View (JET) — access restriction function code for accessing the Worklist page.

POL-18557

Added

access restriction type: DAGRQD

New Access Restriction type for data access group on queue definition.

POL-18557

Added

CO0043

Workitem Notifications (JET) — access restriction function code for accessing Workitem Notifications page.

Bug Fixes

BugDB SR Internal Summary

35691448

POL-13405

Boilerplates not loading when 2 widgets with same resource is added of type data table

Description:

When user creates 2 widgets with same resource of type data table and when both widgets are added, boilerplates are not loading for one of the widget.

Resolution:

Boilerplate translation are properly shown for both the widgets

36930049

3-37593944301

POL-15668

Application logs are not persisted in the database in rare scenarios.

Description:

Application logs are internally queued before writing to the database. In rare cases, these logs are not successfully written, causing the internal queue to grow significantly in size - several GBs in some instances. This led to a loop in the log persistence mechanism, impacting system performance.

Resolution:

The elements are not requeued to prevent an endless loop and to avoid increasing the queue file size.

36903242

3-37528423931

POL-15631

Additional Field values when filled are not retained after save

Description:

Additional field values of a dynamic record for a policy cannot be nullified by passing in empty tags

Resolution:

Fields of a dynamic record for a policy can now be nullified by passing in empty tags in the PATCH payload.

Backports:

4.24.1.0.3, 4.24.1.0.9

37400030

3-38989900081

POL-16396

Members page should show policy code instead of status

Description:

Members search page should show policy code. The color of the policy code should be based on the status.

Resolution:

Updated the members search page to display policy code and status, with status label color reflecting the policy status.

Backports:

4.25.1.0.1

37455508

POL-16440

'Policies per Fatal Messages' Widget record count is incorrect

Description:

The widget 'Policies per Fatal Messages' does not display the correct value for the record count.

Resolution:

The widget 'Policies per Fatal Messages' displays the correct value for the record count.

Backports:

4.25.1.0.3

37689169

3-39953000191

POL-16765

PCPs with forward billing are skipped for apply registrations

Description:

A change in Collection Setting can result in consecutive Policy Calculation Periods (based on the start- and end date of those Policy Calculation Periods) having different pay dates. In most cases the pay date of the latest Policy Calculation Period will also be later compared to the pay date of the earliest Policy Calculation Period. But, when the earliest Policy Calculation Period was not paid for in the first place, the pay date will be pushed according to the principle of forward billing. This could result in a scenario where the latest Policy Calculation Period (based on start date), has a pay date which is earlier compared to its predecessor. When a registration is processed, the system starts applying the registration to the Policy Calculation Period with the earliest pay date and skip the forward billed Policy Calculation Period.

Resolution:

When there are Policy Calculation Periods found without a corresponding Calculation Result, the system skips Process Registrations and adds the informative message POL-FL-PREG-004 to the activity. If there is no activity spawned, no informative message is added.

Backports:

4.24.1.0.12, 4.23.1.0.13, 4.25.1.0.1

37796099

POL-16923

Unable to set the new default in Policy Process Flows page

Description:

In Policy Process Flows page, unable to set the new default and unable to view current default

Resolution:

In Policy Process Flows page, able to set the new default and view the current default

37766160

POL-16076

Search value in Advance Search is not cleared for Date and Time configured field.

Description:

In Advance Search, unable to clear search value for date and time field

Resolution:

Advanced Search has been enhanced with an operator, and the issue was fixed as part of this enhancement.

37809976

3-40316251991

POL-16947

Default value of Flex code doesn’t get saved when LOV floorplan has only descriptor

Description:

When a default value is added to the flexcode field and only descriptor is present in the title, it is not getting saved. If value is also added in the LOV title, then the value is getting saved.

Resolution:

Fix added to save flexcode when only descriptor is present in custom LOV floorplan.

Backports:

4.25.1.0.2

37869333

3-40008658091

POL-17058

Apply Registrations functionality leaves gaps when regenerating Policy Calculation Periods for over a year.

Description:

Policy Collection Settings are time valid entities, which means that there can be multiple consecutive Policy Collection Settings with different settings. One of those settings is the Policy Calculation Period length and another one is the Offset, indicating at what moment the Policy Calculation Periods should be generated. As these variables have no restrictions, it can happen that the offset of a later Policy Collection Setting is bigger compared to the Policy Calculation Period length of the previous Policy Collection Setting. As a result, the system generates the periods for the second Policy Collection Setting before finishing with the last periods of the first Policy Collection Setting, causing time based gaps in the Calculation Results.

Resolution:

During Policy Calculation Period generation, the system checks if all the periods are generated for a specific Policy Collection Setting. If not, the system does not continue with generating the Policy Calculation Periods for any later Policy Collection Setting, those periods are only generated once the system finishes the first Policy Collection Setting.

Backports:

4.23.1.0.13, 4.25.1.0.2

37882151

POL-17069

Zip and Unzip operations in Data File Sets IP return HTTP 405 in SaaS

Description:

The Zip and Unzip operations in Data File Sets IP return HTTP 405 (Method Not Allowed) in SaaS.

Resolution:

Added support for zip and unzip operations in the Data File Sets IP in SaaS.

37841851

3-40216895161

POL-17040

Group Account Adjustments are not shown for a group account with no end date in time period

Description:

When a group account has a time period without end date, in Group Account Adjustment Overrides page, no rows are displayed for that time period. So the user cannot add overrides for the Group Account Adjustments

Resolution:

Group Account Adjustment Overrides are shown in UI for a group account which has a time period without end date

Backports:

4.25.1.0.1, 4.24.1.0.11

36424923

POL-14209

Enrollments NewView: When deeplink configured as tab in Policy Enrollments tab, unsaved changes pop up not showing when member is viewed

Description:

When the user navigates out of the Policy Enrollments tab in expanded view the user does not get an unsaved changes dialog prompting the user to save.

Resolution:

Unsaved changes pop-up is displayed when user navigated away from Policy Enrollments tab in expanded view

36301775

POL-14610

Populate flex code columns in reference sheets base views with the corresponding key values

Description:

On generating reference sheets base views, the Flex code columns are appearing as NULL values.

Resolution:

Populated the flex code columns with corresponding key values.

37780125

3-40209488891

POL-16878

Policies without a brand are not picked up by calculate premium activity

Description:

If a policy does not have a brand specified and the calculate premium activity is started with no brand specified, then these policies are not picked up for premium calculation.

Resolution:

Adjusted selections on policies in calculate premium (both AU and non-AU) , apply registration and generate policy calculation periods activity to include policies with no brand.

37257460

3-38637505211

POL-16213

Query API does not return correct results when the search criteria contains an apostrophe

Description:

Query API does not return correct results when the search criteria contains an apostrophe.

Resolution:

The grammar definition for parser is changed such that it’ll escape apostrophe in strings and sql package is changed such that it’ll treat apostrophe as a part of the string/name.

37605486

3-39664837951

POL-16652

Plan Objects Not Cleaned Up When OutOfMemoryProtector Triggers During Calculate Premium Activity

Description:

Necessary configurations for Calculate Premium activity are fetched once and stored in plan objects within the distributed Coherence cache. When OutOfMemoryProtector triggers, activity remains stuck in IP status and plan cache does not get cleared, overtime this degrades JVM performance.

Resolution:

Clearing plan cache when system reaches CRITICAL state reduces GC overhead, improving JVM performance. It also allows stuck activities to reach final state.

Backports:

4.25.1.0.1, 4.24.1.0.11

37789722

3-40091618181, 3-41125321001, 3-41542636421

POL-16897

Add error handling for duplicate columns in base view generation

Description:

Throw a clear and descriptive error message when duplicate columns are detected in views during base view generation. Currently, if a table has duplicate columns in its view, the base view generation fails silently without any error message, causing confusion and making it difficult to identify the root cause.

Resolution:

Added a duplicate columns check in base view generation process and throwing descriptive error message to user.

Backports:

4.25.1.0.3

37490303

3-39140140531, 4-0002614945

POL-16477

Add business rule to validate the length of CHAR fields for non referencesheet record definitions

Description:

Record definitions with Field having Field code as C4000 are incorrectly allowed for non referencesheet record definitions. This leads to a database error when inserting values over 1000 characters due to database storage limitations.

Resolution:

A business rule has been added to ensure that, for non-reference sheet dynamic record fields, the field length does not exceed 1000 characters.

37067284

4-0002429684

POL-15876

Fix amount calculation logic for Monthly periods and Evenly amount distribution

Description:

Calculation logic for Monthly periods and Evenly amount distributions returns incorrect amounts for partial enrollments. The system calculates using the full period’s day factor instead of the actual enrolled days, leading to overestimation.

Resolution:

For the last calculation period segment, the days factor has been adjusted to calculate only for the enrolled days within the period, instead of the full period.

Backports:

4.25.1.0.15

37812725

POL-16955

Unsaved changes dialog is not displayed for tabs in expanded view mode

Description:

Unsaved changes pop up is not displayed when user updates any value in the tab in expanded view mode and tries to navigate away from the page

Resolution:

Unsaved changes dialog is displayed for tabs in expanded view mode and create mode as well

Backports:

4.25.1.0.1

37633452

3-40449586751

POL-16696

Prefilter criteria is retained when multiple custom floorplans are configured in Payment Registrations page

Description:

In Payment Registrations page, when multiple custom floor plans are configured with at least one floorplan with prefilter option, prefilter criteria is retained and not cleared while switching between the floorplans

Resolution:

Pre-filter criteria is cleared while switching between the floorplans

Backports:

4.24.1.0.10, 4.25.1.0.1

37831089

POL-16270

Policy process flow: Extra field showing for each row in policy rule steps

Description:

Either Policy Validation Rule or Callout Rule field is expected to be visible in each row, but currently both fields are displayed.

Resolution:

Either Policy Validation Rule or Callout Rule field is displayed according to the selected rule

37229586

POL-16183

An exception occurs when an empty messages list is returned from a Message Transformation Dynamic Logic Function

Description:

This issue arises when events are filtered in the Message Transformation dynamic logic function using aggregateEvents, and no events match the filter criteria. As a result, the messages object is returned as an empty list. Although the IntegrationTransformation task completes successfully, an ArrayIndexOutOfBoundsException is logged in the application log.

Resolution:

The system now verifies if there are no messages to process. If none are found, it skips the process gracefully, preventing any errors.

Backports:

4.25.1.0.7

37888201

POL-17074

Generateaccountingmessage IP populates reversal as false for null reversal accounting details

Description:

Reversal has been made optional for POL-16484 since an option is added to not group accounting details on reversals, but the generate account message operation was not adjusted to reflect that the reversal indicator could be empty.

Resolution:

In case reversal is null, it is not displayed in payload (as all null values do) and accounting details will be grouped based on either reversal being true or false or null.

Backports:

4.25.1.0.1, 4.24.1.0.11

37828610

3-39371159781

POL-17070

Base View generation fails for an entity which has an apostrophe character in the display name

Description:

For entities which have dynamic attributes, base view generation adds column remark using display name. If display name has apostrophe character ('), it fails with the following exception: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

Resolution:

No SQL exception is thrown when a display name has apostrophe character (')

Backports:

4.25.1.0.0

37893330

POL-17084

Run example calculation returning 500 status when member has a relation link

Description:

Run example calculation API returning 500 status when member has a relation link record.

Resolution:

The Run Example Calculation API now works as expected when the member has a relation link record.

Backports:

4.25.1.0.1

37281664

3-38722768571

POL-16254

Connector configuration’s change list cannot be nullified using API

Description:

A change list can be configured on connector configuration in order to control the change events which should be transmitted to external system. Currently, it is not possible to nullify this list using a generic API PUT request.

Resolution:

A configured change list can now be cleared through a generic API PUT request by setting the change list to null. This removes the list and restores to default.

Backports:

4.25.1.0.16

37380943

3-38943334671

POL-16384

An empty change list is created for connector configurations when a connector is created using JET UI.

Description:

When creating a connector configuration through JET UI, an empty change list is added by default. This empty list blocks any change event from getting transmitted to external systems.

Resolution:

Empty change list is removed when saving a connector in UI

Backports:

4.25.1.0.18, 4.25.1.0.5

37875416

3-40104949171

POL-17066

View members page throws GEN-PROC-ERR when title component with label is configured in floorplan

Description:

When title is configured in foldout for folds section with label, the enhanced floorplan IP throws GEN_PROC_ERR

Resolution:

There is no error thrown now, when the title component of the foldout is configured with a label.

37867800

3-40372816341

POL-17063

Conditional loading of value does not work in List Of Values dropdown once the value is selected

Description:

Filter is not applied correctly to the dependent List Of Values dropdown whenever a conditional trigger is used to update the filter.

Resolution:

The filter is applied consistently, displaying the correct value in the LOV.

Backports:

4.25.1.0.1, 4.24.1.0.11

37902306

POL-17091

Premium calculation for last period is incorrect for evenly distributed yearly contracted policy when the calendar month split is disabled

Description:

The calculated premium amount for the last period of an evenly distributed yearly period contracted policy does not match the expected value when the calendar month split setting is disabled. This issue occurs when the policy contract begins on February 28th of a non-leap year.

Resolution:

A discrepancy existed between the contract periods and the generated policy calculation periods. The logic for generating contract periods has been corrected to align with the generated PCPs for yearly periods in leap years.

Backports:

4.25.1.0.6

37854831

3-40537710361

POL-17048

The applyRegistration activity is blocked due to table lock held by nextcalculationcyle IP process

Description:

ApplyRegistration activity is sometimes blocked due to table lock held by concurrently running nextcalculationcyle IP process

Two new protected properties were introduced to implement retry logic. 1. ohi.activityprocessing.separate.execution.group.initial.wait.time 2. ohi.activityprocessing.separate.execution.group.max.retry.count

Resolution:

A retry mechanism has been incorporated into the applyRegistration activity execution, giving concurrent nextcalculationcyle IP processes time to finish and release their locks, so subsequent attempts complete successfully without encountering a resource-busy exception.

Backports:

4.25.1.0.5

37834546

3-40316102201

POL-16971

Expand/Collapse is shown even when there is no tab configured

Description:

When there are a lot of fields to display on the page and there are no tabs configured, The UI still displays Expand/collapse option and The user has to click it to expand and view all fields

Resolution:

Expand/Collapse is not shown when there is no tab configured and fields are displayed to the full view of the page

Backports:

4.24.1.0.10

37907040

3-40346571471

POL-17097

Not able to retrieve parent context values in view mode of the page in a tab

Description:

For a use case when a user wants to filter out a field in the tab, based on the type of the claim, the following condition works correctly in create mode : "condition": "context.claim.type === 'R'". It does not work when the page is opened in view mode

Resolution:

For tab details pages conditional evaluation issue fixed for both create and edit mode

Backports:

4.24.1.0.10, 4.25.1.0.1

37908280

3-38056877861

POL-17103

Labels for regular flex code fields are not working while configuring it in search page

Description:

Labels are not getting displayed in search page, it works fine in hierarchical recursive page

Resolution:

Labels for flex code fields are working as expected when configured in search page

Backports:

4.24.1.0.10, 4.25.1.0.1

37924910

POL-17140

Data File Sets IP does not return the message text in the response for error codes DAT-IP-DAFI-013 and DAT-IP-DAFI-014

Description:

When encountering error codes DAT-IP-DAFI-013 and DAT-IP-DAFI-014, the associated error messages are not being displayed in the response. The expected behavior is that the error messages corresponding to these error codes should be returned in the response, providing more context and information about the error

Resolution:

When a data file set cannot be downloaded because its ZIP file is quarantined or still undergoing virus scanning, the application now displays a clear message explaining the condition and next action.

37931723

3-40662938551

POL-17155

User information is not available to use in floorplans using userJET property

Description:

The userJET property in the floorplan does not support setting default values or filtering data based on the current user.

Resolution:

Fields 'id' and 'displayName' of userJET property can be used in the floorplan for setting default values or filtering data based on the current user.

Backports:

4.24.1.0.10, 4.25.1.0.1

37892156

POL-16922

Tooltip displays incorrect minimum and maximum values for Reinsurance related percentage fields

Description:

The allowed value range for the following attributes should be: Minimum: 0.01 Maximum: 100.00

Applicable attributes: ReinsuranceTreatyReinsurerPersistable.reinsurancePercentage ReinsuranceTreatyPersistable.commissionPercentage ReinsuranceTreaty.retentionPercentage

However, the current tooltip displays the following incorrect ranges: ReinsuranceTreatyReinsurerPersistable.reinsurancePercentage: 0 to 999.99 ReinsuranceTreatyPersistable.commissionPercentage and ReinsuranceTreaty.retentionPercentage: -999.99 to 999.99

Resolution:

Adjusted metadata value ranges for percentage fields in reinsurance entities. The tooltips now correctly display the allowed range of 0.01 to 100.00

37832877

POL-16935

Attributes, Segments, More Section retain previous search result values in Accounting details page

Description:

In policy accounting details page, when a new search is done without closing Attributes, Segments and more section from previous search, these sections are not refreshed. It retains previous data.

Resolution:

Attributes, Segments, More Section don’t retain previous search result values in Accounting details

Backports:

4.25.1.0.1, 4.24.1.0.11

37637030

POL-16634

Populate EXTRA_INFO when activities are marked to TE by Heart-beat service

Description:

When the heartbeat service moves an activity to TE, it doesn’t capture the error reason in the EXTRA_INFO field, so there’s no record explaining why the activity was moved to TE.

Resolution:

The system now records the reason in EXTRA_INFO whenever the Heartbeat service marks activities as TE.

37876419

3-42957456931

POL-17068

Flex Code Base Views are both removed and updated at the same time

Description:

During Base View Generation, the generation of Flex Code Base View is unstable: (1) Concurrent update/remove operations occasionally targeted the same view, raising the Oracle error “table or view does not exist”. This happened intermittently. (2) The generator skipped creating some Flex Code Base Views whenever the Flex Code System code contained lowercase characters.

Resolution:

The update/removal operations are serialized to prevent errors like “table or view does not exist”, also, Flex Code Base Views are generated for Flex Code Systems with a code containing lowercase characters.

Backports:

4.25.1.0.14

38863355

4-0001814443

POL-18259

Boilerplate codes visible instead of the values on parameter values of a policy enrollment product

Description:

In Parameters tab, Percentage, Number and Service days boiler plate texts are displayed instead of actual values when we open it the first time

Resolution:

Translations are applied properly now and actual values are displayed instead of boilerplate texts

Backports:

4.25.1.0.14

35686861

POL-13355

Dynamic logic unit test statistics are incorrect

Description:

When the user queries something in the testunit dynamic logic and then tests another dynamic logic in the same testunit dynamic logic, the value/count for all query parameters displays incorrect

Resolution:

The reset method in the QueryStatisticsService is called for each dynamic logic because of which the statistics are cleared by the second dynamic logic. We need to ensure the reset method is called only once for every test unit call

38860653

POL-18256

Query API returns incorrect totalResults when groupBy is used

Description:

When the Query API is invoked with the groupBy parameter, the totalResults value in the response is incorrect. Instead of returning the total number of groups produced by the groupBy attribute, the response returns the total number of records matching the q attribute.

Resolution:

The Query API now returns the correct totalResults value when groupBy is used, reflecting the total number of groups produced by the groupBy attribute.

Backports:

4.25.1.0.14

38839290

POL-18235

AbstractNotificationTask logs the error only at WARN level

Description:

When the notification endpoint is invalid, the error is logged at the warning level after reaching the maximum number of retry attempts. This makes debugging challenging because the underlying cause remains unclear.

Resolution:

When the notification endpoint is invalid, the error is logged at the error level after exhausting all retry attempts, clearly indicating the cause of the issue.

Backports:

4.25.1.0.13

38851297

4-0001666248

POL-18246

Attach and Next not working for few fields with custom LOV filter

Description:

An error message is shown after adding billing account or billing allocations tabs in group client page using attach and next button

Resolution:

It is now possible to add multiple billing account or billing allocations using attach and next option

38953339

4-0001977685

POL-18343

Quote IP returns no results when parameter amount format differs from premium line amount format

Description:

Calculation results were not returned if the format of the parameterAmount in the payload(decimal or non-decimal) differed from the format of the amount defined in the premium line.

For example, if the premium line amount was 200 and the parameterAmount in the request was sent with 200.00, or vice versa, the system failed to recognize them as the same value. Although the numerical amounts were equal, the difference in format caused the premium line selection to fail.

Resolution:

The amount comparison logic has been improved to ensure that amounts are matched based on their numerical value rather than their formatting.

With this fix, Quote IP now correctly matches the premium line and returns calculation results regardless of whether the amount is provided in decimal or non-decimal format.

Backports:

4.25.1.0.13

38980799

POL-18371

When process registration is raising a functional error like POL-FL-PREG-002, the activity that executes it ends up with a Technical Error.

Description:

When process registration activity or submit with apply registrations are executed and some functional check is failing, the activity that started it ends up with status 'Technical Error' while it should be' Completed with Business error'.

Resolution:

The handling of functional errors with codes that start with 'POL-FL-PREG' is adapted so that no technical error is raised.

The exception to the rule is POL-FL-PREG-001: this message is informative and added when no matching policy is found to process registrations.

When submit policy is executed with parameter processAndApplyRegs true, business rule errors are treated differently as well: activity will not end up in technical error and not appear in trace file.

39114459

POL-18489

Task gets stuck when the system enters a critical memory state

Description:

A task can remain stuck in PROCESSING status when the system enters a CRITICAL memory state during task processing. As a result, the customer cannot restart/recover the task.

Resolution:

With this fix, if the system enters a critical memory state during task processing, the task status will be updated to ERRORED. This gives customers clear visibility that the task has failed and allows them to restart/recover.

Backports:

4.25.1.0.15

39113937

POL-18487

OAuth RestClientBuilder lookup fails due to duplicate enum keys across authentication feature enums

Description:

A key mismatch occurred due to duplicate OAuth enum values defined in different authentication feature enums, resulting in a lookup failure and the error “No RestClientBuilder specified for OAuth”

Resolution:

The application now correctly resolves the RestClientBuilder specified for OAuth

Backports:

4.25.1.0.15

39123017

4-0002345055

POL-18491

Making Activity Executor code more robust for edge case scenarios

Description:

Making Activity Executor code more robust for edge case scenarios like database exception that lately caused NPE exception in multiple threads at activity processing time.

Resolution:

Handling edge case scenario like database exception that lately caused NPE exception in multiple threads at activity processing time. Appropriate checks have been introduced to take care of NPE.

Backports:

4.25.1.0.15

38873382

POL-18274

Download button and column chooser is missing in registrations page

Description:

In pages like Global Activities/Payment Registration after user performs search, both download icon and column chooser are missing.

Resolution:

Download button and column chooser are displayed in registrations page

Backports:

4.25.1.0.12

38719121

3-42831655789

POL-18113

Connector configuration page: does not reflect updates to an existing changelist

Description:

Change list Values not getting updated properly, old changelist details are retained

Resolution:

Entity and Action are now correctly updated in change list on connector configuration page

Backports:

4.25.1.0.9, 4.24.1.0.14

39048596

4-0001572222

POL-18406

Duplicate child activities are created for a single policy update request

Description:

There is a polling mechanism to check for unprocessed policy update requests (status Queued), creating an activity if there are any unprocessed ones. But the submit of that activity, creating child activities and executing those will take time, setting the status to another status than Queued (like Loaded or Failed). So, when the next task is picked up through the polling mechanism, it can pick up the same policy update requests, because the status is not updated yet.

Resolution:

When an activity is created by the polling mechanism to pick up the queued policy update requests, the id of that activity is used to mark those requests immediately. That way, when a next task is created, no duplicate activities will be created: it will pick up requests only that are queued and not marked yet.

Backports:

4.25.1.0.18

37928830

POL-17144

Parameter domain: Rearrange Domain Value to left

Description:

In Parameter Domain Values pop-up, rearrange Domain Value to left so that alignment looks good

Resolution:

Domain Value is displayed before Date columns

38856795

4-0001793793

POL-18253

Missing secrets for OAuth clients while ohistore is used as keystore

Description:

Sometime OAuth clients show clientSecretRegistered as false even though secret is already set in the database.

Resolution:

OAuth client credential keys are now correctly fetched.

Backports:

4.25.1.0.14

39073704

POL-18432

Implicit deletion of Group Client Events creates a Policy Event

Description:

When deleting a Group Client, all related Group Client Events are also implicitly deleted (cascade delete). It is possible to configure a Change Event Rule on deletion of a Group Client Event, in which case a Policy Event is created with a reference to the corresponding Group Client. However, if a Group Client Event is deleted as a consequence of deleting the Group Client, the Group Client reference is no longer available. This leads to an error when transforming the resulting Policy Event into an Aggregate Event.

Resolution:

When a Group Client Event is removed implicitly due to cascade deletion of its associated Group Client, no Policy Event is created to represent the deletion of that Group Client Event.

Backports:

4.25.1.0.14

38997934

POL-18381

Aggregate Change Event creation date is set in application time zone

Description:

Aggregate Change Events display the creation date in the database server’s time zone, which may differ from the user’s application time zone. This results in incorrect timestamps for users in different regions.

Resolution:

Aggregate Change Events record creation date in the application time zone so the displayed time matches the user’s context. This applies only to events created after this change; existing records remain unchanged.

39835260

POL-19003

Query API fields parameter does not expand dynamic fields on referenced entities

Description:

A Query API search using the fields parameter did not expand requested dynamic fields on an entity when that entity appeared through one or more resource paths

Resolution:

The Query API response now includes dynamic fields and records strictly based on the request parameters. Dynamic fields and records are returned only for the lists explicitly specified in the fields parameter. The fields attribute takes precedence over the expand attribute.

Example

Assume a dynamic field paymentPreference is defined on the Provider entity. To retrieve this field for a serviceProvider at the Claim level, use the following request body:

{
    ...
    "resourceRepresentation": {
        ...
        "fields": "serviceProvider.paymentPreference"
    }
}

Prior to this fix
The request did not return the dynamic field paymentPreference for the specified serviceProvider path.

After this fix
The response includes paymentPreference only for the explicitly requested serviceProvider path.

To retrieve paymentPreference for the serviceProvider at both the Claim and ClaimLine levels, explicitly specify both paths in the fields parameter:

{
    ...
    "resourceRepresentation": {
        ...
        "fields": "serviceProvider.paymentPreference|claimLineList.serviceProvider.paymentPreference"
    }
}

Additionally, if an entity (for example, Person) appears in more than one sub-resource, such as Policyholder and PolicyEnrollment, the response includes data only for the paths explicitly requested through the fields attribute.

This behavior applies to all APIs. Representative examples include:

  • Person appearing under Policyholder and PolicyEnrollment in the Policies application using the policies Generic API

  • Person (servicedMember) appearing at the Claim and ClaimLine levels in the Claims application using the claims Generic API

  • Provider (serviceProvider, servicedProvider, claimantProvider, and similar references) appearing through different resource paths in applications that expose these entities, including the Claims and Capitation applications

38877856

4-0001712606

POL-18277

Validation rules marked as "exclude from validation" are executed during example calculation and quote IP.

Description:

When "Exclude from Validation?" is set to true on a policy validation rule, this rule should not be executed during Example Calculation and Quote IP.

Resolution:

Validation rules with "Exclude from Validation?" true are excluded during execution of validation rules in Example calculation and Quote IP.

Next to that, for Example calculation and Quote IP: before calculation of premium, the data changed in the validation rules are temporarily persisted to make sure that premium calculation picks up these changes.

Backports:

4.25.1.0.14

39045173

POL-18405

When validation error ocrcurs in submitting a policy, this process step is not retried

Description:

When submitting a policy, if a process step (except for the first one) fails, it is retried in a separate transaction. When the handling of business errors was changed, the retry was not applied.

Resolution:

When a validation error occurs, it is retried for that process step, same as any other error.

39014238

4-0002303899

POL-18394

After the ADB patch, the extract activity failed with ORA‑00028 - your session has been killed ERROR

Description:

The extract activity failed with ORA‑00028 (“your session has been killed”) following the ADB patch. During the patching process, DBMS_CLOUD was temporarily invalidated. Since OHI_OBJECTSTORAGE_PKG depends on DBMS_CLOUD, some existing application/JDBC sessions continued to use a cached (stale) package state. As a result, the scheduled exchanges/extract activities referenced the stale package state, and the affected sessions were terminated, causing the activity failures.

Resolution:

ORA‑00028 is now handled by the application, and the affected activities are automatically re-tried when this error is encountered.

Backports:

4.25.1.0.14

38819741

4-0001674695

POL-18215

Dynamic logic fails when an output writer is created but no data is written in data file stored in object storage

Description:

Dynamic logic fails when the output writer is instantiated even though there is no data to process and no write operation is performed on the data file stored in object storage

Resolution:

The system allows the output writer to be instantiated and closed without performing any actual write operation on data file stored in object storage.

Backports:

4.25.1.0.13

38795305

POL-18194

Extended Support for ohiHttpRequest Across Additional Signatures

Description:

Previously, ohiHttpRequest was accessible only from dynamic logic of Callout Rule signature

Resolution:

ohiHttpRequest is now accessible from additional signatures, including (but not limited to) Change Event Rules, Test Units, and Policy Validation Rules

Backports:

4.25.1.0.13

38756088

3-42823918651

POL-18161

Node crash when outbound messages are sent to external application in certain scenario

Description:

Node crash when outbound messages are sent to external application in certain scenario.

Resolution:

Added appropriate fix and checks to ensure smooth working of node.

Backports:

4.25.1.0.13

38554171

4-0001365237

POL-17931

Both code and formatted name should be displayed for policyholder

Description:

On the policy search and detail pages, the policyholder name is not displaying.

Resolution:

The code and policyholder name are displaying correctly on the policy search and detail pages.

Backports:

4.25.1.0.9

38764616

POL-18165

The view that is generated for showing policies in progress (pol_rep_policies_in_progress_vw) could be containing errors

Description:

The presence of nested attributes like policyholder.gender or policyholder.name (which is a JSON object created using 'json_object') in the view pol_rep_policies_in_progress_vw implicitly tells Oracle to treat the results as JSON-compatible. This allows the outer query to successfully access the other (implicit) json objects by using dot notation.

But, we have seen instances where this implicit treatment could not be met, causing errors saying that the system does not know what to do with 'poli_info.relation_info.name'.

Resolution:

The object types are treated as JSON_VALUE, which in turn makes sure that the view pol_rep_policies_in_progress_vw is created without errors.

39075620

4-0002220932

POL-18434

Search on mobile phone number on relations is slow.

Description:

Search on mobile phone number of relations is slow.

Resolution:

Improved response by adding an index on mobile phone number of relations

Backports:

4.25.1.0.15

38234042

3-41289181361

POL-17518

Send notification only when an activity fails

Description:

A notification is sent out to a configurable endpoint every time the parent activity is finished. Problem with this existing functionality is that it sends a notification every time an activity is finished, regardless of the state and regardless of the type of activity. Since there are types like connector configuration that trigger multiple activities per day, there will also be multiple notifications. In this case a notification should be send only when the activity completes with errors, so the system is not flooded with notifications.

Resolution:

Added new system properties to steer when to send notifications:

  1. ohi.activityprocessing.notification.type

  2. ohi.activityprocessing.notification.type.{0}

The {0} placeholder is the code of the activity type, for example:

ohi.activityprocessing.notification.type.INTEGRATION_OUT_PROCESSING

This property can be used to override sending notifications per activity type.

These properties take effect only if system properties for notification endpoints are configured.

Possible values are:

  1. Always: Sends a notification whenever a parent activity is completed.

  2. OnFailureOnly: Sends a notification only when a parent activity is completed with errors.

  3. Never: Does not send a notification after a parent activity is completed.

38978218

POL-18367

Error message is shown in GrountAccountProduct while saving

Description:

Since it is not possible to Add GroupAccountProduct while creating Group Account, disable 'Add Group Account Product' until the Group Account is saved and enable only in View Edit page.

Resolution:

Custom 'Add GroupAccountProduct' Button is changed to 'Add' button and 'sequence' column is added to table

Backports:

4.25.1.0.14

39409606

4-0002679067

POL-18745

Function API access mapping is missing for User View Preferences API

Description:

A user who has the ALL_FUNCTIONS_ACCESS_ROLE gets an error while using Landing (Policies Search) page. User View Preferences API access is missing in JET login access role - CO0019 which leads to Not Authorized error.

Resolution:

User View Preferences API access is added to CO0019 function access so that there is no access error

Backports:

4.25.1.0.18

39079001

4-0002265614

POL-18436

Automatic Task Recovery Delayed on Application Restart

Description:

After an application restart, the automatic task recovery process did not start immediately. Instead, it waited for the duration specified by the ohi.taskprocessing.scheduler.frequency property before initiating the first recovery attempt.

Resolution:

Automatic task recovery mechanism has been enhanced so that, upon application restart, the recovery process runs immediately regardless of the frequency setting. This ensures that tasks stuck in a given status are addressed promptly without unnecessary delay.

Backports:

4.25.1.0.16

39081090

4-0002265614

POL-18441

When a lot of Quote requests are executed (a high load) with same new (dummy) person the performance slows down

Description:

When the volume of Quote IP requests is high, the database experienced significant ITL wait events. Analysis shows that ~95% of these waits occurred on the index REL_RELATION_IDX1, which is based on the NAME column of persons. The issue is caused by multiple Quote IP requests inserting rows with identical or very similar relation names, causing concurrent inserts to target the same index blocks. This leads to index block contention and ITL allocation waits, effectively creating a hotspot in the index.

Resolution:

For new persons in Quote request, the name of those persons is randomized to avoid contention in indexes on name. The response will still show the original person names in the request, so no functional changes.

Backports:

4.25.1.0.14

39683250

POL-18871

Activity purge fails with integrity constraint violation error.

Description:

Activity purge fails with an integrity constraint violation error because not all child data associated with the activity is cleaned up successfully.

Resolution:

Child data associated with the activity is now successfully deleted before the activity is purged.

Backports:

4.25.1.0.19

39205483

4-0002304760

POL-18597

Integration Event Aggregate Creator can remain errored without spawning the next task

Description:

Connector configuration processing depends on a periodic Integration Event Aggregate Creator task. Previously, if the task failed while completing execution or scheduling its successor, the current task could end in Errored state without a follow-up task being available, causing connector configuration processing to stop until manual intervention.

Resolution:

The task error-handling flow was updated to create a follow-up Integration Event Aggregate Creator task when execution fails and the current task is marked Errored. This ensures connector configuration processing continues without requiring manual recovery.

Backports:

4.25.1.0.19

39568951

4-0002996907

POL-18816

Business events does not return the correct policy enrollment in the change objects when updating flex code in policy

Description:

When business events were generated for updates to dynamic fields on a policy enrollment product, the change object could reference the previous policy enrollment instead of the current/latest policy enrollment. This could cause notification dynamic logic or integrations consuming the business event payload to evaluate the wrong policy enrollment for the changed object.

Resolution:

The policy version change detection logic now enriches the object changes using the working policy version. This ensures that dynamic field changes on policy enrollment products are associated with the current policy enrollment.

Backports:

4.25.1.0.21

39128518

POL-18510

ORA‑06502 when querying a base view with column names longer than 30 characters in on‑prem deployment.

Description:

When a base view contains column names beyond 30 characters, the on‑prem runtime raises ORA‑06502: PL/SQL: numeric or value error: character string buffer too small while retrieving the result set.

Resolution:

Data transfer on on-prem deployments now handles columns longer than 30 characters without raising ORA‑06502.

39408160

4-0002782929

POL-18743

Mark cacheEnabled and invalidateLater as volatile in DynamicLogicServiceImpl to prevent stale cache state across threads

Description:

After dynamic logic was updated through CMT while the dynamic logic cache was disabled, some application nodes could continue executing the previously cached dynamic logic executable after the cache was enabled again. This could result in inconsistent calculation behavior across nodes because the latest dynamic logic definition from the database was not always used immediately after the CMT update.

Resolution:

The dynamic logic cache state flags used for cache enablement and delayed invalidation were made safely visible across threads. With this change, delayed invalidation requests made while the cache is disabled are reliably applied when the cache is enabled again. This ensures stale dynamic logic executables are invalidated and subsequent executions use the updated dynamic logic definition.

Backports:

4.25.1.0.19

38818823

POL-18210

For policies in progress reporting view: the gender information about policyholder is changed

Description:

Gender was based on gender identity while it should have been based on gender itself.

Resolution:

Gender of policyholder in the progress policy view is now based on gender and a new attribute gender_identity is added.

38230176

3-41554949011

POL-17513

Message parameters are not getting substituted correctly for policy messages

Description:

When there are multiple validation rules that adds message to the policy and any parameter is added in it, it doesn’t take the parameter and shows null in the message description.

Resolution:

Parameters are substituted now in policy messages.

Backports:

4.25.1.0.2

38229848

3-41581034241

POL-17512

When creating adjustmentrules the valueAmount field is getting limited in the range from -99999999.9999 to 99999999.9999

Description:

When creating adjustmentrules the user defined schedule dimension of type amount is getting limited in the range from -99999999.9999 to 99999999.9999.

Resolution:

The limit was increased to allow amount in the range from -9999999999.9999 to 9999999999.9999

Backports:

4.25.1.0.2

38159303

3-41533253061

POL-17241

Group client Enrollment Products : LOV Search is not working

Description:

Unable to add Insurable class and Enrollment product value. Getting "GEN-PROC-002: Value "undefined" provided is not of type Number" error. Similar issue is observed in Group Account Add On in Group account available product.

Resolution:

It is possible to add Insurable class, Enrollment product value and Group Account Available Product Add On by using LOV dropdown

Backports:

4.24.1.0.12, 4.25.1.0.3

38001482

3-40882994521

POL-17228

NS0 namespace getting added in tags of system generated XML files.

Description:

NS0 namespace was getting added in tags of system generated XML files. This additional namespace is not a part of OHI interface and was getting inserted by external third party libraries.

Resolution:

NS0 namespace has been removed from tags of system generated XML files.

Backports:

4.25.1.0.10

38077799

3-40760119291

POL-17322

Unable to update start date of time-valid flex code through dynamic logic

Description:

When dynamic logic updates a time-valid flex code record and changes its startDate, the existing row is not found because matching is done using the old startDate. As a result, the update is skipped and the changed startDate is not persisted.

Resolution:

For time-valid dynamic fields, if the incoming dynamic field object contains an id, the existing row is matched by id instead of by startDate. Only when id is absent does the logic fall back to startDate based matching, allowing startDate changes to persist correctly.

39585141

POL-18821

Carry over amounts are not included in payment reconciliation

Description:

In some recalculation scenarios, a payment can be applied to a period that is earlier than the payment’s own pay date. When this happened, payment registrations after the look-back date were selected for reapplication, but related carry-over registrations with a later applied pay date were not always selected. This could cause carry-over amounts to be excluded from payment reconciliation.

Resolution:

The Apply Registrations process now selects carry-over and carry-over offset registrations when their applied pay date is on or after the date from which registrations are selected for recalculation. This aligns carry-over handling with payment registration handling and ensures carry-over amounts are included in recalculation and payment reconciliation.

Backports:

4.25.1.0.19

38111112

3-41091694751

POL-17364

Policy details page is not loading when user validates any policy which is in edit status, also auto refresh not working after validation

Description:

When an existing policy contains a message without a process step, the Policy Details page fails to load. Additionally, if a policy is in edit status and a user validates and a message attached which doesn’t have process step, the page does not refresh after validation, and the Policy Details page fails to load.

Resolution:

Policy page loads now after Validate Operation without error. Note: There is a known issue that loading icon sometimes doesn’t get closed automatically in expanded view mode

Backports:

4.24.1.0.12, 4.25.1.0.1

38010910

3-40830348001

POL-17246

Incorrect cause shown in policy output history

Description:

Incorrect cause shown in policy output history. When the cause is Manual Output Generation, the system shows change event.

Resolution:

Policy output history now displays correct cause.

Backports:

4.25.1.0.1

38250930

POL-17545

When executing data masking, ORA-00942: table or view does not exist.

Description:

When executing ohi_data_masking_pkg.mask_data_parallel, "ORA-00942: table or view does not exist" was raised. This was caused because of seed data that controls which tables or columns have to be truncated or nullified respectively contained references to non-existing tables.

Resolution:

Removed entries for non-existing tables in seed data for data masking.

Backports:

4.24.1.0.12, 4.25.1.0.3

38223637

POL-17503

Adjustment override screen shows incorrect message

Description:

Create an enrollment product without specifying a time period, the system displays an error message on the Adjustment Overrides page with boilerplate text instead of "Time period not found."

Resolution:

Adjustment Overrides page shows message "Time period not found" when no time period is added during Enrollment Product creation.

38148913

3-41007344251

POL-17407

Unable to add product in policy from Change Product option.

Description:

Unable to add product in policy from Change Product option as Ok button is not working as expected. No action is performed after clicking on Ok button when user selects current date as start date.

Resolution:

Change Product operation works fine in Policy Page.

Backports:

4.25.1.0.4, 4.24.1.0.13

38390327

4-0002948505

POL-17723

System randomly throws optimistic locking exception while updating dynamic logic on CFS deployments

Description:

In certain scenarios, updates made to dynamic logic were not immediately reflected at runtime because the internal cache reload process could occur before the relevant database transaction was committed. This timing issue could cause the cache to be repopulated with stale data.

Resolution:

The dynamic logic cache reload process is now triggered only when the update transaction is committed, ensuring that the cache consistently reflects the most recent changes.

Backports:

4.25.1.0.4, 4.24.1.0.13

35031582

3-31969350441

POL-12085

Query API returns incorrect results for combined conditions

Description:

When you do a query search with a combination of a null, for instance (multicore.eq('Y').or.multicore.eq(null)), the result shows the records having value Y and not the ones with a null value.

Resolution:

When a query search is done with a combination of a null, the rows with null values are returned correctly.

39774178

4-0003329452

POL-18941

Request formed for end policy is sending updated end date for parameters which already have end date

Description:

Request formed for end policy is sending updated end date for parameters which already have end date because of which GEN-TMVL-006 is thrown

Resolution:

Modified the end policy request formation logic to avoid sending an updated end date for parameters that already have an existing end date. The request now updates the end date only for active parameters, preventing duplicate end date updates and eliminating the GEN-TMVL-006 validation error

Backports:

4.25.1.0.20

39773685

4-0003336292

POL-18938

Incorrect sorting of fields in Multi-Value Dynamic Fields in view mode.

Description:

When sorting by a specific column containing a reference type, the displayed values in a Multi-Value Dynamic Field did not follow the configured sort criteria.

Resolution:

All the columns of multi value dynamic field are sorted correctly based on sort criteria configured

Backports:

4.25.1.0.20

39779684

POL-18953

Code generation using dynamic logic: if dynamic logic returns null, the code is stored as literal "NULL'

Description:

If dynamic logic for, for instance policy, code generation returns a null value, then the code is stored as literal NULL.

Resolution:

When dynamic logic used for code generation returns no value, the application uses the ID as the code. This matches the behavior when no code-generation dynamic logic is configured.

38516541

3-42818631771

POL-12671

Database queries to pick up events for connector configuration are slow

Description:

The connector configuration queries to pick up unprocessed events are slow, making it highly CPU-intensive and placing significant load on the database.

Resolution:

Optimized the connector configuration queries.

In addition the events are picked up as soon as the activity is created, not until it is submitted. This reduces the chance of sending duplicate aggregated events.

Note: The aggregated events now refer to a (enabled) connector configuration. This means that for each enabled configuration with the same aggregated type, an aggregated event is created. For example, if there are two connector configurations with the type POLI and a change event of the same type, two aggregated events are created. This also means, that, when a policy event does not point to an existing, enabled connector configuration, unnecessary aggregate events will not be created. Also: if a connector configuration is added with an aggregate type that matches an existing one (like POLI) after aggregate events are created: the aggregate events will not be picked up for that new connector configuration. Aggregate events are processed per connector configuration they refer to, not per aggregate type.

It is recommended to disable connector configurations that are not used (anymore): this will decrease the amount of unnecessary aggregate events created.

Backports:

4.25.1.0.8

38652948

3-42822239671

POL-18047

Group Client page is not loaded when it is in In-Process Status

Description:

The Group Clients page does not open when it is in In-Process status. Expected behaviour is to view In-Process group client only in view mode

Resolution:

Able to open In-Process group client in view mode

Backports:

4.24.1.0.14, 4.25.1.0.9

38718566

3-42761376561

POL-18111

Quick search operator is changed to 'eq' for Policy Code in policy activities page

Description:

To address performance issue, quick search operator is changed to 'eq' for Policy Code in policy activities page and creation date 'between' is added

Resolution:

It is now possible to search policy activities matching the 'exact' policy code in quick search so that there is not much delay in response

Backports:

4.25.1.0.9

38010565

3-40795406971

POL-17243

Property 'userJET' should expose userid, login name, display name, last login timestamp, defaultCountry information

Description:

Property 'userJET' is exposing only displayName and id fields and not rest of the information in UserInformation IP

Resolution:

Property 'userJET' gives access to user id, login name, display name, last login timestamp, defaultCountry information about the logged-in user

Backports:

4.25.1.0.1, 4.24.1.0.11

38011755

3-40699032496

POL-17247

'Submit after update?' field is not displaying correctly on the macro screens

Description:

When executing a macro for a Group Client or Group Account, the 'Submit after update?' field in the "Parameters" tab is not getting reflected.

Resolution:

The value for 'Submit After Update' field is displayed now in parameter tab.

Backports:

4.24.1.0.12, 4.25.1.0.1

38388200

3-41612607721

POL-17720

Reversed Calculation Results included during reconciliation calculation

Description:

When reconciliation is applied to the last period of a period span, the system will look for the latest version of the calculation results that have a start date between the start of the span and the start of the last period. In fact, the system will look for all the start dates of the calculation results within that period, and afterwards takes the latest Calculation Result version per start date. This means that if the latest Calculation Result is reversed, it is also included in the search. At the end, all the amounts of those Calculation Results are added up and subtracted from the amount that should be paid for the entire span.

Resolution:

Reversed Calculation Results are not included in the search during reconciliation.

Backports:

4.23.1.0.13, 4.25.1.0.6

38522466

POL-17896

Improve retrieval of accounting details in UI-pages

Description:

It was noticed that getting accounting details for a policy was slow.

Resolution:

Added index on subject of the accounting detail to improve retrieval of accounting details per policy/claim (a.k.a. subject).

Backports:

4.25.1.0.7

38094525

POL-17338

Policy process flow: Value is not shown in read only mode for policy rule step

Description:

Inside policy process flow record when user views any policy rule step ( validation rule / call out rule), it is shown blank

Resolution:

Value is now displayed for policy rule step in readonly mode also

Backports:

4.25.1.0.1

38105887

POL-17358

Group Account Activity - Boilerplate issue in Activity messages tab

Description:

Boilerplate value is not shown in Group Account Activity - Messages tab

Resolution:

Fixed added to show correct boilerplate value in Group Account Activity page

Backports:

4.25.1.0.1

37947740

3-40947650401

POL-17163

Bill Receiver is missing in More section for Premium Bill Allocation tab on Policies Page

Description:

Bill Receiver is missing in More section for Premium Bill Allocation tab on Policies Page

Resolution:

Bill Receiver has been added as a region in Billing allocations tab

Backports:

4.25.1.0.1, 4.24.1.0.11

37976692

3-38637505211

POL-17202

Unable to search policy/person for member having apostrophe in the name.

Description:

Users are unable to search for a person or policy when the member’s name contains an apostrophe. For example, if the person’s last name is D' Souza, the API throws an error instead of returning the expected result.

Resolution:

UI handles apostrophe in search input and returns expected results. When configuring filter, prefilter, prefilterList, widget query etc users must manually escape apostrophes in the value of the query expression by using another apostrophe.

Backports:

4.25.1.0.1

38117268

POL-17365

Error when submitting a policy with a policy bill receiver referring to an organization

Description:

An unexpected error occurred when submitting a policy with a policy bill receiver referring to an organization.

Resolution:

The policy change detection mechanism, which is executed during submit, is handling policy bill receiver correctly: if policy bill receiver is referring to an organization no separate change event is created.

37958338

POL-17128

Unable to save Parameter Domain Values of Parameter Domains tab in Enrollment Products after an error is resolved

Description:

When an error is encountered in Parameter Domain Values, the record cannot be saved after fixing the error.

Resolution:

When an error is encountered in Parameter Domain Values, the record can be saved after fixing the error.

Backports:

4.25.1.0.2

38587009

3-42470374891

POL-17950

Can’t add new columns to flex codes definition if it has no descriptor field

Description:

While Adding a new row in the Flex Code Field Usages (Record Fields) tab for an existing Flex Code Definition without a descriptor field triggered a confirmation dialog to save the definition without a descriptor field, but the Save action on this dialog did not function as expected

Resolution:

Save action on the confirmation dialog for saving a Flex Code Definition without a descriptor field now works as expected

Backports:

4.25.1.0.13, 4.24.1.0.14

38455957

3-42026264111

POL-17790

Date fields should be shown at the last in Reference Sheet Lines table

Description:

Sequence is applied for dynamic columns but Start Date and end date is not displayed at the last in Reference Sheet Lines table

Resolution:

Columns are sorted based on sequence and Start/End date are shown at the last

Backports:

4.25.1.0.5

38393537

3-41612607721

POL-17727

Reconciliation is applied to catchUp periods

Description:

Reconciliation is applied to the last period of a span. When a new Policy Collection Setting is created, it is possible to configure the start date of the Collection Setting before the reference date, creating a CatchUp period between the start date and the reference date. This CatchUp is usually a period at the end of a span (the span before the first regular cycle). Therefore, the system applies the reconciliation logic to this period. But, reconciliation should not happen for this period as the span configuration of the new Collection Setting could be completely different, resulting in different daily amounts.

Resolution:

When reconciliation is about to be applied, the system checks if the calculation period at the start of the span belongs to the same span as the reconciled period. If not, reconciliation will not happen.

Backports:

4.25.1.0.7

38741293

4-0001470832

POL-18147

If an error occurs during validate policy operation, the response is unclear and the actual error is not shown

Description:

If the dynamic logic for validation rules causes some failure, like a business rule violation or invalid dynamic logic, then the response is incorrect. It gives 500 error instead of 422 and the error message is unclear: "GEN-PROC-ERR: An error occurred in processing the request; for more information about the error search the logging for occurrences of …​" (where the dots represent the original exception raised).

Resolution:

The handling of errors is improved for validate policy to show the proper response.

The handling of business rule errors because of dynamic logic called in submit policy process has also been changed: activity message shows the proper business rule message and the activity ends in "Business Error" status instead of "Technical Error".

Backports:

4.25.1.0.13

38566694

3-42139608691

POL-17933

Inconsistent meta model generated when using objects/generate API

Description:

When the meta model is generated using the objects/generate API, some classes are incorrectly extending the same superclass.

Resolution:

While generating the meta model, the parent class was compared with the current class, and the issue was resolved.

38158312

POL-17419

Policy calculation periods not re-generated when lookback date is not specified in the calculate premium activity request.

Description:

Policy calculation periods are not regenerated when calculate premium activity is run after a mutation. This is because policy calculation periods are not replaced when look back date is not specified. Replacement is based on policy mutations with an effective date on or after look back date. If the latter is empty, no policy mutations are selected and so, no policy calculation periods are deleted. This is applicable for non-AU implementations only.

Resolution:

When lookback date is not specified in the calculate premium activity request, it takes the value of the mandatory calculationperiod parameter.

38275258

3-41408859911

POL-17563

Missing access restriction mapping for accountingdetails API on payment registrations page

Description:

'accountingdetails API' is not added as seed data for functional API access mapping for Payment Registrations page

Resolution:

Missing Access Restriction mapping added for Payment Registrations page

Backports:

4.25.1.0.4

39747192

4-0002675908

POL-18924

Fixed number field validation to accept valid decimal values

Description:

Numeric fields that allow no digits before the decimal point caused valid decimal values to be rejected.

Resolution:

Valid decimal values are now accepted when the number field definition allows no digits before the decimal point.

39768937

4-0003326305

POL-18935

Reference sheet lines remain unavailable after creating flex codes removed through CMT

Description:

Reference sheet lines are not returned when they reference a flex code that was missing during an earlier lookup and is subsequently created. The missing lookup result remains cached, so the reference sheet lines remain unavailable until the affected application nodes are restarted.

Resolution:

When a previously missing flex code is created, its flex-code lookup is refreshed. Associated reference sheet lines are returned without restarting application nodes.

38247373

3-41569045301

POL-17526

Data file extracts to object storage were recorded with a zero content length in the database.

Description:

When data files were stored in object storage, files generated by extracts were recorded in the database with a content length of 0. As a result, the X-Content-Length header for these files was also set to 0, causing file length verification to fail.

Resolution:

The content length is accurately recorded for data files stored in object storage. The X-Content-Length header correctly reflects the actual file size, ensuring successful file length verification.

Backports:

4.25.1.0.3

38336179

3-41728688211

POL-17647

Increase in heap memory usage following the Groovy 4 upgrade

Description:

Post Groovy 4 upgrade, noticed higher memory usage, which can slow down the system. Groovy stores the reference of large Groovy-meta-class objects using soft references, meaning these objects are only removed when garbage collection runs and memory is low. Before this happens, the system can approach critical memory levels, triggering safety measures that reduce processing capacity on affected nodes and cause visible performance issues.

Resolution:

We have disabled the use of Groovy meta classes to address the memory issue. The necessary functionality will now be provided using non meta class references and methods instead.

Backports:

4.25.1.0.9

38601536

POL-17504

Index.html is added to URL after login with IDCS config

Description:

Post login, index.html is getting appended to application URL. This is observed in SAML authentication flow

Resolution:

index.html is not observed in the application URL in SAML authentication flow post fix.

Backports:

4.25.1.0.9

38685506

POL-18076

Unable to update amount to function for premium schedule line API and vice versa

Description:

When trying to update amount to null and set function (and vice versa) for premium schedule line, error "POL-PREL-001 Exactly one of amount and function must be specified" is displayed. Same issue occurs for fee schedule line: "POL-PFSL-001:Exactly one of amount and function must be specified". This is caused by these attributes not being cleared properly.

Resolution:

The amount and function attributes are cleared if specified as such.

And when currency for amount is not specified, it should take the default currency (or currency of premium schedule in case of premium schedule line) or the currency from the existing, if line exists.

38158039

POL-17416

When an optimistic lock on entities like policy calculation periods occurred, the logs where poluted by giving an error

Description:

When a lock on entities like policy calculation periods occurred, the logs where poluted by giving an error like: .SQLException: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

While this was also given as error to the customer.

Resolution:

Log level is changed into debug in case of an optimistic lock failure.

38077360

POL-17321

eventDate attribute in logapplicationevents and logdynamiclogicevents resources ignores time component

Description:

The eventDate attribute in both logapplicationevents and logdynamiclogicevents resources ignores time component in Query API. So, the query criteria including a time component (e.g., 2025-06-15T14:30:00 are not honored. The system defaults to 00:00:00 as the time, effectively filtering by date only. Also, the response payload includes only the date portion, omitting time entirely.

Resolution:

The eventDate attribute is updated to honor the time component in Query API criteria. The response now also includes the time component (hours, minutes, and seconds). Fractional seconds (e.g., milliseconds) are not included in the response.

Backports:

4.25.1.0.4

38482987

3-42200427161

POL-17855

Process policy activities cannot be executed concurrently for a given policy

Description:

Only one process policy activity should run at a time for a policy as multiple concurrent process policy activities can lead to data inconsistency.

Resolution:

Only one process policy activity will be allowed to execute for a given policy at a time, others will be marked as complete with an attached error message.

Backports:

4.25.1.0.7

38068104

3-40812684771, 3-40873628911

POL-17311

Added custom content-Length header (X-Content-Length) to the data file response for validation during file downloads in OIG

Description:

Enhance the getFileContents API in DataFile to include a custom response header X-Content-Length, allowing the calling application to verify if the full content has been received.

If there’s a mismatch or if the response header is missing (incase of partial response) , the application can retry the API to retrieve the complete content

Resolution:

To address issues of incomplete or failed data file downloads in Oracle Insurance Gateway (OIG), content length validation has been implemented. This validation is triggered when OIG detects partial data by comparing the actual content length with the expected value provided in the custom response header "X-Content-Length". This header is now included in the POL data file response to enable accurate validation.

Backports:

4.24.1.0.12, 4.25.1.0.1

37892148

POL-16926

Corrected Field Length Range Validation and Tooltip Display

Description:

The tooltip for the Field length attribute incorrectly displayed the allowed range as -9999 to 9999, instead of the correct range: Minimum: 1 Maximum: 1000

Additionally, while the maximum limit (1000) was enforced, negative values were still allowed through the API due to the absence of a minimum value check.

Resolution:

  1. Updated metadata to reflect correct tooltip range: 1 to 1000.

  2. Aligned validation with other generic entities, replacing COD-FIEL-004 with GEN-RULE-012.

38439908

3-42102120891

POL-17772

In Activity pages, for Column 'created By', values are not displayed on scroll

Description:

Policy Activities page: user log (created By) values are not displayed when user tries to load records with scroll bar.

Resolution:

createdByJET & lastUpdatedByJET properties are now displayed in Search pages when user scrolls

Backports:

4.25.1.0.5

35988527

POL-13928

Remove GET support on datafilesets IP

Description:

Remove the GET operation on the datafilesets IP endpoint as it is no longer required.

Resolution:

Removed the GET operation on the datafilesets IP endpoint.

38814591

4-0002159777

POL-18121

The Person API does not accept non Latin or accented characters in the local part or user name of the email address.

Description:

The Person API does not accept non Latin or accented characters in the local part or user name of the email address.

Resolution:

The Person API now accepts non Latin or accented characters in the local part or user name of the email address.

Backports:

4.25.1.0.14

38222165

POL-17501

Boilerplates are visible in Policy process flow page on page load

Description:

On initial load of policy process flow page, boilerplates are seen for "Set Default flow" button.

Resolution:

Proper labels are loaded for "Set Default flow" submit instead of boilerplates.

Backports:

4.25.1.0.3

38282317

3-41496402011

POL-17588

Error when creating individual and organization providers using 'Save and Next' action in JET UI

Description:

Users are getting an error when creating individual and organization providers using JET UI. This error occurs when you create a provider and click 'Save and Next' button and subsequently try to create a second provider. Error : Value "undefined" provided is not of type Number (post , flexcodesetdetails).

Resolution:

Fixed the issue preventing users from creating individual and organization providers using the 'Save and Next' action.

Backports:

4.25.1.0.3

38353189

3-41861508911

POL-17662

Tab Space is present in floorplan Code

Description:

The Medicare Disenrollment Reasons system floorplan contained an unintended space in its code. Additionally, the associated Medicare Disenrollment Reasons LOV used a non-unique code, resulting in inconsistent naming across the configuration and requiring a unique identifier.

Resolution:

Space is removed in floorplan code for MEDICAREDISENROLLMENTREASONS and code is changed for MedicareDisEnrollmentReasons LOV as MEDICAREDISENRREASONSLOV

Backports:

4.25.1.0.5

38953157

4-0001856831

POL-18341

Business rule POL-POEP-001 is too lenient on the policy group account side, causing issues to put a policy in EDIT state after approval.

Description:

It is possible to approve a policy with an inconsistent policy group account and policy enrollment product periods: like a policy enrollment product attached to a group account product period that starts before the policy group account. Steps to reproduce: 1. add a policy group account with a period like 2026-01-01 2. add a policy enrollment product with same period and save. 3. end policy enrollment product on for instance 2026-01-31 4. move the start date of the policy group account period with a start date after the end date of the policy enrollment product and save. This should lead to error POL-POEP-001, because that policy enrollment product is still attached to that group account via its product, but the save is successful. Approve the policy and edit the policy: now, the POL-POEP-001 is raised, because with edit policy, data like policy enrollment products are created, causing the rule POL-POEP-001 on the policy enrollment product to be triggered. It is impossible to get such a policy in edit status.

Resolution:

The POL-POEP-001 check on policy group account is made in-line with the check on policy enrollment product, so it is not possible to get the policy in approval state (and not being able to edit after without the business rule POL-POEP-001 being raised).

38902346

4-0001811737

POL-18303

Boilerplates are shown Parameter Values In Member Foldout page

Description:

Boilerplates are shown in member foldout for parameter values in products section instead of translated values.

Resolution:

Correct text values are shown instead of boilerplates for parameter values in products section of members foldout page

Backports:

4.25.1.0.17

39176381

4-0001814976

POL-18554

Multiple policies in Edit mode and not able to submit or purge when pre-enrollment is enabled.

Description:

When multiple policies are in Edit mode and system property "ohi.preenrollment.membercopy" is set to true, sometimes submitting a policy ended up in a unique key violation or purging a policy ended up in a foreign key violation.

This happens when a new person is added in one policy using Policy In IP and that policy remains in Edit status, while a second policy uses the same (now existing) person with a person change (for example Date of Birth update) using Policy In IP.

If the second policy is submitted first, a unique key violation can occur. If the first policy is purged, or if a later version of that policy is reverted and then an earlier version is purged, a foreign key violation can occur.

Resolution:

When a policy is submitted for a new person that also acts as a base for a working copy in another policy, or when a working copy is created for that person, policyGid is cleared where needed to prevent duplicate key conflicts.

Revert processing now also cleans stale person relation policyGid references so reverted versions do not leave inconsistent links behind.

Purge policy no longer tries to remove new persons when they are still in use by another policy. Instead, only the policyGid of the purged policy is cleared for persons on that policy.

Backports:

4.25.1.0.17

39112715

POL-18483

Domain attribute allowlist property set through API was not applied at runtime

Description:

The property ohi.untrusteddata.allowlist.domainattribute was not being applied when configured through the API. The same property continued to work correctly when set in the properties file. As a result, valid requests could still be flagged by the default untrusted-data intrusion check after the property was updated through the API.

Resolution:

Fixed the allowlist refresh behavior so updated domain attribute values are picked up immediately, preventing valid requests from being incorrectly flagged by the default untrusted-data intrusion check.

38541476

POL-17920

javax.persistence.NoResultException in CalculationPeriodRepositoryImpl

Description:

Log pollution is occurring due to inconsistent log levels, specifically using 'error' where 'warn' was appropriate.

Resolution:

Adjusted the log level from error to warn to reduce unnecessary log noise.

Backports:

4.25.1.0.7

38553491

POL-17928

Person page: titles not getting removed

Description:

In person’s page combobox property - title is not getting cleared

Resolution:

Values are getting cleared in Person Titles combobox as expected

Backports:

4.25.1.0.8

39175677

POL-18552

Failure in Persist message at republish message time should do task failure

Description:

Improved observability and reliability by ensuring connector configuration persistence failures correctly mark tasks as Failed.

Resolution:

Previously, when a failure occurred while persisting connector configuration, the task status was not consistently updated, leading to incorrect or ambiguous task states. This fix ensures that any persistence failure is properly captured and the task is explicitly marked as Failed, improving reliability, observability, and downstream error handling.

Backports:

4.25.1.0.18

39210552

POL-18600

Produce aggregated change log in order when events share same source timestamp

Description:

Produce aggregated change log in order when events share same source timestamp.

Resolution:

Previously, events with identical source timestamps could appear in a non-deterministic order within aggregated change logs, making it harder to trace event sequences. This improvement enforces a stable ordering for such events.

39051132

4-0002051144

POL-18333

Fix memory issues when republish tasks handle large message volumes

Description:

In environments with a high volume of failed message publishing records, the RepublishingFailedMessages task could experience excessive memory consumption and slower recovery times because all failed records were loaded and processed sequentially in a single run.

Resolution:

Optimized RepublishingFailedMessages by introducing batched fetching of failed messages.

Backports:

4.25.1.0.18

39233298

4-0002168128

POL-18623

Date Paid To is set to one day before the last reversed calculation result start date.

Description:

When Calculation Results are reversed, the Date Paid To is changed accordingly. This is done by subtracting one day to the start date of the earliest reversed Calculation Result. But, this results in an incorrect Calculation Result if those periods are preceded by a suspension period, as in that case the Date Paid To will be set to the end of the suspension period.

Resolution:

The Date Paid To is now restored to the latest non-reversed Calculation Result period end date before the Apply Registrations look-back date. This prevents Date Paid To from being set to the end of a suspension gap when reversed Calculation Results are preceded by a suspension period.

Backports:

4.25.1.0.18

39286160

4-0002579687

POL-18669

Registrations are not re-applied when the pay date of the registrations is before the effective date of the earliest mutation.

Description:

When Apply Registrations was executed, a policy calculation period was removed because its end date was after the look-back date. However, the related applied registration was not unzipped because the registration pay date was before the look-back date. As a result, the policy calculation period was recalculated and invoiced again while the original registration remained applied.

Resolution:

The Apply Registrations logic now also considers the pay dates of affected policy calculation periods when determining from which date registrations must be re-applied. Applied payment registrations with a pay date before the mutation effective date are now correctly unzipped and re-applied when they are linked to affected policy calculation periods. This fix was applied for policy activities, group account activities, and direct process-and-apply registrations processing.

39600248

4-0002914417

POL-18827

Improved security log search performance

Description:

Security log searches by event date have been optimized to provide more consistent performance across log types.

Resolution:

Resolved an issue where security log searches filtered by event date could take longer than expected.

Backports:

4.25.1.0.18

39401553

4-0002426307, 4-0002660956

POL-18740

Work manager ws-work-manager is not used for API/IP requests

Description:

Work manager ws-work-manager is not used for API/IP requests. As a result, when a large number of API/IP requests are submitted at the same time, the system may process more requests concurrently than expected instead of applying the usual throttling or queuing behavior. This can contribute to degraded performance or service instability under heavy load.

Resolution:

The fix restores the intended request handling behavior so API/IP traffic is processed with the appropriate concurrency limits.

Backports:

4.25.1.0.19

38819090

POL-18212

Ensure Each Extracted Record from NDJSON in Data Transfer IP is a Valid JSON Object

Description:

NDJSON exports contain embedded newline and special characters breaking JSON parsing.

Resolution:

Fix has been provided for extraction pipeline to escape or remove illegal characters within large records with datasets containing embedded newlines and special characters there by creating valid JSON and CSV file formats.

Backports:

4.25.1.0.13

38904217

4-0001784507

POL-18306

System throwing NullPointerException when there is no value for EXCL_PHI_LOGGING in the OHI_REPORTING_VIEWS table

Description:

When invoking the Data Transfer IP, the system verifies if any PHI information is fetched and creates PHI log entries when needed. In case the EXCL_PHI_LOGGING column in the OHI_REPORTING_VIEWS table is empty, the system throws a NullPointerException.

Resolution:

The EXCL_PHI_LOGGING column in the OHI_REPORTING_VIEWS table gets a default value 'N'

39057981

4-0001344740

POL-18412

Minimum value updated for reinsurance treaty percentage fields

Description:

The minimum allowed value for the commission percentage and retention percentage fields in a reinsurance treaty has been updated from 0.01% to 0.00%.

Resolution:

The minimum allowed value for both fields is now 0.00%, allowing zero values when applicable.

38385414

3-41908661591

POL-17718

Disable Delete By Omission is not working as expected

Description:

During configuration migration import, the Disable Delete by Omission UI setting overrides the default value when a user leaves the option unselected. As a result, the import can delete existing child configurations that are absent from the source configuration.

Resolution:

File Import and Available Data Sets now use a three-value selector for Disable Delete by Omission. Users can retain the metadata value or explicitly select Yes or No, so imports preserve omitted child configurations when the setting requires them.

39158027

POL-18530

ohiHttpRequest is extended to support plain-text and HTML request bodies

Description:

Previously, ohiHttpRequest did not support request bodies defined as plain text or HTML, which could lead to issues when integrating with services that require these formats.

This has now been enhanced with support for two additional keys under the data attribute:

  • text - send the request body as plain text.

  • html - send the request body as HTML.

Resolution:

ohiHttpRequest now processes the text and html keys in the request payload and accepts the request body in the appropriate format, ensuring compatibility with APIs that accept plain text or HTML input.

Backports:

4.25.1.0.15

39173560

4-0001607174

POL-18548

Incorrect time range validation for bill allocation filtering when enrollment start date is after span reference date

Description:

When the enrollment start date is later than the span reference date of calculation result, the system continues to use the span reference date for time range validation in choosing appropriate premium bill allocation instead of considering the enrollment start date. As a result, bill allocation may be incorrectly excluded because the reference date falls outside the valid time range, even though the enrollment start date lies within the valid range.

Resolution:

During premium bill allocation filtering if the enrollment start date is after the span reference date, then enrollment start date is used for comparison during time range validation.

Backports:

4.25.1.0.16

38999440

4-0002125064

POL-18383

Resources cannot be searched when code starts with %255%

Description:

POST search API requests were failing with an IntrusionDetectionException when the query contained specific special patterns. These legitimate input param were incorrectly identified as potential intrusion attempts, resulting in search failures.

Resolution:

Enhanced the intrusion detection mechanism to correctly handle search query parameters, preventing legitimate requests from being incorrectly flagged

Backports:

4.25.1.0.15

38591936

3-42051417011

POL-17957

Not able to view suffix (%, #) next to domain value in parameter domain values tab of enrollment products

Description:

After user navigates to parameter domain values tab and adds new record, not able to view suffix next to domain value (%, # etc.) in enrollment products

Resolution:

User is able to view suffix next to domain value after navigating to parameter domain values drawer of parameter domains tab in policy enrollment products page

Backports:

4.25.1.0.17

39280009

4-0001814443

POL-18661

Parameter alias names in parameter values tab are not loading in policy enrollment products

Description:

After user navigates to parameter values tab of policy enrollment products section of a policy, parameter alias names are not loading

Resolution:

Parameter alias names are loading fine after user navigates to parameter values tab of policy enrollment products section of a policy

Backports:

4.25.1.0.17

39330352

4-0002651658

POL-18688

Member Selection in Policy Enrollment is Not Working Under Policies

Description:

When flexcodes is configured in policy enrollments floorplan, member selection is not working

Resolution:

Member selection in policy enrollments is working fine

Backports:

4.25.1.0.17

39245671

4-0002593673

POL-18628

Dynamic fields configured at attached data level in policies page are not appearing when set as labels in policy details page

Description:

Dynamic fields that are configured at the Attached Data level are expected to be shown when used as labels on Policy detail page

Resolution:

Labels now display correctly for dynamic fields configured on the reference fields. For example, Labels configured on flexcodes of attachedPolicyData in Policy Details page. Note: If user wants to see all the values in one color, it is not needed to add value explicitly. Value is required to show different colors based on "data". Example, to show Bucket A in red, Bucket B in blue, only then value must be configured.

Backports:

4.25.1.0.16

38439912

POL-17773

Table height is not getting auto adjusted when a new row is added/copied

Description:

The table height doesn’t auto-adjust for rows containing combo box fields. Additionally, when rows are added or copied, the row height isn’t recalculated, causing values in combo box cells to appear clipped or partially hidden

Resolution:

Fix added to adjust the table height when adding or copying rows, including those containing combo box.

Backports:

4.25.1.0.8

38610927

3-42695355031

POL-17978

The activity thread pool size does not revert to its original value of 8 after memory usage returns to normal

Description:

During periods of high memory usage, the system automatically reduces the number of activity threads it can handle to 1, to prevent further strain. However, after memory usage returns to normal, the system does not increase this capacity back to its usual level i.e. 8. As a result, the affected node can only process one activity at a time, which causes slow performance and delays.

Resolution:

Once memory usage returns to normal, the system automatically restores the thread-pool capacity back to the usual level of 8 threads on the impacted node. This ensures that performance returns to normal and multiple tasks can be processed at the same time, preventing delays.

Backports:

4.25.1.0.8, 4.24.1.0.14

38158918

3-41972215731

POL-17421

Spinner icon doesn’t get closed after validate, submit in Policies page

Description:

When a user validates a policy which is in edit state, then the page gets into loading state. Spinner icon is displayed and doesn’t get closed automatically after the Validate Action

Resolution:

Spinner icon closes automatically after the Validate or Submit Action

Backports:

4.25.1.0.4

38370361

3-40947007701

POL-17673

Include error cause in RuntimeException for POST/PATCH save requests of Dynamic Logic

Description:

For POST/PATCH requests of dynamic logic, the error response only provides the location of the corresponding trace file. To identify the root cause, the user must manually check the trace file, which is inconvenient.

Resolution:

The error response has been improved to include both the actual error details and the location of the corresponding trace file. This will allow users to quickly identify the root cause of the issue.

Backports:

4.25.1.0.5

38608346

3-42578803401

POL-17971

CMT Import fails when a field definition is updated with extended length

Description:

When doing CMT import, if a flex code is imported with similar datatype but field length that is greater than the target system flex code field length then an error is raised.

Resolution:

CMT import is fixed to allow import of fields with similar datatype but increase length without raising an error message.

Backports:

4.25.1.0.16

37908367

POL-17105

In System Event Logs page, Message section closes during row-level editing

Description:

The messages section closes unexpectedly during row-level editing when users expand the section

Resolution:

The Messages section remains expanded during row-level edit

39163814

4-0002187135

POL-18540

Improve resilience for Object Storage file downloads from ohi when long-running data file processing causes HTTP streams to remain open for extended periods, reducing failures from truncated responses.

Description:

File downloads from OCI Object Storage could intermittently fail during long-running reads with truncated-response errors such as ConnectionClosedException (“Premature end of Content-Length delimited message body”). Because OHI ObjectStorageDataFileReader relied on a single InputStream, any mid-transfer interruption caused the CSV reader to receive only a partial payload, resulting in exchange failure. Need implementation to supports retry and byte-range resume for interrupted downloads.

Resolution:

Enhanced Object Storage download handling for scenarios where data files are processed slowly and the HTTP stream remains open for an extended period. Previously, long-running reads could fail with truncated-response errors such as ConnectionClosedException, causing the CSV reader to receive incomplete content and the exchange to fail. The implementation now improves resilience by retrying interrupted downloads and resuming from the last successfully read byte offset, while failing only after 3 consecutive recovery attempts without progress.

Backports:

4.25.1.0.16

39160109

4-0002113383

POL-18536

Memory exhaustion in Gateway due to dynamic logic creating multiple data files in Object Storage

Description:

A problem was identified where memory was not being properly freed after using writers in dynamic logic to create data files in Object Storage. When many files were created over time, this unused memory built up and could eventually cause the application to run out of memory and fail.

Resolution:

The cleanup process has been improved to ensure that memory and related resources are fully released whenever the writer is closed. By default, the system closes writers at the end of a dynamic logic transaction automatically thereby releasing the memory. However, in case multiple writers are opened within a single dynamic logic, memory exhaustion could still happen at runtime.

It is therefore recommended to close readers and writers explicitly in dynamic logic. Please investigate if explicit closure of readers and writers is implemented in the dynamic logics.

Backports:

4.25.1.0.16

39356069

POL-18705

PHI logging includes unmatched 'left joins' rows

Description:

When a query selects a PHI column from the right side of a LEFT JOIN, PHI logging is created for all rows from the left-side table, including rows where the joined row does not exist. In those cases the PHI column is effectively null, but a PHI log event is still written. This leads to incorrect PHI audit entries for rows that did not actually expose PHI.

Resolution:

When the joined column is marked as PHI but there is no match, no PHI Event is logged for that missing column.

Backports:

4.25.1.0.19

39162942

4-0002036535

POL-18538

Operational reports should allow users to enable usage of full view to display data grid

Description:

In operational report page data-grid is not utilizing the full available space on the page, resulting in white space below the data grid.

Resolution:

The pageSize configuration has been removed, as the data grid will now display at full height based on the available screen height.

Backports:

4.25.1.0.15

38704532

POL-18069

Connector config: Properties not cleared

Description:

In Connector configuration when user adds a change list (update), clicks on side to see the properties and cancels at page level, the row is deleted but not the properties

Resolution:

On click of cancel, the newly added row and properties are both deleted.

39211063

4-0002534239

POL-18603

Incorrect Copayment parameter values

Description:

When user navigates to parameter values section in policy enrollment products, incorrect copayment values are showing up. For the parameters "Units" and "percentage," instead of "Units" and "%," "days" are added incorrectly.

Resolution:

Correct copayment values are showing up when user navigates to parameter values section in policy enrollment products. For the parameters "Units" and "percentage," "Units" and "%," are added.

Backports:

4.25.1.0.15

39172570

POL-18547

Attempting to create a policy mutation without a request payload caused the service to throw a null pointer exception.

Description:

When type is not specified in request, a null pointer exception is raised. This left users without a clear explanation of what went wrong.

Resolution:

The policy mutation validation now safely handles missing types. Instead of returning a technical error, the service responds with a clear, end-user friendly message that the provided mutation type is unknown.

39902748

POL-18820

Dynamic logic security checks fail for unresolved Groovy receiver types

Description:

Dynamic logic execution could fail with a NullPointerException when the receiver type of a Groovy method call could not be resolved during security rule evaluation.

Resolution:

Dynamic logic security predicates now safely handle unresolved receiver types, allowing valid dynamic logic execution to continue without a NullPointerException.

38168624

POL-17441

Policies in progress - facing error on selecting advanced search value

Description:

If a LOV value is already selected in Advanced Search for a specific criterion in any Operation Reports page, and the operator for that criterion is changed, the selected LOV value is not cleared. As a result, the search query becomes incorrect when the Search button is clicked.

Resolution:

Fix added to prevent the error when selecting an LOV value. The LOV value now also clears correctly when the operator changes.

38058849

3-40939319841

POL-17304

Call to invalidate L2 entity-cache became recursive when memory protector kicked-in

Description:

A recursive mechanism was implemented to invalidate the L2 entity cache upon detecting corruption, allowing the process to resume. However, under memory-constrained conditions, this recursive approach led to unbounded recursion, ultimately resulting in a StackOverflowError and further degrading the application’s memory state

Resolution:

The issue was resolved by introducing a conditional check to ensure that cache clearing and the associated recursive logic are executed only when the application’s memory state is healthy. This prevented unbounded recursion and stabilized memory usage.

Backports:

4.25.1.0.3

38433393

POL-17766

Dynamic record is null/empty error during PATCH operation.

Description:

The issue arises when an empty dynamic record is included during a PATCH insert operation, resulting in a 500 internal server error. The below payload can be used to reproduce the issue : { "pol_17766": [ { "op": "add" } ] }

Resolution:

Enabled the existing functional message GEN-DYNA-015 to trigger when a PATCH insert operation is performed with an empty dynamic record.

38783566

POL-18185

ExactVersionMatch and DisableDeleteByOmission are not reflecting as false by default in Configuration Migration Page.

Description:

ExactVersionMatch and DisableDeleteByOmission are not reflecting as false by default in Configuration Migration Page.

Resolution:

Fix has been added to set the default values of ExactVersionMatch and DisableDeleteByOmission to false.

38835240

4-0001755027

POL-18226

Several issues when logging policy enrollment events for persons

Description:

The next issues occur when policy in IP is used and pre-enrollment functionality: a) For a new policy, change detail information for person details like address is not logged b) For a new policy and a change on existing person was applied, the change detail information for person is not logged either. c) When a person is both a policyholder and an enrolled member and changes are applied, duplicate business events are created.

Resolution:

Logging of person details is added when a new policy is added and when business events are generated, duplicates are omitted.

Backports:

4.25.1.0.13

39444792

POL-18757

PHI audit logs corrected for aliased base views in data transfer payloads

Description:

In specific data transfer scenarios, when a base view is queried through an alias and the Base View is outside of the Relation context, PHI logging was not generated.

Resolution:

The system now generates the PHI audit logs correctly for these aliased base view scenarios.

Backports:

4.25.1.0.19

38376561

POL-17685

Implement Retry Logic for initiateOnDemandAntivirusScan on OptimisticLockException

Description:

Overlapping on-demand antivirus scans could try to update the same data file status at the same time during data file processing. This caused optimistic lock exceptions and unnecessary transaction rollback errors in the application logs, increasing log noise.

Resolution:

The data file status update logic now retries optimistic lock failures during antivirus scanning. Retryable optimistic lock failures are logged without the full exception stack trace, reducing log noise while allowing transient concurrent updates to complete successfully. Non-optimistic failures continue to follow the existing rollback behavior.

Backports:

4.25.1.0.18

39267369

4-0002614945

POL-18656

Add business rule validation for character field length in dynamic field usages

Description:

Dynamic field usages are incorrectly allowed to use CHAR fields with length greater than 1000 for dynamic fields, flex code definitions, and non-reference sheet dynamic record definitions. This can lead to a database error when values longer than 1000 characters are inserted.

Resolution:

A business rule has been updated to ensure that dynamic field usages for dynamic fields, flex code definitions, and non-reference sheet dynamic record definitions cannot use CHAR fields with length greater than 1000.

38505390

POL-17880

Member level events for multiple policy versions (one in EDIT) status, not correctly processed

Description:

When a member is enrolled on an approved policy and enrolled on a policy in edit status: member level events are created for that policy in edit status, to ensure that those change events are included once policy is approved and premium is calculated. However, until that policy is not approved, unnecessary mutations were generated each time the generate mutations activity was executed for the already approved one.

Resolution:

Events that are created for member level events and policy edit status, will not be picked up by approved policies, so no mutations are generated.

Backports:

4.25.1.0.7

38640608

POL-18026

Resend/cancel enrollment event notifications IP shows enrollment event notification in response.

Description:

According to functional documentation, only OK should be returned as response and no payload.

Resolution:

Removed enrollment event notification payload from the following IP’s: * enrollmenteventnotifications/{id}/cancel * enrollmenteventnotifications/{id}/resend

Backports:

4.25.1.0.8

38686158

3-42944249861

POL-18078

Error when changing from and to prorated and non-prorated function in Adjustment rules API/UI

Description:

When changing from prorated to non-prorated function (and vice versa) the error: "POL-ADJV-001: Exactly one of amount, percentage, function and not prorated function must be specified" was raised. This is caused by these attributes not being cleared properly.

Resolution:

The prorated and non-prorated function attributes are cleared if specified as such.

Backports:

4.25.1.0.10

38732102

3-42695523481

POL-18122

Object Change Log has no reference to Policy Enrollment or person for new Policy

Description:

Policy Enrollment Events representing changes that are related to a specific Person or Policy Enrollment have a reference to that Person or Policy Enrollment. This way, a user can distinguish the changes that are made to each Person or Enrollment. The reference to the Person or Policy Enrollment is also made in the Object Change Policy Enrollment, which allows a user to access the reference in the Business Event Dynamic Logic. The reference is missing when a new Policy is created and the Object Change Policy Enrollment represents a change on a Dynamic Field or Dynamic Record.

Resolution:

The Person and Policy Enrollment reference is added to the Object Change Policy Enrollment representing a change on a Dynamic Field or Dynamic Record, when the field is related to either a Person or Policy Enrollment.

Backports:

4.25.1.0.9

39271776

4-0002496887

POL-18657

Performance degradation caused by full table scans on the INT_AGGREGATE_CHANGE_EVENTS table when querying by AGGREGATE_ID

Description:

Queries on the INT_AGGREGATE_CHANGE_EVENTS table were taking longer because the database optimizer was performing full table scans. The existing index on INCN_ID was not selective enough, as many records shared the same INCN_ID value. Since AGGREGATE_ID was frequently used in query filtering/join conditions but was not indexed, the optimizer could not use an efficient access path.

Resolution:

Created a new index on the AGGREGATE_ID column in the INT_AGGREGATE_CHANGE_EVENTS table. This enables index-based access and improves query execution performance.

Backports:

4.25.1.0.18

38725899

POL-17521

Task processing integration point restart and restart all operations did not resolve associated system event log

Description:

Invoking Task Processing IP Restart or Restart All operations on tasks in ERRORED status did not resolve the associated SystemEventLog, leaving log entries unresolved

Resolution:

System event logs associated with ERRORED tasks are now resolved when attempting restart

39250348

4-0002598779

POL-18630

Enabling dynamic record validation for the attached policy data while executing calculate premium activity

Description:

Validation for dynamic record inserts and updates is bypassed for attached policy data during the CALCULATE_PREMIUM activity. As a result, a value exceeding the allowed length (11 characters) can be stored in the C10 field during activity processing. This invalid data subsequently causes a GEN-FIEL-012 error during invoice generation when field length validations are enforced.

Resolution:

Validation for dynamic record inserts and updates on attached policy data during the CALCULATE_PREMIUM activity has now been enabled. As a result, validation errors like GEN-FIEL-012 will trigger during activity execution itself, preventing invalid data from being stored and causing failures at a later stage, such as invoice generation.

38412130

3-42051417011

POL-17746

"Domain Values" is not showing in Parameter Domain Values Tab in Enrollment Products

Description:

Not able to view Domain Values in Parameter Domain Values Tab of Enrollment Products page after a new Domain Value is created and saved. Page has to be reloaded to view Domain Values.

Resolution:

After new domain value is created in Parameter Domain Values tab of Enrollment Products page, it is shown immediately, without having to reload the page

Backports:

4.25.1.0.6

38509355

POL-17886

Calculate premium (AU) selects policies which are ended and fully paid

Description:

If a policy is fully paid up until the end date of the policy enrollment product(s), the calculate premium activity (AU) picks up these policy, which is not needed.

Resolution:

Added condition to policy selection for the Calculate Premium AU Activity: select policies that has policy enrollment products with no end date or end after on the date paid to plus 1 day (if no date paid to is set yet, the policy enrollment product is selected).

38393113

3-41972506271

POL-17725

Notation To Be Shown After Parameter Values

Description:

Notation to be shown after the parameter vales like units, days, % or $ accordingly in policies and member page

Resolution:

Added notations for unit, days, percentage in policies and members page for parameter values

Backports:

4.25.1.0.6

38414571

3-42030672651

POL-17752

500 Internal server error occurs when populating the province field in the group account address under the extensibility tab

Description:

A 500 Internal Server Error occurs when populating the province field in a group account address under the Extensibility tab, where the province field is configured under record definition to use CountryRegion as a picklist

Resolution:

Query is created as expected and the list of values is loading successfully without any errors

Backports:

4.25.1.0.6

39714051

4-0003233561

POL-18892

Bulk Update activity remains stuck when a queued policy is reverted before processing

Description:

During a Bulk Update, one policy was reverted while the Bulk Update was already running but before that policy’s queued child activity had started processing. When the child activity was later picked up, the policy was no longer available. The system did not handle this situation correctly, so the child activity remained stuck instead of moving to a terminal error status. All other activities in the Bulk Update completed successfully.

Resolution:

For all policy activities, not only Bulk Update activities, if a policy is reverted or deleted before its queued activity is processed, the system detects that the policy is no longer available and handles the activity gracefully. For each policy activity where the policy is no longer available, informative message POL-IP-POLI-044 is added and the activity is set to status Completed.

38030655

POL-17273

Download button is lost when there are no search results

Description:

Download button is lost when there are no search results in search table template

Resolution:

Fix added to show download button consistently when data is present

Backports:

4.25.1.0.1

38018230

3-40799088818

POL-17257

Numeric search is not working in lookup dialog

Description:

Search on number field like pincode is not working in lookup dialog. It is not retrieving any results

Resolution:

Number field search works fine and returns expected results in lookup dialog

Backports:

4.25.1.0.1

38234044

3-41589053101

POL-17517

Delete rows icon in tab-table does not appear when Auto include extensibility is checked in floorplan

Description:

'More' link is shown and delete row is hidden when Auto include extensibility is checked in floorplan for dynamic record configured as tab-table.

Resolution:

More link will only be shown if table region is configured for dynamic record tab and Delete row button is visible.

Backports:

4.25.1.0.2

38224766

3-40724895331

POL-17506

Tracking/Tracing of requests should not be sent to external systems

Description:

Tracing headers (such as B3 headers) are being sent to external systems. This leads to a 500 error response. However, when the spanId header is removed, the request goes through successfully with a 201 response

Resolution:

B3 Tracing headers will be added when the host of the request and the application are identical.

Backports:

4.24.1.0.12, 4.25.1.0.3

37859531

3-40793515901

POL-17053

Enhanced diagnosability and error handling for transactions marked as Rollback

Description:

Some activities took longer than expected time to complete because the transaction that updates the status of activities was silently rolled back due to an exception being suppressed within dynamic logic.

Resolution:

Added the exception in no rollback attribute to prevent silent rollbacks.

Backports:

4.25.1.0.6

38284793

POL-17596

Child records are showing the wrong "created by" and "last updated by" user, copying it from the parent record.

Description:

When a person record is created by user1 and child resource like 'Address' is created by user2, createdBy for child resource shows createdBy value of parent resource. Similarly for lastupdatedBy as well.

Resolution:

Each child record now shows its own "created by" and "last updated by", even when those users differ from the parent record’s user. The system now keeps the correct audit information from the server and applies it consistently across screens, preventing parent details from overwriting child details.

39492285

4-0002832499

POL-18767

Last update date of the parent entity is not updated when dynamic records are nullified

Description:

The last update date of the parent entity is not updated in the following scenarios: 1. Nullifying a single-value, non-time-valid dynamic record using the Generic API. In this case, neither the object version number nor the last updated date of the parent entity is updated. 2. Nullifying multi-value, time-valid dynamic records using an IP. In this case, the object version number is updated as expected, but the last updated date of the parent entity remains unchanged.

Resolution:

Fixed these both dynamic record nullification flows so the parent entity audit state is updated correctly. Both generic API and IP-based removal paths now mark dynamic data as changed and refresh lastUpdatedDate when existing dynamic records are removed.

37926402

POL-17135

Policies in Progress - Previously opened tab is showing up instead of home page & title needs to be updated

Description:

Operational report policies in progress on deeplink dialog open previously selected tab is pre-selected instead of policies

Resolution:

Previous selection is cleared and on deeplink dialog open policies page is shown

Backports:

4.25.1.0.2

37926404

POL-17136

Policy in Progress - Policy code Deep link drawer gets added to the bottom tab menu

Description:

on open of deeplink drawer footer tab gets added

Resolution:

Page opened in drawer is not added to the footer tab

37972431

POL-17195

Policies In Progress - Policy message is not attached to the Response

Description:

On policy messages drawer description is not visible and not available in response

Resolution:

Description for policy messages on drawer added

Backports:

4.25.1.0.1

38094801

3-41205595461

POL-17340

Unable to add a new validation rule, pend rule, or callout in the policy process flow

Description:

Unable to add a new validation rule, pend rule, or callout in the policy process flow. Getting "GEN-PROC-002: Value "undefined" provided is not of type Number (post , policyvalidationrules)" error. Similar issue is observed in Billings account Contact Relation field, Insurable class in Group account product and Group pend rules in Group process flow

Resolution:

It is possible to add a new validation rule, pend rule, or callout in the policy process flow. Similarly in group process flow, contact relation LOV, insurable class LOV in Group Account Products page

Backports:

4.24.1.0.12, 4.25.1.0.1

38476305

3-42101202791

POL-17844

Unable to Select a Product when Group Account Product Availability is in the Future

Description:

When a Group Account or Insurable Class is setup with future effective dates, when trying to enroll a member in policies, the Product drop down is not displaying any available products to select

Resolution:

Applicable products are displayed in dropdown when Group Account Product Availability is in the future.

Backports:

4.25.1.0.6, 4.24.1.0.13

38952932

POL-18340

Only one validation/error message is displayed in summary but 2 errors/validations in details page

Description:

In schedule definitions UI summary page, when user clicks the delete icon, only one validation message is displayed. Record would not be deleted. However, in details page, 2 validation messages are displayed.

Resolution:

Two validation messages are displayed in both the Search Results page and the Details page

38466145

3-41890431671

POL-17823

Stuck activities are not being updated to TE status when the memory protector is triggered

Description:

When memory protection was triggered during the separate reprocessing of group activities, some affected activities were not marked with a Technical Error (TE) status. This could leave the activities without the expected error status after processing was rolled back.

Resolution:

Fixed all relevant memory-protection scenarios so that affected activities are moved to Technical Error (TE) status instead of remaining in In Progress status.

39383193

POL-18712

Client side Advanced search is not working for Parameter Domain Values

Description:

The search does not work when user adds new rows inside drawer and performs Advanced search with domain values in the parameter domain values drawer, Enrollment Products page

Resolution:

Advanced Search with domain values is working for parameter domain values with Between 'Not Equal To, Equal to, Empty, Not Empty' operators

38148381

3-40948058341

POL-17405

Message text field is not available in Message Group Details tab

Description:

Message text field is not available in Message Group Details tab. Message text and severity for the table is missing.

Resolution:

Added message text and severity column in the table

38229228

POL-17510

Boilerplates are visible in Policy process flow page on page load

Description:

On initial load of policy process flow page, boilerplates are seen for "Set Default flow" dialog

Resolution:

Proper labels are loaded for "Set Default flow" dialog instead of boilerplates.

Backports:

4.25.1.0.3

38258650

3-41471633021

POL-17554

Policy Calculation Period Unique Key violation thrown by Apply Registrations activity

Description:

The system throws a Policy Calculation Period Unique Key violation during Apply Registrations, when the policy has a suspension period that has a duration for over a year.

Resolution:

The system will not throw a Policy Calculation Period Unique Key violation and the registration will be applied.

Backports:

4.23.1.0.13, 4.24.1.0.13, 4.25.1.0.4

38084883

POL-17325

The automatic generation of SQL Monitor report for query API calls is not functioning as expected

Description:

Despite enabling enableSQLMonitorReport, SQL Monitor reports were not being generated automatically for query API calls. The issue was caused by case-sensitive header comparisons

Resolution:

The enableSQLMonitorReport header is now compared in a case-insensitive manner

Backports:

4.25.1.0.3

37414669

3-38835614611

POL-16407

adjustmentRule.scheduleDefinition returns Null in dynamic logic with adjustment rule signature

Description:

adjustmentRule.scheduleDefinition returns null when used within an adjustment rule evaluation condition in dynamic logic. This prevents access to schedule definition fields despite a valid schedule definition being associated.

Resolution:

The adjustmentRule/premiumScheduleLine passed for the condition evaluation and amount calculation of the Adjustment Rule/Premium Schedule Line is not the actual rule/line, but a schedule dimension where configurations like ageFrom and ageTo are accessible. To access the metadata in dynamic logic, scheduleDefinition has been added as a binding for AdjustmentRule logic and premiumSchedule for PremiumScheduleLine logic.

Backports:

4.25.1.0.3

37920000

POL-17088

Restart button should prompts a message if nothing is selected.

Description:

On the Technical Errors page, clicking the Restart button should prompt a message if no item is selected.

Resolution:

The Restart button now shows the message: 'Please select one or more tasks to restart' when no task is selected.

38024884

3-40699032544

POL-17266

Prefilter is not applied to a search query for View Edit List template based pages

Description:

Prefilter is not applied to the search query for View Edit List template-based pages like Policy Enrollment Events.

Resolution:

Prefilter is now applied to the search query for View Edit List template-based pages.

Backports:

4.25.1.0.2

39782108

4-0003295641

POL-18954

Quote IP in no-flush mode fails with NullPointerException when member copy feature is enabled

Description:

When ohi.policies.quote.flush.enabled is set to false, member copy functionality is enabled, and no existing member copy is available, Quote IP requests for existing members could fail with a NullPointerException.

Resolution:

When ohi.policies.quote.flush.enabled is set to false, Quote IP now reuses the active member if member copy functionality is enabled but no existing member copy is available. If an existing member copy is available, that existing member copy is used.

Backports:

4.25.1.0.20

38576439

4-0002032915

POL-17936

Writing incident data files in Object Storage fails intermittently

Description:

Writing an incident data file in Object Storage fails intermittently with NoSuchElementException

Resolution:

The intermittent issue that prevented incident data files from being written to Object Storage has been resolved. The fix improves the reliability of file creation and storage operations.

38207972

POL-17496

Trace file link in activity messages is not correct in UI

Description:

For failed global activities, activity message is displayed in UI but the trace file link provided has small case letters

Resolution:

Trace file link in error message is now properly substituted and displayed

Backports:

4.25.1.0.3

38462480

POL-17811

Enrollment product: adjustment override : copy button not working

Description:

Copy button is shown in adjustment override for Enrollment products though the page doesn’t have create access

Resolution:

The copy action is removed in adjustment override for Enrollment products.

Backports:

4.25.1.0.6

38494076

3-42214428861

POL-17864

Policies widget is not available when a policy is opened

Description:

On navigating to Policies details page from widget and back to search page, widgets and tiles are not visible

Resolution:

Widgets and tiles are visible when we navigate to search page from details and there is no search criteria

Backports:

4.25.1.0.6

38406102

3-42061494681

POL-17740

Person’s formatted name is not shown in Policies page

Description:

Person’s formatted name is not shown in policy detail page and search page.

Resolution:

The person’s formatted name now displays consistently on the Policy Detail Page, Policy Search Page based on configuration

Backports:

4.25.1.0.6

38498933

3-42254617011

POL-17869

Policy Premium: Policy reversal calculation results are displayed

Description:

Policy Reversal field is excluded from the fields being queried. As a result reversal calculation was not happening properly.

Resolution:

Policy Reversal Calculations are displayed properly. UI filters out the reversed transactions.

Backports:

4.25.1.0.6

38742918

4-0001521851

POL-18151

Policy activities: Error is shown for view messages dialog

Description:

In Policy activities page, when user performs advance search and clicks on View Messages link, an error is shown and messages doesn’t load

Resolution:

Messages are displayed in Policy Activities page

Backports:

4.25.1.0.9

38792096

4-0001618248

POL-18193

Object storage operation cause assert or Weblogic asserts at event publishing time in absence of missing class loader context in underlying thread

Description:

Object storage operation cause assert or Weblogic asserts at event publishing time in absence of missing class loader context in underlying thread. This resulted in import registration failures, failure observed at weblogic operation at time of publishing event.

Resolution:

Object storage operation cause assert or Weblogic asserts at event publishing time in absence of missing class loader context in underlying thread. Issue has been fixed by ensuring class loader context is always initialized

Backports:

4.25.1.0.12

38679604

3-42928337391

POL-18074

A group client should not be processed concurrently if a process group client activity is already running for that group client

Description:

A group client should not be processed concurrently if a process group client activity is already running for that group client.

Resolution:

Added checks for running activities: * POL-FL-PRGC-001:The group client has already been submitted for processing and cannot be resubmitted while the previous group client activity is still in progress * POL-FL-PRGC-002: The group client activity cannot be recovered, as it has already been superseded by another group client activity

38709679

3-43033923181

POL-18101

When the 'calculate on cancellation' field is set to true and no default periods exist in the system, a GEN-PROC error occurs during policy cancellation.

Description:

Premium calculation fails with a technical error when the attribute calculateOnCancellation on policy is set to true, the cancel policy operation is executed and there are no default time periods.

Resolution:

Added business rule: POL-POLI-004: It is not allowed to set calculateOnCancellation if there is no premium set up

38833314

POL-18225

If an error occurs during validate group client operation, the response is unclear and the actual error is not shown

Description:

If the dynamic logic for validation rules causes some failure, like a business rule violation or invalid dynamic logic, then the response is incorrect. It gives 500 error instead of 422 and the error message is unclear: "GEN-PROC-ERR: An error occurred in processing the request; for more information about the error search the logging for occurrences of …​" (where the dots represent the original exception raised).

Resolution:

The handling of errors is improved for validate group client to show the proper response.

The handling of business rule errors because of dynamic logic called in submit group client process has also been changed: activity message shows the proper business rule message and the activity ends in "Business Error" status instead of "Technical Error".

38778359

POL-18179

Data transfer requests fail with ORA-06502 when the schema name exceeds 30 characters.

Description:

Data transfer requests fail with the error ORA-06502: PL/SQL numeric or value error character string buffer too small when the schema name is longer than 30 characters.

Resolution:

A fix has been implemented in the data transfer functionality to support schema names of up to 120 characters.

38438858

POL-17769

Access role codes are not logged in security log when all the access roles are revoked from user

Description:

When all the access roles are revoked from a user, the security log records the user who performed the revocation and the user from whom the roles were revoked, but it does not record the access role codes.

Resolution:

The security log now also records the access role codes when all the access roles are revoked from a user.

38477354

POL-17850

Group Accounts - Boilerplate issue on click of Add Group Account Product button

Description:

Boilerplate key is seen on click of Add Group Account Product button instead of proper translations

Resolution:

Added boilerplate for Create Group Account Product text so that translations are displayed instead of boilerplate key

Backports:

4.25.1.0.13

38778433

POL-18180

File count incorrectly shown as 1 instead of 0 when multiple data transfer requests are dequeued together

Description:

A concurrency issue was identified in the data transfer dequeue processing logic.

When multiple data transfer requests are dequeued and processed together, if one of the requests does not return any data, the system incorrectly reports the file_count as 1 instead of 0.

This issue does not occur when requests are dequeued and processed individually. The incorrect file count is observed only in concurrent dequeue scenarios.

Resolution:

The dequeue processing logic has been corrected to ensure that the file_count is properly initialised and calculated independently for each request during concurrent processing.

37188081

POL-16095

Unable to login to the application after a logout

Description:

Users are experiencing a login failure after they log out of the application. Attempting to log back in immediately does not work unless they manually clear their browser cache, cookies, and history. Once the browser data is cleared, login proceeds as expected.

Resolution:

After logging out, users are able to log in again normally without the need to clear browser cache, cookies or history.

Backports:

4.25.1.0.13

38060660

3-40947650401

POL-17307

Dynamic fields information not shown in policy Bill receivers

Description:

Dynamic fields information not shown in policy Bill receivers since it is moved to 'more' section under Policy Bill Allocations as form table

Resolution:

Changes are made in the system specific floorplan to show Policy Bill Allocations as tab instead of form table

Backports:

4.24.1.0.12, 4.25.1.0.1

38015279

3-40939319841, 3-40938388841

POL-17253

Performance degradation in activity processing due to the overhead caused by the heartbeat query

Description:

The cleanup_act_status activity monitoring heart-beat query, which performs a SELECT on the ACT_ACTIVITIES table to fetch records with status 'IP', is experiencing performance issues. The query is currently executing a full table scan as the status field is not indexed, resulting in increased execution time.

Resolution:

The query was optimized by using the VIRTUAL_UNPROCESSED_STATUS column, which is indexed and offers better performance.

Backports:

4.24.1.0.12, 4.25.1.0.1

39829282

4-0003422821

POL-18993

Cleared dynamic fields could still return the previous value during the same processing flow.

Description:

When a dynamic field was cleared by assigning null, the value was removed, but a cached copy could still be used for later reads in the same flow. As a result, the dynamic field could appear to still contain its old value immediately after being cleared. This could affect dynamic fields, including flex-code dynamic fields, across single-value time valid, multi-value non-time-valid & time-valid, configurations.

Resolution:

The cache is now invalidated when a dynamic field is cleared. After assigning null, later reads correctly and returns no value instead of the previously cached value.

Backports:

4.25.1.0.21

39840304

POL-19004

Quote IP in no-flush mode fails with NullPointerException when deleteDynamicRecord method is invoked from dynamic logic

Description:

Quote IP in no-flush mode fails with NullPointerException when deleteDynamicRecord method is invoked from dynamic logic. The issue occurs when the dynamic record is included in the request payload and had not yet been saved.

Resolution:

Quote processing now handles these new dynamic records correctly when deleteDynamicRecord is invoked.

Backports:

4.25.1.0.21

37189606

3-38290202691

POL-16100

Reconciliation is not being applied for the last period of the second policy enrollment product

Description:

Reconciliation is not occurring for the last policy calculation period of the second policy enrollment product, resulting in a discrepancy between the expected and actual calculation outcomes. However, reconciliation has been correctly applied for the last period of the first policy enrollment product.

Resolution:

Reconciliation is now applied to the last period of the second policy enrollment product. The expected and actual calculation results now match perfectly.

38131970

3-41237424921

POL-17389

Duplicate entries in OHI_TABLE_COLUMNS

Description:

The table OHI_TABLE_COLUMNS keeps track of database columns which are marked as PII, but also if a column is subject to diacritics search options. Currently there are duplicate entries. As a result, when generating base views the system could throw a Null Pointer Exception.

Resolution:

The duplicate entries as merged into a single entry with PII on subtype 'PERS' and diacritic search enabled. A similar action is taken on the duplicate DATA_FILE entry from the Data Files table.

Backports:

4.25.1.0.4

38288683

3-41728688211

POL-17599

Task remains stuck in AQ with state '3', when not dequeued before expiry

Description:

Oracle AQ max_retries parameter was set to zero by default, preventing automatic retries when a node failed to dequeue a task due to memory errors. As a result, tasks were left stuck in state '3' in the queue. This needed manual intervention by marking the task status as 'ERRORED' and recovering the task using recovery API.

Resolution:

The 'max_retries' parameter has now been increased to 5. This would allow other healthy nodes to retry the dequeue operation, reducing the chance of tasks remaining stuck in AQ unless all nodes experience issues simultaneously.

Backports:

4.25.1.0.4

35685322

POL-11830

When opening the Account Details page from the Policy sub- menu with Edit, the policy code is not displayed.

Description:

When opening the Account Details page from the Policy sub- menu with Edit (pencil), the policy code is not displayed. When opened to view (eye), the policy code is displayed. When in Edit mode the policy accounts page is saved, then the policy code becomes visible.

Resolution:

Fixed the issue where the Policy Code was not displayed when opening Account Details in Edit mode. The Policy Code is now shown correctly in both View and Edit modes.

38405709

3-42012621741

POL-17738

Reprocessing a Policy executes all process steps

Description:

When Policy processing fails due to a technical error, the system retries processing the policy. During the retry, the process steps are executed one by one, but the system does not stop executing them once a pend rule is applicable and the policy is pended. As a result, multiple pend rules can be executed and applied, resulting in the system trying to pend the policy multiple times and throwing a NullPointerException.

Resolution:

When Policy processing fails due to a technical error, the system retries processing the policy and it will stop processing once a pend rule applies.

Backports:

4.25.1.0.5

38853096

4-0001330666

POL-18250

Delete of premium schedule (line), add-on, adjustment rule or schedule definition can be very slow

Description:

Calculation result lines have references to premium schedule (line), add-on, adjustment rule and schedule definition using foreign keys, but corresponding indexes do not exist. So when for instance a premium schedule line is deleted, a check on calculation result line references is executed causing a full table scan on the latter.

Resolution:

The foreign keys are replaced by validation rule: POL-RULE-VAL-004: <entityName> cannot be removed as it has at least one reference in calculation result lines. This is to control the query executed for the check for references better when for instance a premium schedule line is deleted. Also indexes on these referenced id’s are added on calculation result lines.

Backports:

4.25.1.0.13

38198346

POL-17486

Data transfer export to Oracle directory has issues with CSV and JSON formats

Description:

Data transfer export has issues: CSV output is invalid when string columns with commas are not escaped, JSON export returns empty values for CLOB columns exceeding 20MB, and JSON exports show only one file even when more records exist in the database.

Resolution:

Data transfer export now generates valid CSV output with escaped special characters, supports CLOB data in JSON format, and correctly reports the number of exported files. For SaaS customers, exporting columns of type CLOB in CSV or JSON format is currently not supported due to a known issue in the DBMS_CLOUD package. This limitation is tracked under Oracle Bug 38183169.

Backports:

4.25.1.0.4

36981634

3-41408859911

POL-14796

Remove duplicate access from setup access role

Description:

Remove duplicate access from setup access role which are already present in CO0019

Resolution:

keyboardshortcuts API and floorplans.enhance IP added to CO0019 function code and also removed access restrictions which was duplicate entry of CO0019 mapping from setup access role

Backports:

4.25.1.0.5

38372946

3-41609968491

POL-17677

Column Headers are wrapped in widgets, lookup dialog etc

Description:

Headers are getting wrapped to fit in the size in components like widgets, lookup pop-up

Resolution:

Column Headers are now, not wrapped in widgets, lookup dialog etc

Backports:

4.25.1.0.4

37915543

POL-17120

Jersey-specific redirect configuration is deprecated in favor of OHI client setting

Description:

The Jersey-specific configuration property jersey.config.client.followRedirects is deprecated and will be removed in future releases.

Resolution:

Use the ohi.client.followRedirects property for redirect handling with ohiHttpRequest. Existing usages of jersey.config.client.followRedirects should be updated to ohi.client.followRedirects to ensure compatibility with future releases.

Backports:

4.25.1.0.0, 4.25.1.0.15

38494156

3-42204313821

POL-17861

Not all calculation results are reversed when collection setting start date is moved to a date after a date from a previous version of a policy.

Description:

When a collection setting with generate policy calculation periods set to true and policy is approved and premium calculated, and a next version has a collection setting with a start date after the previous one: not all calculation results are reverted. For example: Create a policy with a collection setting startDate 2025-09-01, approve and calculate premium. Then, create a new version with a collection setting start date of 2025-09-05, approve and calculate premium. Calculation result starting on 2025-09-01 is not reversed.

Resolution:

The cause is that when looking at calculation results to be reverted, the new start date of the earliest generated policy calculation period is used. Thus skipping the ones that started on the previous earliest generated policy calculation periods. This is solved by including calculation results that are starting after or on the earliest effective date of mutations of type Recalculation.

Backports:

4.25.1.0.6

38197380

3-39952004651

POL-17485

Create invoice process should select reversal transaction detail only if there is no non-reversal transaction

Description:

Currently system selects the financial transaction detail having maximum detail ID while creating financial message chunks for a bulking group. This process doesn’t distinguish between reversal and non-reversal details and wrongly assumes non-reversal entries always have the highest ID. Since detail ID order depends on non-deterministic caching and processing behavior, this approach is unreliable and fails in edge cases.

Resolution:

The transaction detail selection logic has been updated. Within a bulking group, non-reversal details are now prioritized over reversal transactions. The detail with the maximum ID among non-reversal entries is selected and a reversal detail is chosen only if no non-reversal details exist.

38380804

3-40209632171

POL-17711

Start date of Flex code is not updatable

Description:

After a flex code is created, the system does not allow updating its start date. Although the update request returns a 200 response, the start date remains unchanged.

Resolution:

The start date of a flex code has been made updatable.

Backports:

4.24.1.0.12, 4.25.1.0.7, 4.24.1.0.14

38543890

3-42462237041

POL-17924

Enrollment Names are not displayed in Run Example Calculation Dialog

Description:

Person formatted Name is not displayed in Run Example Calculation dialog. Enrollment member node is blank

Resolution:

Enrollment Names (formatted name) are displayed in Run Example Calculation Dialog

Backports:

4.25.1.0.7

38553906

POL-17873

Activities left unprocessed after crashing a primary node.

Description:

In multi-node cluster where activities are running on all the nodes. If primary node is killed/crashed then activities in cluster remain unprocessed. Other nodes also stop processing the activities, this is gridlock scenario.

Resolution:

This is resolved to ensure that killing primary node does not stop the processing of activities across cluster. Fixed gridlock scenario

38482974

POL-17854

Policy process flow: Getting error on clicking "save and next"

Description:

In policy process flow page, attach and Next, apply and next leads to console errors

Resolution:

User is able to use Attach and Next, Apply and Next in policy process flow page

Backports:

4.25.1.0.11

38819435

4-0001350333

POL-18213

Reading large files from object storage fails due to non-configurable read timeout.

Description:

OHI does not provide configurable timeout settings (connection and read timeouts) while reading or streaming files from Object Storage (OS). As a result, file read operations rely on default OCI SDK timeout values, which are not suitable for large files or long-running streaming use cases.

Resolution:

Support for configurable Object Storage timeouts has been added to improve reliability when processing large files and long-running streaming workloads. Two new properties are now available: a. ohi.object.storage.read.timeout.millis b. ohi.object.storage.connect.timeout.millis

Both default to 60,000 ms (60 seconds) and can be increased as needed to prevent read timeouts errors during extended Object Storage operations

Backports:

4.25.1.0.16

38753152

POL-18160

Pend rules have the 'Enabled?' indicator switched off by default in UI

Description:

When configuring a pend rule, the enabled checkbox is false by default. This field is part of the 'more fields' area and because of that not immediately visible by the user. Default UI pattern is switching on the enabled field.

Resolution:

The "enabled" checkbox is set to true by default now

39296684

4-0002023680

POL-18674

Exchange Rate with a value less than 0.000001 is not allowed

Description:

When attempting to save an exchange rate with a value less than 0.000001, the system displays the error message: “Rate should be between 0.000001 and 9999999999.999999999999.”

Resolution:

The validation range for the minimum exchange rate has been updated to support up to 12 decimal places.

Backports:

4.25.1.0.18

39354660

POL-18703

Flexcodes configured as reftype in sets and labels of Results in policies Search returns error in console

Description:

When flexcodes are configured as reftype in sets and in labels of results component in policies search page, it results in error and page doesn’t load with quick search and advance search links

Resolution:

Search page works fine with flexcodes configured in the floorplan

Backports:

4.25.1.0.17

38925985

4-0001692989

POL-18318

Add Widget tile is not visible in Dashboard page

Description:

When a user logs in with access CO0019, add widget tile is not visible in View/Edit Dashboard page because user preference API has only retrieve access and not update.

Resolution:

Seed data is updated for CO0019 access restriction and user will be able to see Add Widget tile

Issues that were backported in previous Release / Patch

BugDB Internal Summary Backport BugDB SR

38516541

POL-12671

Database queries to pick up events for connector configuration are slow

4.25.1.0.8

38530119

36981634

POL-14796

Remove duplicate access from setup access role

4.25.1.0.5

38400812

36903242

POL-15631

Additional Field values when filled are not retained after save

4.24.1.0.3

37031736

3-37528423931

36903242

POL-15631

Additional Field values when filled are not retained after save

4.24.1.0.9

37031736

3-37528423931

37067284

POL-15876

Fix amount calculation logic for Monthly periods and Evenly amount distribution

4.25.1.0.15

39205573

4-0002429684

37188081

POL-16095

Unable to login to the application after a logout

4.25.1.0.13

38975941

37229586

POL-16183

An exception occurs when an empty messages list is returned from a Message Transformation Dynamic Logic Function

4.25.1.0.7

38525019

37281664

POL-16254

Connector configuration’s change list cannot be nullified using API

4.25.1.0.16

38408791

3-42089378931

37380943

POL-16384

An empty change list is created for connector configurations when a connector is created using JET UI.

4.25.1.0.18

38681024

3-38943334671

37380943

POL-16384

An empty change list is created for connector configurations when a connector is created using JET UI.

4.25.1.0.5

38408803

3-38943334671

37400030

POL-16396

Members page should show policy code instead of status

4.25.1.0.1

37400070

3-38989900081

37414669

POL-16407

adjustmentRule.scheduleDefinition returns Null in dynamic logic with adjustment rule signature

4.25.1.0.3

37460477

37455508

POL-16440

'Policies per Fatal Messages' Widget record count is incorrect

4.25.1.0.3

37455515

37605486

POL-16652

Plan Objects Not Cleaned Up When OutOfMemoryProtector Triggers During Calculate Premium Activity

4.25.1.0.1

37908122

3-39664837951,3-39711991321

37605486

POL-16652

Plan Objects Not Cleaned Up When OutOfMemoryProtector Triggers During Calculate Premium Activity

4.24.1.0.11

37625687

3-39664837951,3-39711991321

37633452

POL-16696

Prefilter criteria is retained when multiple custom floorplans are configured in Payment Registrations page

4.24.1.0.10

37633510

3-40449586751

37633452

POL-16696

Prefilter criteria is retained when multiple custom floorplans are configured in Payment Registrations page

4.25.1.0.1

37914204

37689169

POL-16765

PCPs with forward billing are skipped for apply registrations

4.24.1.0.12

37689174

3-39953000191

37689169

POL-16765

PCPs with forward billing are skipped for apply registrations

4.23.1.0.13

37689176

3-39953000191

37689169

POL-16765

PCPs with forward billing are skipped for apply registrations

4.25.1.0.1

37689181

3-39953000191

37789722

POL-16897

Add error handling for duplicate columns in base view generation

4.25.1.0.3

38309080

37832877

POL-16935

Attributes, Segments, More Section retain previous search result values in Accounting details page

4.25.1.0.1

37914251

37832877

POL-16935

Attributes, Segments, More Section retain previous search result values in Accounting details page

4.24.1.0.11

37832870

37809976

POL-16947

Default value of Flex code doesn’t get saved when LOV floorplan has only descriptor

4.25.1.0.2

37809984

3-40316251991

37812725

POL-16955

Unsaved changes dialog is not displayed for tabs in expanded view mode

4.25.1.0.1

37812730

37834546

POL-16971

Expand/Collapse is shown even when there is no tab configured

4.24.1.0.10

37908013

3-40316102201

37841851

POL-17040

Group Account Adjustments are not shown for a group account with no end date in time period

4.25.1.0.1

37914279

3-40216895161

37841851

POL-17040

Group Account Adjustments are not shown for a group account with no end date in time period

4.24.1.0.11

37841866

3-40216895161

37854831

POL-17048

The applyRegistration activity is blocked due to table lock held by nextcalculationcyle IP process

4.25.1.0.5

37854835

37859531

POL-17053

Enhanced diagnosability and error handling for transactions marked as Rollback

4.25.1.0.6

37859797

3-40389292391

37869333

POL-17058

Apply Registrations functionality leaves gaps when regenerating Policy Calculation Periods for over a year.

4.23.1.0.13

38072404

3-40008658091

37869333

POL-17058

Apply Registrations functionality leaves gaps when regenerating Policy Calculation Periods for over a year.

4.25.1.0.2

37869341

3-40008658091

37867800

POL-17063

Conditional loading of value does not work in List Of Values dropdown once the value is selected

4.25.1.0.1

37867881

3-40372816341

37867800

POL-17063

Conditional loading of value does not work in List Of Values dropdown once the value is selected

4.24.1.0.11

37867863

3-40372816341

37876419

POL-17068

Flex Code Base Views are both removed and updated at the same time

4.25.1.0.14

38691204

3-42957456931

37828610

POL-17070

Base View generation fails for an entity which has an apostrophe character in the display name

4.25.1.0.0

37883282

37888201

POL-17074

Generateaccountingmessage IP populates reversal as false for null reversal accounting details

4.25.1.0.1

37888229

37888201

POL-17074

Generateaccountingmessage IP populates reversal as false for null reversal accounting details

4.24.1.0.11

37888243

37893330

POL-17084

Run example calculation returning 500 status when member has a relation link

4.25.1.0.1

37906801

37902306

POL-17091

Premium calculation for last period is incorrect for evenly distributed yearly contracted policy when the calendar month split is disabled

4.25.1.0.6

38508710

37907040

POL-17097

Not able to retrieve parent context values in view mode of the page in a tab

4.24.1.0.10

37907444

3-40346571471

37907040

POL-17097

Not able to retrieve parent context values in view mode of the page in a tab

4.25.1.0.1

37913485

37908280

POL-17103

Labels for regular flex code fields are not working while configuring it in search page

4.24.1.0.10

37908290

3-38056877861

37908280

POL-17103

Labels for regular flex code fields are not working while configuring it in search page

4.25.1.0.1

37913462

37915543

POL-17120

Jersey-specific redirect configuration is deprecated in favor of OHI client setting

4.25.1.0.0

37913016

37915543

POL-17120

Jersey-specific redirect configuration is deprecated in favor of OHI client setting

4.25.1.0.15

37913016

37958338

POL-17128

Unable to save Parameter Domain Values of Parameter Domains tab in Enrollment Products after an error is resolved

4.25.1.0.2

37958348

37926402

POL-17135

Policies in Progress - Previously opened tab is showing up instead of home page & title needs to be updated

4.25.1.0.2

38146911

37931723

POL-17155

User information is not available to use in floorplans using userJET property

4.24.1.0.10

37944423

3-40662938551

37931723

POL-17155

User information is not available to use in floorplans using userJET property

4.25.1.0.1

37950439

37947740

POL-17163

Bill Receiver is missing in More section for Premium Bill Allocation tab on Policies Page

4.25.1.0.1

37947792

37947740

POL-17163

Bill Receiver is missing in More section for Premium Bill Allocation tab on Policies Page

4.24.1.0.11

37947800

3-40947650401

37972431

POL-17195

Policies In Progress - Policy message is not attached to the Response

4.25.1.0.1

37972439

37976692

POL-17202

Unable to search policy/person for member having apostrophe in the name.

4.25.1.0.1

38021438

3-38637505211

38001482

POL-17228

NS0 namespace getting added in tags of system generated XML files.

4.25.1.0.10

38071064

3-40882994521

38159303

POL-17241

Group client Enrollment Products : LOV Search is not working

4.24.1.0.12

38216432

3-41533253061

38159303

POL-17241

Group client Enrollment Products : LOV Search is not working

4.25.1.0.3

38159306

3-41533253061

38010565

POL-17243

Property 'userJET' should expose userid, login name, display name, last login timestamp, defaultCountry information

4.25.1.0.1

38010579

38010565

POL-17243

Property 'userJET' should expose userid, login name, display name, last login timestamp, defaultCountry information

4.24.1.0.11

38010593

3-40795406971

38010910

POL-17246

Incorrect cause shown in policy output history

4.25.1.0.1

38014158

38011755

POL-17247

'Submit after update?' field is not displaying correctly on the macro screens

4.24.1.0.12

38013139

3-40699032496

38011755

POL-17247

'Submit after update?' field is not displaying correctly on the macro screens

4.25.1.0.1

38033071

38015279

POL-17253

Performance degradation in activity processing due to the overhead caused by the heartbeat query

4.24.1.0.12

38041034

38015279

POL-17253

Performance degradation in activity processing due to the overhead caused by the heartbeat query

4.25.1.0.1

38015338

38018230

POL-17257

Numeric search is not working in lookup dialog

4.25.1.0.1

38018234

3-40799088818

38024884

POL-17266

Prefilter is not applied to a search query for View Edit List template based pages

4.25.1.0.2

38024887

38030655

POL-17273

Download button is lost when there are no search results

4.25.1.0.1

38030659

38058849

POL-17304

Call to invalidate L2 entity-cache became recursive when memory protector kicked-in

4.25.1.0.3

38058862

38060660

POL-17307

Dynamic fields information not shown in policy Bill receivers

4.24.1.0.12

38060674

3-40947650401

38060660

POL-17307

Dynamic fields information not shown in policy Bill receivers

4.25.1.0.1

38060673

38068104

POL-17311

Added custom content-Length header (X-Content-Length) to the data file response for validation during file downloads in OIG

4.24.1.0.12

38068154

38068104

POL-17311

Added custom content-Length header (X-Content-Length) to the data file response for validation during file downloads in OIG

4.25.1.0.1

38068144

38077360

POL-17321

eventDate attribute in logapplicationevents and logdynamiclogicevents resources ignores time component

4.25.1.0.4

38350823

38084883

POL-17325

The automatic generation of SQL Monitor report for query API calls is not functioning as expected

4.25.1.0.3

38084855

38094525

POL-17338

Policy process flow: Value is not shown in read only mode for policy rule step

4.25.1.0.1

38094534

38094801

POL-17340

Unable to add a new validation rule, pend rule, or callout in the policy process flow

4.24.1.0.12

38094932

3-41205595461

38094801

POL-17340

Unable to add a new validation rule, pend rule, or callout in the policy process flow

4.25.1.0.1

38095055

3-41205595461

38105887

POL-17358

Group Account Activity - Boilerplate issue in Activity messages tab

4.25.1.0.1

38105907

38111112

POL-17364

Policy details page is not loading when user validates any policy which is in edit status, also auto refresh not working after validation

4.24.1.0.12

38089636

3-41091694751

38111112

POL-17364

Policy details page is not loading when user validates any policy which is in edit status, also auto refresh not working after validation

4.25.1.0.1

38089610

38131970

POL-17389

Duplicate entries in OHI_TABLE_COLUMNS

4.25.1.0.4

38131983

3-41237424921

38148913

POL-17407

Unable to add product in policy from Change Product option.

4.25.1.0.4

38204793

38148913

POL-17407

Unable to add product in policy from Change Product option.

4.24.1.0.13

38204809

3-41007344251

38158918

POL-17421

Spinner icon doesn’t get closed after validate, submit in Policies page

4.25.1.0.4

38158921

38198346

POL-17486

Data transfer export to Oracle directory has issues with CSV and JSON formats

4.25.1.0.4

38198426

38207972

POL-17496

Trace file link in activity messages is not correct in UI

4.25.1.0.3

38287609

38222165

POL-17501

Boilerplates are visible in Policy process flow page on page load

4.25.1.0.3

38222192

38601536

POL-17504

Index.html is added to URL after login with IDCS config

4.25.1.0.9

38601541

38224766

POL-17506

Tracking/Tracing of requests should not be sent to external systems

4.24.1.0.12

38226872

3-40724895331

38224766

POL-17506

Tracking/Tracing of requests should not be sent to external systems

4.25.1.0.3

38234366

38229228

POL-17510

Boilerplates are visible in Policy process flow page on page load

4.25.1.0.3

38229231

38229848

POL-17512

When creating adjustmentrules the valueAmount field is getting limited in the range from -99999999.9999 to 99999999.9999

4.25.1.0.2

38230300

38230176

POL-17513

Message parameters are not getting substituted correctly for policy messages

4.25.1.0.2

38230186

3-41554949011

38234044

POL-17517

Delete rows icon in tab-table does not appear when Auto include extensibility is checked in floorplan

4.25.1.0.2

38234053

3-41589053101

38247373

POL-17526

Data file extracts to object storage were recorded with a zero content length in the database.

4.25.1.0.3

38247391

38250930

POL-17545

When executing data masking, ORA-00942: table or view does not exist.

4.24.1.0.12

38250950

38250930

POL-17545

When executing data masking, ORA-00942: table or view does not exist.

4.25.1.0.3

38250945

38258650

POL-17554

Policy Calculation Period Unique Key violation thrown by Apply Registrations activity

4.23.1.0.13

38273449

3-41471633021

38258650

POL-17554

Policy Calculation Period Unique Key violation thrown by Apply Registrations activity

4.24.1.0.13

38273440

38258650

POL-17554

Policy Calculation Period Unique Key violation thrown by Apply Registrations activity

4.25.1.0.4

38273426

38275258

POL-17563

Missing access restriction mapping for accountingdetails API on payment registrations page

4.25.1.0.4

38333590

38282317

POL-17588

Error when creating individual and organization providers using 'Save and Next' action in JET UI

4.25.1.0.3

38299898

3-41496402011

38288683

POL-17599

Task remains stuck in AQ with state '3', when not dequeued before expiry

4.25.1.0.4

38298900

3-41728688211

38336179

POL-17647

Increase in heap memory usage following the Groovy 4 upgrade

4.25.1.0.9

38664807

3-42695355031

38353189

POL-17662

Tab Space is present in floorplan Code

4.25.1.0.5

38353210

38370361

POL-17673

Include error cause in RuntimeException for POST/PATCH save requests of Dynamic Logic

4.25.1.0.5

38406131

38372946

POL-17677

Column Headers are wrapped in widgets, lookup dialog etc

4.25.1.0.4

38372949

3-41609968491

38376561

POL-17685

Implement Retry Logic for initiateOnDemandAntivirusScan on OptimisticLockException

4.25.1.0.18

38376567

38380804

POL-17711

Start date of Flex code is not updatable

4.24.1.0.12

38380857

38380804

POL-17711

Start date of Flex code is not updatable

4.25.1.0.7

38380831

3-40209632171

38380804

POL-17711

Start date of Flex code is not updatable

4.24.1.0.14

38380857

3-40209632171

38388200

POL-17720

Reversed Calculation Results included during reconciliation calculation

4.23.1.0.13

38388217

3-41612607721

38388200

POL-17720

Reversed Calculation Results included during reconciliation calculation

4.25.1.0.6

38388214

3-41612607721

38390327

POL-17723

System randomly throws optimistic locking exception while updating dynamic logic on CFS deployments

4.25.1.0.4

38384208

38390327

POL-17723

System randomly throws optimistic locking exception while updating dynamic logic on CFS deployments

4.24.1.0.13

38374797

38393113

POL-17725

Notation To Be Shown After Parameter Values

4.25.1.0.6

38393117

3-41972506271

38393537

POL-17727

Reconciliation is applied to catchUp periods

4.25.1.0.7

38393542

3-41612607721

38405709

POL-17738

Reprocessing a Policy executes all process steps

4.25.1.0.5

38405720

38406102

POL-17740

Person’s formatted name is not shown in Policies page

4.25.1.0.6

38406116

3-42061494681

38412130

POL-17746

"Domain Values" is not showing in Parameter Domain Values Tab in Enrollment Products

4.25.1.0.6

38412153

3-42051417011

38414571

POL-17752

500 Internal server error occurs when populating the province field in the group account address under the extensibility tab

4.25.1.0.6

38414587

3-42030672651

38439908

POL-17772

In Activity pages, for Column 'created By', values are not displayed on scroll

4.25.1.0.5

38439930

38439912

POL-17773

Table height is not getting auto adjusted when a new row is added/copied

4.25.1.0.8

38439958

38455957

POL-17790

Date fields should be shown at the last in Reference Sheet Lines table

4.25.1.0.5

38455974

38462480

POL-17811

Enrollment product: adjustment override : copy button not working

4.25.1.0.6

38462492

38476305

POL-17844

Unable to Select a Product when Group Account Product Availability is in the Future

4.25.1.0.6

38476501

3-42101202791

38476305

POL-17844

Unable to Select a Product when Group Account Product Availability is in the Future

4.24.1.0.13

38476477

3-42101202791

38477354

POL-17850

Group Accounts - Boilerplate issue on click of Add Group Account Product button

4.25.1.0.13

38477388

38482974

POL-17854

Policy process flow: Getting error on clicking "save and next"

4.25.1.0.11

38482988

38482987

POL-17855

Process policy activities cannot be executed concurrently for a given policy

4.25.1.0.7

38494170

3-42200427161

38494156

POL-17861

Not all calculation results are reversed when collection setting start date is moved to a date after a date from a previous version of a policy.

4.25.1.0.6

38494159

3-42204313821

38494076

POL-17864

Policies widget is not available when a policy is opened

4.25.1.0.6

38497092

3-42214428861

38498933

POL-17869

Policy Premium: Policy reversal calculation results are displayed

4.25.1.0.6

38498939

3-42254617011

38505390

POL-17880

Member level events for multiple policy versions (one in EDIT) status, not correctly processed

4.25.1.0.7

38543054

38522466

POL-17896

Improve retrieval of accounting details in UI-pages

4.25.1.0.7

38543017

38541476

POL-17920

javax.persistence.NoResultException in CalculationPeriodRepositoryImpl

4.25.1.0.7

38542838

38543890

POL-17924

Enrollment Names are not displayed in Run Example Calculation Dialog

4.25.1.0.7

38543932

3-42462237041

38553491

POL-17928

Person page: titles not getting removed

4.25.1.0.8

38553507

38554171

POL-17931

Both code and formatted name should be displayed for policyholder

4.25.1.0.9

38554206

4-0001365237

38587009

POL-17950

Can’t add new columns to flex codes definition if it has no descriptor field

4.25.1.0.13

38596960

38587009

POL-17950

Can’t add new columns to flex codes definition if it has no descriptor field

4.24.1.0.14

38587045

3-42470374891

38591936

POL-17957

Not able to view suffix (%, #) next to domain value in parameter domain values tab of enrollment products

4.25.1.0.17

38591968

3-42051417011

38608346

POL-17971

CMT Import fails when a field definition is updated with extended length

4.25.1.0.16

38644648

3-42578803401

38610927

POL-17978

The activity thread pool size does not revert to its original value of 8 after memory usage returns to normal

4.25.1.0.8

38617426

3-42702599701, 3-42695355031

38610927

POL-17978

The activity thread pool size does not revert to its original value of 8 after memory usage returns to normal

4.24.1.0.14

38660078

3-42702599701, 3-42695355031

38640608

POL-18026

Resend/cancel enrollment event notifications IP shows enrollment event notification in response.

4.25.1.0.8

38642532

38652948

POL-18047

Group Client page is not loaded when it is in In-Process Status

4.24.1.0.14

38652963

38652948

POL-18047

Group Client page is not loaded when it is in In-Process Status

4.25.1.0.9

38652960

38686158

POL-18078

Error when changing from and to prorated and non-prorated function in Adjustment rules API/UI

4.25.1.0.10

38686176

3-42944249861

38718566

POL-18111

Quick search operator is changed to 'eq' for Policy Code in policy activities page

4.25.1.0.9

38718572

3-42761376561

38719121

POL-18113

Connector configuration page: does not reflect updates to an existing changelist

4.25.1.0.9

38719149

38719121

POL-18113

Connector configuration page: does not reflect updates to an existing changelist

4.24.1.0.14

38719329

3-42831655789

38814591

POL-18121

The Person API does not accept non Latin or accented characters in the local part or user name of the email address.

4.25.1.0.14

38973502

4-0002159777

38732102

POL-18122

Object Change Log has no reference to Policy Enrollment or person for new Policy

4.25.1.0.9

38732113

3-42695523481

38741293

POL-18147

If an error occurs during validate policy operation, the response is unclear and the actual error is not shown

4.25.1.0.13

38741307

38742918

POL-18151

Policy activities: Error is shown for view messages dialog

4.25.1.0.9

38743013

38756088

POL-18161

Node crash when outbound messages are sent to external application in certain scenario

4.25.1.0.13

38846582

38792096

POL-18193

Object storage operation cause assert or Weblogic asserts at event publishing time in absence of missing class loader context in underlying thread

4.25.1.0.12

38838387

38795305

POL-18194

Extended Support for ohiHttpRequest Across Additional Signatures

4.25.1.0.13

38837201

38819090

POL-18212

Ensure Each Extracted Record from NDJSON in Data Transfer IP is a Valid JSON Object

4.25.1.0.13

38822270

38819435

POL-18213

Reading large files from object storage fails due to non-configurable read timeout.

4.25.1.0.16

38819442

4-0001350333

38819741

POL-18215

Dynamic logic fails when an output writer is created but no data is written in data file stored in object storage

4.25.1.0.13

38819806

38835240

POL-18226

Several issues when logging policy enrollment events for persons

4.25.1.0.13

38835242

38839290

POL-18235

AbstractNotificationTask logs the error only at WARN level

4.25.1.0.13

38913247

38853096

POL-18250

Delete of premium schedule (line), add-on, adjustment rule or schedule definition can be very slow

4.25.1.0.13

38853119

38856795

POL-18253

Missing secrets for OAuth clients while ohistore is used as keystore

4.25.1.0.14

38856807

4-0001793793

38860653

POL-18256

Query API returns incorrect totalResults when groupBy is used

4.25.1.0.14

38973182

38863355

POL-18259

Boilerplate codes visible instead of the values on parameter values of a policy enrollment product

4.25.1.0.14

38872430

4-0001814443

38873382

POL-18274

Download button and column chooser is missing in registrations page

4.25.1.0.12

38873516

38877856

POL-18277

Validation rules marked as "exclude from validation" are executed during example calculation and quote IP.

4.25.1.0.14

38877862

4-0001712606

38902346

POL-18303

Boilerplates are shown Parameter Values In Member Foldout page

4.25.1.0.17

38902359

4-0001811737

39051132

POL-18333

Fix memory issues when republish tasks handle large message volumes

4.25.1.0.18

39201353

4-0001967358

38953339

POL-18343

Quote IP returns no results when parameter amount format differs from premium line amount format

4.25.1.0.13

38953359

38978218

POL-18367

Error message is shown in GrountAccountProduct while saving

4.25.1.0.14

38978223

38999440

POL-18383

Resources cannot be searched when code starts with %255%

4.25.1.0.15

38999457

4-0002125064

39014238

POL-18394

After the ADB patch, the extract activity failed with ORA‑00028 - your session has been killed ERROR

4.25.1.0.14

39014250

4-0002303899

39048596

POL-18406

Duplicate child activities are created for a single policy update request

4.25.1.0.18

39048599

4-0001572222

39073704

POL-18432

Implicit deletion of Group Client Events creates a Policy Event

4.25.1.0.14

39107446

39075620

POL-18434

Search on mobile phone number on relations is slow.

4.25.1.0.15

39078353

4-0002220932

39079001

POL-18436

Automatic Task Recovery Delayed on Application Restart

4.25.1.0.16

39218132

39081090

POL-18441

When a lot of Quote requests are executed (a high load) with same new (dummy) person the performance slows down

4.25.1.0.14

39084103

4-0002265614

39113937

POL-18487

OAuth RestClientBuilder lookup fails due to duplicate enum keys across authentication feature enums

4.25.1.0.15

39114103

39114459

POL-18489

Task gets stuck when the system enters a critical memory state

4.25.1.0.15

39114465

39123017

POL-18491

Making Activity Executor code more robust for edge case scenarios

4.25.1.0.15

39123053

39158027

POL-18530

ohiHttpRequest is extended to support plain-text and HTML request bodies

4.25.1.0.15

39176426

39160109

POL-18536

Memory exhaustion in Gateway due to dynamic logic creating multiple data files in Object Storage

4.25.1.0.16

39160114

39162942

POL-18538

Operational reports should allow users to enable usage of full view to display data grid

4.25.1.0.15

39211663

39163814

POL-18540

Improve resilience for Object Storage file downloads from ohi when long-running data file processing causes HTTP streams to remain open for extended periods, reducing failures from truncated responses.

4.25.1.0.16

39163823

39173560

POL-18548

Incorrect time range validation for bill allocation filtering when enrollment start date is after span reference date

4.25.1.0.16

39173999

39175677

POL-18552

Failure in Persist message at republish message time should do task failure

4.25.1.0.18

39239315

39176381

POL-18554

Multiple policies in Edit mode and not able to submit or purge when pre-enrollment is enabled.

4.25.1.0.17

39176418

4-0001814976

39205483

POL-18597

Integration Event Aggregate Creator can remain errored without spawning the next task

4.25.1.0.19

39660201

4-0002304760,4-0003122823,4-0003132442

39211063

POL-18603

Incorrect Copayment parameter values

4.25.1.0.15

39211085

4-0002534239

39233298

POL-18623

Date Paid To is set to one day before the last reversed calculation result start date.

4.25.1.0.18

39233309

4-0002168128

39245671

POL-18628

Dynamic fields configured at attached data level in policies page are not appearing when set as labels in policy details page

4.25.1.0.16

39245700

39271776

POL-18657

Performance degradation caused by full table scans on the INT_AGGREGATE_CHANGE_EVENTS table when querying by AGGREGATE_ID

4.25.1.0.18

39279419

4-0002496887

39280009

POL-18661

Parameter alias names in parameter values tab are not loading in policy enrollment products

4.25.1.0.17

39280104

4-0001814443

39296684

POL-18674

Exchange Rate with a value less than 0.000001 is not allowed

4.25.1.0.18

39296694

4-0002023680

39330352

POL-18688

Member Selection in Policy Enrollment is Not Working Under Policies

4.25.1.0.17

39330359

4-0002651658

39354660

POL-18703

Flexcodes configured as reftype in sets and labels of Results in policies Search returns error in console

4.25.1.0.17

39347974

39356069

POL-18705

PHI logging includes unmatched 'left joins' rows

4.25.1.0.19

39525945

39401553

POL-18740

Work manager ws-work-manager is not used for API/IP requests

4.25.1.0.19

39693836

39408160

POL-18743

Mark cacheEnabled and invalidateLater as volatile in DynamicLogicServiceImpl to prevent stale cache state across threads

4.25.1.0.19

39408161

4-0002782929

39409606

POL-18745

Function API access mapping is missing for User View Preferences API

4.25.1.0.18

39409614

39444792

POL-18757

PHI audit logs corrected for aliased base views in data transfer payloads

4.25.1.0.19

39526249

39568951

POL-18816

Business events does not return the correct policy enrollment in the change objects when updating flex code in policy

4.25.1.0.21

39569000

4-0002996907

39585141

POL-18821

Carry over amounts are not included in payment reconciliation

4.25.1.0.19

39585180

4-0002579687

39600248

POL-18827

Improved security log search performance

4.25.1.0.18

39600254

4-0002914417

39683250

POL-18871

Activity purge fails with integrity constraint violation error.

4.25.1.0.19

39683275

39773685

POL-18938

Incorrect sorting of fields in Multi-Value Dynamic Fields in view mode.

4.25.1.0.20

39773696

4-0003336292

39774178

POL-18941

Request formed for end policy is sending updated end date for parameters which already have end date

4.25.1.0.20

39774212

4-0003329452

39782108

POL-18954

Quote IP in no-flush mode fails with NullPointerException when member copy feature is enabled

4.25.1.0.20

39782118

4-0003295641

39829282

POL-18993

Cleared dynamic fields could still return the previous value during the same processing flow.

4.25.1.0.21

39829297

4-0003422821

39840304

POL-19004

Quote IP in no-flush mode fails with NullPointerException when deleteDynamicRecord method is invoked from dynamic logic

4.25.1.0.21

39840318

Known Issues

BugDB SR Internal Summary

34175340

POL-10596

Recent policy holder (formatted name) header/ column is missing in Widgets

Description:

In Policies search page add a widget Application InProgress(Edit) Search results table Recent Policy Holder (formatted name) header/ column is missing.

34543324

POL-11184

Change event rules on person’s maritalStatusList are not triggered via POST request on generic/maritalstatuses

Description:

Given that we have a change event rule configured on update of person. When we add a marital status via a PATCH or PUT request on api/generic/persons, then change event rule correctly gets triggered. However, when we add a marital status via a POST on the child resource itself (that is: api/generic/maritalstatuses), then, the change event rule is incorrectly not triggered. This also affects this update to person (adding a maritalStatus) via JET UI.

34579712

3-30561689958, 3-30460458241

POL-11323

Errors in the policies object model for classes in policyversionchangedetection package

Description:

We can generate the groovy objects model of the application from the Objects Integration Point or via ADF UI → ConfigurationSystemView ObjectsGenerate Objects button. The problem is the groovy object model does not compile out-of-the-box. In particular, there are compilation errors in the policyversionchangedetection package.

36440999

POL-11663

While Rejecting or Accepting an enrollment file, the system does not wait and show if backend process is completed or failed

Description:

No indication is shown to the user that activity is completed when Rejecting or Accepting an enrollment file

34871685

POL-11741

Auto Include Extensibility Error Handling

Description:

When there is an error in any multivalue dynamic field or dynamic record the error path is not indicating the particular property along with the index as shown for other multivalue list items present in the metadata.

35676529

3-33383356981

POL-13383

Messages are not republished for unavailable connector configurations

Description:

Messages for a disabled connector configuration, or one without a destination URL, could be marked for republishing.

36369698

POL-13754

Re-login is blocked when user use the same session by entering the env url

Description:

Logging out from the second tab causes the first tab to become unresponsive when trying to navigate to any other page. This issue is specific to cloud environments

36017719

POL-13974

Policy Bill Receiver - Not Possible to Configure Billing Account Reference in ADF and JET UI

Description:

The UI allows users to configure a billing account for a policy, but not associate it with the policy billing account. Both UI’s only allow users to configure a reference to a relation.

36895410

POL-14634

Advanced search is not working in widgets

Description:

Advanced search is not allowing to select a value when configured in widgets.

36981690

POL-15004

Loading Create page using system specific floorplan is showing error

Description:

When an errored floorplan is active and create page is loaded with non errored floorplan, the page doesn’t load and shows error.

36600678

POL-15151

Activity is not behaving as expected during testing recovery mechanism

Description:

When submission from processing grid is removed for a InProcess (IP) stuck activity using clearsubmissioncache IP, the activity goes to TechnicalError (TE) state. On recovering activity, it is not immediately completing. It takes some time and often throws timed out error.

36915456

POL-15251

Mandatory check missing for Total Premium Currency field

Description:

Mandatory Check is missing for currency fields

36844414

POL-15483

Display error message for URL parameter limit exceeding 1024 characters on search pages

Description:

A console error appears when a URL parameter exceeds 1,024 characters. Display a UI error message instead.

36890553

3-37549087361

POL-15611

Exclude certain attribute options from the business event rule page

Description:

When creating a Business Event Rule, certain non-monitored attributes (e.g., Status, Creation Date, GID) should be excluded from the drop-down menu. This ensures users can only select relevant attributes for monitoring. These exclusions are due to specific reasons, such as consistency across versions.

36981727

POL-15694

Edit action is not persisting the data

Description:

Edit action is not persisting when we save and come back to the page in medi assist policies

37261618

POL-15886

Extracts creates datafiles more than configured count

Description:

Extract process creates more number of datafiles than the configured count (ohi.extract.datafilecount)

37897400

POL-16072

Table Data is lost when the window screen is resized

Description:

A new row added in table is lost when the window screen is resized

37276485

3-41571848821

POL-16248

Heartbeat update query causes deadlock on perf env

Description:

upgrade/downgrade scenario4 failed with error : org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction "rolled back" because transaction was set to RollbackOnly.)

37744870

POL-16731

Unable to search for 'Premium Hold equals to false' in generic API request

Description:

A Premium Hold is an indicator set on the Attached Policy Data, which value equals either 'true' or 'false'. Using the generic query API, querying on the Premium Hold translates in either 'attachedPolicyData.premiumHold.eq(true)' or 'attachedPolicyData.premiumHold.eq(false)'. The latter condition, in combination with a search on all results (e.g. "totalResults": true) throws an exception. A temporary solution for this is using 'attachedPolicyData.premiumHold.eq(null)'. Similar behaviour is observed for the disableUpdateFromQueue indicator on Attached Policy Data

37779299

POL-16779

Error Message is shown while performing Advance search on Premium Hold with value as 'No' in Policies page

Description:

In policies search page, performing a Advance search on Premium Hold with value as 'No' throws error

37830709

POL-16831

Retention of Code Value in Group Client View with Unsaved Changes Popup

Description:

After editing the code on the Group Client page and navigating away, clicking 'No' on the unsaved changes popup retains the modified code when returning to the Group Client details page, instead of reverting to the original value.

38184062

POL-16879

Error notification is not cleared from the Parameter Domain tab in Manage Group Accounts after the incomplete record is removed

Description:

The error indicator on the Parameter Domain tab remains visible after an incomplete record is deleted, even though the validation issue no longer exists.

37807209

POL-16941

ohiHttpRequest and initCallout methods work with any destination code value if correct credentials are set for that value

Description:

The ohiHttpRequest and initCallout methods accept any destination code value when correct credentials are set for that specific value.

37958976

3-39977486261

POL-17183

Nullpointer exception when group client IP is re-invoked after changing user preference language

Description:

When user preference language is changed and groupclient IP is used to update the details, application was throwing Nullpointer exception.

38014568

3-40938840831

POL-17250

Permissions error thrown on attached policy data

Description:

In policy details page, clicking the attached policy data throws error related to access missing for tab resource

38056355

POL-17302

Slow retrieval of Policy Update Requests through the API.

Description:

Retrieving Policy Update Requests through the search API may take longer than the expected response time.

38086059

POL-17326

LOV values do not load when filter context contains an apostrophe

Description:

LOV values do not load when a filter is configured with the context of a field containing an apostrophe.

38621421

POL-17355

View and edit page: unable to move out of page upon clicking on "Save" in unsaved pop up

Description:

When a user edits fields and navigates away from the page using the breadcrumbs, an "Unsaved changes" popup is displayed. If the user clicks "Save," the changes should be saved and the application should navigate to the page selected via the breadcrumb.

38110676

POL-17363

Group Account Activity - Composite Messages tab should be added to display sub activity messages

Description:

On the Group Account Activities page, when importing or fetching the Calculate Premium activity (or any other activity with a processing error), sub-activity messages is not displayed under the Composite Messages tabs.

38209093

3-41305444821

POL-17498

When dynamic logic is updated while one or more nodes are starting up those nodes fail to start successfully and remain stuck.

Description:

When dynamic logic is created, updated, or deleted, or when the InvalidateAll IP operation is invoked on one node while one or more other nodes are starting up, those starting nodes can become stuck due to a thread deadlock. As a result, the affected nodes fail to complete startup and do not come up successfully.

38445043

3-42152805389

POL-17780

Domain object manipulation is not restricted in Message Transformation logic

Description:

Message Transformation dynamic logic currently allows manipulation of domain objects, although this is not supported by the documented behavior. This may permit unintended updates to domain data. A future release will restrict such manipulation; customers using this capability should plan to revise their Message Transformation logic.

38482876

POL-17852

Enrollment Product: Unable to update parameter domain from non discrete to discrete and vice versa

Description:

Enrollment Product: Unable to update parameter domain from non discrete to discrete and vice versa

38603145

POL-17964

Improved resilience of activity processing after a node failure.

Description:

When a node fails while the activity loader is preparing activities for processing, some activities can remain unprocessed.

38606950

POL-17967

An intermittent issue where dynamic field logic could fail on an individual application node when its dynamic field setup cache was unavailable or inconsistent.

Description:

An intermittent, node-specific issue affected dynamic logic execution during dynamic field fetch operations. The dynamic field setup cache was temporarily unavailable or inconsistent on impacted nodes, resulting in exceptions. Processing routed through other nodes continued successfully.

The cache recovered automatically after several hours, and dynamic logic execution resumed without a restart or manual intervention. Enhanced diagnostics and monitoring are being considered to help detect and investigate similar cache-related conditions.

38669361

POL-18063

Improved system resilience when database connections are temporarily unavailable.

Description:

In high-load conditions, database connections may be fully occupied by concurrent operations. Previously, OhiAppender could wait indefinitely for a connection, which could increase request queuing and affect overall performance. OhiAppender will be enhanced with a configurable database-connection timeout. If a connection is not available within the configured period, the failure will be handled safely, reducing resource contention and helping prevent prolonged request delays.

38711249

POL-18104

Scroll issue in Member Notes fold

Description:

On the Members page after scrolling to the bottom of the Notes section, user is unable to scroll back to the top within the Notes panel.

38883837

POL-18283

When we add a row in table component and click on Cancel at page level or navigate to other object navigation and come back, empty row is getting created

Description:

When a row is added to a table and user clicks cancel or navigate to other page using object navigation, on return the same empty row is being retained. It goes away only with hard refresh.

38892168

4-0001784507

POL-18287

Base View regeneration leaves stale ReportingView and ViewColumn metadata in caches

Description:

After Base View regeneration, the metadata in OHI_REPORTING_VIEWS and OHI_VIEW_COLUMNS can change, but the middle tier may still use stale cached data. Reporting View appears to remain cached beyond the currently invalidated cache. View Column uses a separate cache and is also not consistently refreshed across nodes after regeneration. This causes regenerated reporting view metadata to remain outdated until caches are cleared by some other path.

38941940

POL-18334

Validation for change rules in Generic API connector configurations is missing

Description:

A connector configuration submitted through the generic API is able to persist a changeList containing change rules without a required entity name or action (Create, Update, or Delete).

39079486

POL-18438

Improved task handling when the database connection pool is exhausted.

Description:

During periods of high database demand, tasks could be marked as Errored even when a database connection was unavailable for normal processing. This occurred because the task was able to record the connection-pool error and commit an error status.

The enhancement ensures that connection-pool exhaustion is handled appropriately, preventing affected tasks from being incorrectly finalized as Errored and allowing them to remain available for recovery or retry once database capacity is restored.

39113265

POL-18485

Group Account Products cannot be created from the detail region on the Manage Group Accounts page

Description:

Users cannot create Group Account Products from the detail region on the Manage Group Accounts page because the error notification remains displayed.

39135821

4-0002051144

POL-18511

Performance degradation in the ConnectorConfigurations API when there is a high volume of failed message publications.

Description:

Under high volumes of failed message publications, retrieving connector configurations can take significantly longer than expected

39177717

POL-18578

Policy enrollment start date not updated when policy group account start date is updated in UI

Description:

When the startDate of the policy group account is moved to future, Policy enrollment start date not updated

39194656

POL-18590

X-OI-CORRELATION-ID is not enabled by default for REST connector channels

Description:

Previously, customers needed to explicitly enable the X-OI-CORRELATION-ID header for each REST connector channel to support idempotent message processing. New REST connector channels now include this header by default.

39201669

4-0002345055

POL-18593

Improved activity handling when the database connection pool is exhausted

Description:

When no database connections are available, activity processing could fail with an unexpected exception during transaction handling. This enhancement ensures that affected activities are safely updated to Technical Error (TE) status, enabling appropriate follow-up and preventing activities from remaining in an inconsistent processing state.

39201912

4-0002345055

POL-18595

Improved activity recovery handling following a cluster member-leave event.

Description:

During activity restart, recovery, or automatic recovery triggered when a cluster member leaves, an existing task identifier could remain registered. A subsequent attempt to resubmit the activity could then fail with an “Identifier Already Exists” error.

The recovery process will clear any existing identifier before resubmitting the activity, preventing duplicate task registration errors and improving the reliability of automatic activity recovery.

39218504

POL-18611

Republish tasks can run more than once after error recovery

Description:

After an errored republish task is manually recovered, another republish task can also start. This causes concurrent republish tasks and can result in duplicate processing.

39233240

4-0002548324

POL-18622

Automatic recovery can fail to identify the latest errored task

Description:

When an earlier task has a higher identifier than a more recently created task, automatic recovery can fail to identify and recover the latest errored task.

39259043

4-0002614627

POL-18642

Tasks can remain pending after a service-protection limit is reached.

Description:

When task processing reaches a service-protection limit, affected tasks can remain pending and are not scheduled again. This can prevent the affected tasks from continuing to process.

39330466

4-0002705959

POL-18690

Antivirus scanning configuration changes require an application restart.

Description:

Changes to enable or disable antivirus scanning do not take effect until the application restarts. This creates operational overhead and can cause unnecessary service disruption.

39330518

POL-18691

Improved file-processing resilience when the antivirus scanning service is temporarily unavailable.

Description:

When the ICAP antivirus service is unavailable or cannot be reached, file processing will continue and the antivirus scan status will be recorded as Skipped. This prevents CMT imports and file uploads from failing solely because antivirus scanning cannot be performed. This behavior applies to CMT import and data file upload flows. ICAP connectivity failures will continue to be logged for operational follow-up.

39356055

POL-18704

Deletion of working copies during policy cascade delete

Description:

Delete the working copies during policy cascade delete in order to ensure that no stale data is present in database

39420751

4-0002652173

POL-18750

Post-Approval Enrollment Event Notifications are not obsoleted when Pended policy is reproccesed

Description:

When a policy with unsent post-approval enrollment event notifications is moved to Edit state, the existing notifications can remain active. If the policy is processed again, this can result in duplicate notifications.

39428555

POL-18754

Extract security logs do not include extract payload information.

Description:

When an extract runs, its security logs do not include the extract payload information. This limits the details available for reviewing extract activity.

39610295

4-0002666364

POL-18833

Incomplete premium calculation for invoice catch-up periods.

Description:

Premium is not calculated for the full duration of an invoice catch-up period when the period spans multiple months.

39663886

4-0003122664

POL-18856

Dynamic field updates can generate change events when the value does not change.

Description:

When a dynamic field is cleared and restored to its original value within the same transaction, a change event can still be generated. This can trigger downstream processing even though the field’s final value remains unchanged.

39677550

4-0002914417

POL-18867

For some OAuth cofigurations, clientSecretRegistered gets set to false

Description:

When any OAuth configuration is deleted, the associated credential also gets deleted even if it was being used by other OAuth configuration which leads to clientSecretRegistered being set to false for these OAuth configurations.

39697090

POL-18883

Data transfer fails with ORA-00028 after ADB DBMS_CLOUD patching

Description:

Data transfer jobs may fail intermittently with ORA-00028: your session has been killed after ADB DBMS_CLOUD patching activity. This can happen when the patching activity invalidates the DBMS_CLOUD package while active sessions are using it. Because SaaS environments have SESSION_EXIT_ON_PACKAGE_STATE_ERROR enabled, affected database sessions are terminated when package state becomes invalid. As a result, any process that invokes DBMS_CLOUD, either directly or through an OHI package, can fail with a transient session termination error

39710097

POL-18891

examplecalculations API repeatedly loads adjustment-rule data for same policy/time period

Description:

Calculations for policies with many adjustment rules can take longer than expected, which can delay access to example calculation results.

39722692

4-0002985699

POL-18902

Improved handling of dynamic logic errors following database connection-pool exhaustion.

Description:

When database connections were temporarily unavailable, a subsequent dynamic logic execution could encounter an invalid internal reference and fail with an unexpected error during FlexCode setup retrieval. This enhancement improves error handling and recovery following database connection-pool failures, helping prevent subsequent dynamic logic processing from failing because of incomplete or stale runtime data.

39722964

4-0003187893

POL-18904

Retrieve-only dynamic field usage access restriction allows updates to existing dynamic record rows

Description:

A retrieve-only dynamic field usage access restriction does not prevent updates to existing dynamic record rows. As a result, users with read-only access can still modify child dynamic-record values on an existing parent record.

39727901

4-0003249548

POL-18905

Republishing tasks throws null pointer exception for failed messages with missing activity references

Description:

Republishing task throws a NullPointerException when it processes retryable message publish results whose associated activity record no longer exists. The task attempts to access the parent activity/connector configuration, but the activity reference is invalid, causing republishing to fail repeatedly at the configured retry interval. This can create recurring errors.

39747721

4-0003279914

POL-18925

Amount Parameter Value Floorplan Uses paramterAlias Title Property

Description:

The delivered Amount Parameter Value floorplan uses the title property paramterAlias instead of parameterAlias. Although the property name appears to be a typographical error, changing it to parameterAlias is causing existing parameter amount values to display incorrectly in Edit mode.

39791389

POL-18977

Number field definitions can be updated in a way that reduces their integer capacity

Description:

Changing an in-use number field definition can reduce the number of digits allowed before the decimal point, causing existing values that were previously valid to become incompatible with the updated definition.

39926888

POL-19106

Audit API should inherit the access restriction of its parent resource

Description:

Currently, Audit API resources have their own newly created access restriction instead of inheriting the access restriction of the corresponding resource.

As a result, a user who already has access to a resource (for example, Policies) may still be unable to access that resource’s Audit API unless an additional Audit API-specific access restriction and grant are provided.

The Audit API must work by default for users who are authorized to access the underlying resource. It should therefore use the same access restriction as its parent resource, rather than requiring a separate restriction.

33166667

3-26374448851

POL-8747

Generated dynamic logic signature groovy files contain compilation errors

Description:

Groovy files for dynamic logic signatures can be generated from either the Objects Integration Point or via the Generate Objects button on the View Objects page. Some of these files have compilation errors.

33186031

3-26374448851

POL-8781

Generated dynamic logic signature groovy files do not compile in a Gradle project

Description:

Groovy files for dynamic logic signatures can be generated from either the Objects Integration Point or via the Generate Objects button on the View Objects page. Some of these files have compilation errors specific to Gradle, such as variable names containing a dollar sign or dependencies being added with an @Grab annotation.

Deprecated Items

These features will be removed in a future release. Customers are advised to review the documentation and take timely action.

JIRA Key Announced Release Announced Summary

NXT-25000

3.22.2.0.0

The use of parameters that influence the resource representation in the 'Accept' header of an HTTP request is deprecated.

POL-13546

4.23.2.0.0

The Attached Data Integration Point is deprecated

CPN-3249

4.25.1.0.0

HTTP API Caching override feature is deprecated in this release and will be removed in a future release.

POL-14428

4.25.1.0.0

The webTarget and initCallOut functions, which are used to make HTTP calls from dynamic logic, have been deprecated.