Skip to main content

InterSystems IRIS for Health™ Change Notes (2026.1.4)

This document is meant to help you assess the impact of upgrading to the InterSystems IRIS for Health 2026.1.4 maintenance release. It also lists the changes since 2026.1.0, grouped by maintenance release. To see a list of incompatibilities between an earlier version of InterSystems IRIS for Health and the 2026.1.4 release, use the Upgrade Impact Checklist.

InterSystems News, Alerts, and Advisories

From time to time, InterSystems publishes items of immediate importance to users of our software. These include alerts, mission-critical issues, important updates, fixes, and release announcements. You can obtain the most current list at https://www.intersystems.com/support-learning/support/product-news-alerts/Opens in a new tab. InterSystems recommends that you check this list periodically to obtain the latest information on these issues.

Changes Introduced in 2026.1.4

Analytics - IRIS BI

DP-448589: Do not reset ^DeepSee.BuildErrors for Selective Build

Category: Analytics - IRIS BI
Platforms: All
Version: 2026.1.4

Previously, there was an issue that would cause a selective build on a cube for which build errors already existed to remove those errors from the ^DeepSee.BuildErrors global without reprocessing the facts in question. As a result, data could be missing from the cube until it is fully rebuilt. This issue has been resolved.

DP-450211: Skip KPI invocation when slicer crossjoin resolves to empty set

Category: Analytics - IRIS BI
Platforms: All
Version: 2026.1.4

Previously, when a KPI using %CONTEXT was filtered with a NONEMPTYCROSSJOIN that resolved to an empty set, the KPI received no filter context and returned the unfiltered total instead. Now, KIP invocation is skipped and an empty set is returned.

Analytics - MDX Engine

DP-448059: Return null axis in %GetBranchesForSlicer

Category: Analytics - MDX Engine
Platforms: All
Version: 2026.1.4

This change fixes the pBranch output of %DeepSee.Query.Engine:GetBranchesForSlicer() for plugins to properly reflect the slicer axis that has produced the null set. The previous output incorrectly signaled that there was no slicer in effect.

DP-448422: Fix check of abandoned KPI plugin cache to prevent execution stall

Category: Analytics - MDX Engine
Platforms: All
Version: 2026.1.4

Previously, there was an issue that could cause a plugin cache entry to be left in an in-process state without any process doing focused work. This change helps each plugin request identify this state when checking the cache to reset it and restart execution, if appropriate.

CCR Client Tools

DP-450508: Add methods to enable and disable source control

Category: CCR Client Tools
Platforms: All
Version: 2026.1.4

New methods, %Studio.SourceControl.ISC.EnableSourceControl() and %Studio.SourceControl.ISC.DisableSourceControl(), have been added to enable and disable source control, allowing clients to take advantage of tooling that is part of configuring source control before their environment is in a state to control changes.

Cloud

DP-450848: Add error messaging for missing archive client

Category: Cloud
Platforms: All
Version: 2026.1.4

If an archiving operation encounters an error, it now checks whether the client is missing and, if so, includes that information in the returned error status. Additionally, it prevents zombie processes from accumulating when journal archiving is configured without installing the necessary CLI.

CPF File

DP-450218: Resolve incorrectly reported error during startup with a mirrored instance

Category: CPF File
Platforms: All
Version: 2026.1.4

This change resolves an issue that caused the system to report a false error when starting an instance with a merge.cpf and a mirrored instance. The error message reported was: [Utility.Event] ERROR #507: Action 'CreateDatabase' failed, Method Config.CPF:CreateDatabase(), Error=ERROR #2063: Database '/iris-durable-volume/dur/mgr/CUSTOMDATA/' is already being mirrored.

DP-450533: Support trailing slash in CreateDatabase CPF action

Category: CPF File
Platforms: All
Version: 2026.1.4

Previously, the CreateDatabase CPF action did not support a trailing slash in the name of the database directory. In this release, they system now supports a trailing slash.

CSP / ZEN

DP-449228: Correctly Open Zen Rule Editor in Google Chrome for on MacOS

Category: CSP / ZEN
Platforms: macOS
Version: 2026.1.4

Previously, there was an issue that prevented the Zen Rule Editor from opening in Google Chrome on MacOS. The issue has been resolved.

DataMove

DP-448902: Update DataMove statistics more often if processing long strings

Category: DataMove
Platforms: All
Version: 2026.1.4

Previously, when attempting a DataMove on a global that only contained long strings, there was an issue that could prevent the system from updating the DataMove statistics or stopping the DataMove altogether. This change resolves these issues.

DP-449040: When DataMove stops with a recoverable error, set higher error level in Messages.log

Category: DataMove
Platforms: All
Version: 2026.1.4

When a DataMove encounters a STORE error while reading journal files, the error stops the DataMove entirely. In most cases, you can restart the DataMove to resume at the place it stopped. However, if you purge the journal file used by the DataMove before restarting it, you cannot restart the DataMove.

This change increases the severity of the error message provided when a DataMove encounters a STORE error to improve system alerting.

The previous error message was: 04/15/26-12:39:17:209 (21644) 0 [DataMove.Event] DataMove STC-ROLLBACK STOP signaled - Signaled by recoverable error

The new error message is: 04/15/26-12:39:17:209 (21644) 2 [DataMove.Event] DataMove STC-ROLLBACK STOP signaled - Signaled by recoverable error

DP-450288: DataMove now completes if a new global is added to range

Category: DataMove
Platforms: All
Version: 2026.1.4

Previously, when a new global was added to a range for DataMove, the global was copied to the destination but the state of the range was never set to ActivateReady. This change sets the state of the range correctly.

DP-450553: Fix a possible memory leak in data move

Category: DataMove
Platforms: All
Version: 2026.1.4

This change addresses a memory leak that arose in the DataMove utility when allocating memory for journal buffer filtering.

DP-450717: Reduce read I/O in DataMove

Category: DataMove
Platforms: All
Version: 2026.1.4

This change reduces the amount of read I/O required by the journaling operations in DataMove. As a result, you may notice DataMove stop and restart under certain circumstances.

DP-451396: Allow journaling property to be modified on DataMove database after Activation

Category: DataMove
Platforms: All
Version: 2026.1.4

With this change, it is possible to change a database's journaling state once Activation of the new mapping is completed.

DP-451403: Improve DataMove background jobs

Category: DataMove
Platforms: All
Version: 2026.1.4

This change improves the start/stop handling of DataMove background jobs.

DP-452038: Delete DataMove metadata if DataMove deleted

Category: DataMove
Platforms: All
Version: 2026.1.4

This change fixes an issue where stray DataMove globals were left behind after a DataMove was deleted.

DP-452100: Allow DataMove upgrade from 2025.1.x to 2026.1.x

Category: DataMove
Platforms: All
Version: 2026.1.4

This change fixes an issue that prevented upgrading to 2026.1.x if a DataMove is in progress in 2025.1.x.

DP-452232: Put Delimiter between logs in DataMove.Log file

Category: DataMove
Platforms: All
Version: 2026.1.4

This change adds start and end delimiters to DataMove logging.

FHIR Server

IF-9283: $expand timestamp passes FHIR validation

Category: FHIR Server
Platforms: All
Version: 2026.1.4

Previously, issues with date-time data types caused errors when using $expand. These issues have been corrected.

IF-9364: ##class(HS.HealthConnect.FHIRRepo.Upgrade.V4)."Upgrade-HSSYS-2"() is now async

Category: FHIR Server
Platforms: All
Version: 2026.1.4

Previously, when a system had a massive number of orphaned search table rows, the ##class(HS.HealthConnect.FHIRRepo.Upgrade.V4)."Upgrade-HSSYS-2"() upgrade step took too long to complete, which could result in blocking the upgrade and extending downtime. Furthermore, because the delete was a single atomic SQL statement (and therefore in a transaction), being interrupted would trigger a rollback. This upgrade step is now async, which has corrected these issues.

Global Module

DP-448527: Resolve issue with management of database buffers

Category: Global Module
Platforms: All
Version: 2026.1.4

This change resolves an issue in the management of database buffers that could lead the system to write to an incorrect image of a block during a write cycle under extremely rare circumstances. The issue had never been observed to occur.

DP-448898: Fix file compaction for $ZU-created empty databases

Category: Global Module
Platforms: All
Version: 2026.1.4

Previously, when file compaction was invoked with a requested free space equal to or greater than that of an empty database, the process could encounter a error due to underflow or, if ExtendedDatabaseSize is enabled, an infinite loop. This update ensures that file compaction stops safely before it reaches the conditions that trigger the error and infinite loop.

This issue is unlikely to occur in typical usage, as it only affects databases created through low-level $ZU calls rather than standard database creation APIs.

Installation

DP-450479: Update expat to 2.7.5

Category: Installation
Platforms: All
Version: 2026.1.4

This change updates the expat XML parsing library included in installation to version 2.7.5.

DP-450517: Do not run CheckUpgrade function if server not installed

Category: Installation
Platforms: Windows
Version: 2026.1.4

On Windows installations, the CheckUpgrade custom action is not run if the server feature was not installed on the original instance.

DP-451051: Do not delete IRISSECURITY during clean install of InterSystems IRIS

Category: Installation
Platforms: All
Version: 2026.1.4

Previously, performing a clean install of InterSystems IRIS deleted the IRISTEMP, IRISLOCALDATA, and IRISSECURITY if they exist in the target directory. Now, only IRISTEMP and IRISLOCALDATA will be deleted and IRISSECURITY can be deleted manually.

Journaling

DP-447568: Add details to SYS.ArchiveManager error messages

Category: Journaling
Platforms: All
Version: 2026.1.4

This change adds the invoked command and the OS user to the error message of SYS.ArchiveManager's PutFile(), GetFile(), and Delete() CLI commands.

DP-449161: allow Manage^JRNROLL to handle rollbacks by NodeNameInPid jobs

Category: Journaling
Platforms: All
Version: 2026.1.4

Previously, if the CPF setting NodeNameInPid=1, Manage^JRNROLL cannot detect when the Mirror Manager process is performing a transaction rollback and so cannot skip this rollback during mirror start up. This issue has been resolved.

Monitoring - Logs

DP-450883: Improve logic for censoring passwords in SOAP log

Category: Monitoring - Logs
Platforms: All
Version: 2026.1.4

This change improves the logic used to censor passwords in the SOAP log, as previous behavior could result in truncated logs if the string "Password" was included in the SOAP headers in a specific context.

Object Compiler

DP-450786: Fix issue saving classes in Studio

Category: Object Compiler
Platforms: All
Version: 2026.1.4

Previously, there was an issue that prevented users from saving new classes in Studio (deprecated since 2024.2) in a namespace that has different global and routine databases.

ODBC

DP-449186: Properly initialize SQLExtendedFetch buffer pointer

Category: ODBC
Platforms: All
Version: 2026.1.4

Previously, there was an issue where the buffer pointer was not initialized properly when a call was made to change the number of rows to fetch.

DP-449637: Correct rounding edge cases on string to decimal conversion

Category: ODBC
Platforms: All
Version: 2026.1.4

Previously, there was a rounding issue that affected string conversions to the decimal numeric type while storing such values in a custom storage format. The issue has been resolved.

Security

DP-447102: OAuth2 error pages to support user-based licenses

Category: Security
Platforms: All
Version: 2026.1.4

Previously, the OAuth2 web request flow did not allocate additional licenses, causing issues for error pages. This change adds parameters OTHERSTATICERRORPAGE=1 and PAGENOTFOUNDERRORPAGE = 1 to OAuth2.ErrorPage so that the system uses an available license to show the OAuth2 license page.

DP-449135: Better error message for misconfigured OS authentication

Category: Security
Platforms: All
Version: 2026.1.4

Previously, when OS authentication failed, the error message returned was "User @ is not defined." Now, the error message returned from such a failure is "Multiple domains are not enabled. O/S authentication for non-default domain cannot be used unless multiple domains are enabled."

DP-449534: Prevent Windows username parsing from spamming SYSLOG in non-domain environments

Category: Security
Platforms: All
Version: 2026.1.4

This change prevents the system from spamming to SYSLOG when trying to obtain the OS name of the current process. Previously, in such cases, the system would continually write unnecessary warnings to the SYSLOG in FAST environments, which are domainless, clashing with the expected formatting but causing no system issues. The issue is now resolved.

DP-450153: Sort audit queries in ascending order

Category: Security
Platforms: All
Version: 2026.1.4

Previously, an issue with internal sorting did not guarantee that audit records would be printed in the same order they were written to the audit file when executing the List() query of the %SYS.Audit class. This issue has been resolved.

DP-450653: Move Api.Admin to %Api.Admin

Category: Security
Platforms: All
Version: 2026.1.4

This change moves the REST API dispatch classes for the Api.Admin package to the %Api.Admin package. Since percent classes, such as %Api.Admin, are mapped to all namespaces via IRISLIB, so they do not require explicit read access. In practice, this change eliminates the need for the %DB_IRISSYS:R resource requirement for REST API consumers of %Wallet management endpoints.

DP-450859: Audit job command even if not auditing logins

Category: Security
Platforms: All
Version: 2026.1.4

Previously, when auditing of the JOB command was on but auditing of logins was off, the system would not audit the JOB command. This issue has been resolved, and now the auditing is only skipped if auditing for both logins and the JOB command are off.

DP-450945: Update openssl to 3.5.6

Category: Security
Platforms: All
Version: 2026.1.4

This change updates the OpenSSL version included in the product to 3.5.6.

SMP - System Management Portal

DP-450773: Fix regression in Management Portal process list columns order

Category: SMP - System Management Portal
Platforms: All
Version: 2026.1.4

This change modifies the process list column order to match its historial look. The column ordering is now as follows:

Details | Job# | Process ID | User | Device | Namespace | Routine | Commands | Globals | State | Total CPU Time | Elapsed Time | Parent PID | Client Name | Client EXE | Client IP | O/S Username

SQL

DP-446836: Fix ORDER BY processing in UNION queries for Sybase TSQL

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, there was an issue that caused the system to incorrectly parse UNION queries that included ORDER BY clauses in Sybase TSQL, resulting in wrong results. This issue has been resolved.

DP-448647: Fix deadlock error when creating HNSW index within a transaction

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, a deadlock error could occur when creating an HNSW index within a transaction. The issue has been resolved.

DP-448681: Fix FRAMESTACK and MAXSTRING errors in queries with many WHERE conditions

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, a FRAMESTACK or MAXSTRING error could arise when executing queries with thousands of WHERE conditions. This issue has been resolved.

DP-449056: Do not allow literal for target database in ALTER TABLE t MOVE PARTITION

Category: SQL
Platforms: All
Version: 2026.1.4

This change fixes a problem in which the target database name in the ALTER TABLE t MOVE PARTITION command was mistakenly allowed to be either an identifier (no quotes) or a literal (single quotes). With this change, the target database name is only allowed to be an identifier. If it is specified with single quotes, an error "IDENTIFIER expected, LITERAL ('TargetDatabaseName') found" is returned.

DP-449170: Correct parsing of stored procedures

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, there was an issue that caused statements that created stored procedures to fail by incorrectly parsing the defined procedure. The issue has been resolved.

DP-449345: Adjust query plan cost calculation to select most efficient plans

Category: SQL
Platforms: All
Version: 2026.1.4

This change resolves an issue that caused queries, such as those with TOP, ORDER BY ID, and ASC/DESC clauses, to default to using a query plan that employed table scans, rather than more targeted map scans.

DP-449412: Fix ALTER TABLE t CONVERT PARTITION BY for partition key fields with names not all lower case

Category: SQL
Platforms: All
Version: 2026.1.4

This change resolves an issue that caused ALTER TABLE t CONVERT PARTITION BY partition-key-field would fail if the partition key field's actual name was not all lower case (regardless of what case was used to specify the field's name in the ALTER TABLE command).

DP-450164: Enable ALTER TABLE ... MOVE PARTITION to work with non-default collation

Category: SQL
Platforms: All
Version: 2026.1.4

This change resolves an issue in which ALTER TABLE ... MOVE PARTITION failed if a table's globals had non-default collation (for example, German3 colllation).

DP-450328: Fix query reconstruction for UDAF with FINALIZE

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, SQL queries that employed user defined aggregate functions (UDAFs) with FINALIZE functions produced incorrect results when used with UNION %PARALLEL or other scenarios requiring SQL reconstruction. The issue has been resolved.

DP-450475: Fix query compilation error for vector similarity search and metadata filtering

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, there was an issue with query compilation when a query combined vector similarity search functions, such as VECTOR_DOT_PRODUCT, with FOR SOME %ELEMENT metadata filtering. The issue has been resolved.

DP-451032: Handle virtual maps in TOPOPT query costing

Category: SQL
Platforms: All
Version: 2026.1.4

This change resolves an issue that resulted in a compile-time UNDEFINED error, caused by TOP clause optimization logic.

DP-451299: Fix globals sharing among nested parallel aggregation

Category: SQL
Platforms: All
Version: 2026.1.4

Previously, a %PARALLEL outer query that LEFT JOINs an inner GROUP BY subquery that is itself parallelized would share globals across workers, resulting in incorrect aggregates and fake rows. This behavior has been fixed.

DP-451452: Update RTPC dispatch code to honor truth values collation

Category: SQL
Platforms: All
Version: 2026.1.4

Fixed a wrong result bug related to RTPC dispatch code for ISNULL truth values.

System

DP-448454: %Library.GlobalEdit.GetGlobalSizeBySubscript() throws BLOCKNUMBER error

Category: System
Platforms: All
Version: 2026.1.4

This change fixes an edge case in ##class(%GlobalEdit).GetGlobalSizeBySubscript(,,,,1) that occurred when the selected data range was small.

DP-448526: Fix unprotected pointer reference in event message allocation

Category: System
Platforms: All
Version: 2026.1.4

This change corrects a issue where $SYSTEM.Event.Signal(pid, message) could crash (with a segmentation fault or access violation) if it was passed a message within a certain size range and the shared memory heap did not have sufficient memory for the message. Now, this case correctly fails with a <STORE> error.

DP-449573: Fix FUNCTION error in SYS.Database:GetFreeSpace()

Category: System
Platforms: All
Version: 2026.1.4

Previously, SYS.Database:GetFreeSpace() could raise a FUNCTION error when used in 64K-block databases that contain multiple petabytes of data. The issue has been resolved.

DP-449782: Fixed msyslog() internal logging issue preventing superserver from starting

Category: System
Platforms: UNIX®
Version: 2026.1.4

Previously, msyslog() error logging overwrote the UNIX domain socket path, which prevented socket cleanup and causes delegation to fail. This change fixes the issue.

DP-450151: Fixed issue with $vector operations on big strings

Category: System
Platforms: All
Version: 2026.1.4

This change resolves an issue with the $vector() operation that could cause it to read and return the incorrect values, particularly when working with big strings.

DP-450169: Correct error reporting during database compaction and defragmentation

Category: System
Platforms: All
Version: 2026.1.4

This change resolves an issue where an error message raised in the message.log file during database compaction or defragmentation could have been incorrect or, in rare cases, cause the process to crash. The issue has been resolved.

DP-450284: Correct failures in database file compaction and defragmentation

Category: System
Platforms: All
Version: 2026.1.4

Previously, if database file compaction or defragmentation got an unexpected error, such as DATABASE, it would fail with an access violation or segmentation fault in outputting the message. The systen no longer fails in such situations and modifies the error messages to include the block number from which the failure originated.

DP-450325: Fix erroneous FILEFULL error during database file compaction and defragmentation

Category: System
Platforms: All
Version: 2026.1.4

Previously, there was an issue that caused the system to fail with a FILEFULL error and hang under certain circumstances despite there being free space in the database during database file compaction and defragmentation. The issue could only occur on databases with more than 2**32 blocks, requiring Extended Database Size to be enabled, when moving big string blocks. The issue has been resolved.

DP-451056: Support options for creating and editing secrets

Category: System
Platforms: All
Version: 2026.1.4

Previously, the PUT /api/admin/v1/wallet/secret endpoint only allowed a user to pass a specific subset of properties via a JSON object to the Create or Modify methods of the specified %Wallet.Secret subclass, limiting user options and leading to multiple errors. Now, the endpoint passes the entire JSON object to the Create or Modify methods of the %Wallet.Secret subclass.

UI - BPL Editor

DP-449487: Completely validate BPL using schema prior to save

Category: UI - BPL Editor
Platforms: All
Version: 2026.1.4

When attempting to save a BPL, the system performs validation by using the Ens.BPL.Process class's Validate() method. Previously, this method did not fully validate that the BPL adheres to the schema specification in Ens.Schema.BPL, allowing a user to save an invalid schema and causing failures when trying to open this BPL later. This issue has been resolved by perfoming a full validation when the BPL is saved.

VS Code

DP-449352: Fix issue with code used in VS Code debugger

Category: VS Code
Platforms: All
Version: 2026.1.4

Previously, running the VS Code debugger on a .int file would execute lines of .int code after translating them to the corresponding .cls code. Since this conversion is not always available, the debugger could occasionally highlight uselines of .cls code in the UI. Now, if there is no .cls code that corresponds with .int code, the debugger uses the .int code.

DP-450472: Use UTF-8 encoding when loading test classes in unit test runner

Category: VS Code
Platforms: All
Version: 2026.1.4

Previously, there was an issue that caused the unit test running feature to fail to write test classes to disk using UTF-8 encoding. The issue has been resolved.

Web Services - REST

DP-449444: Admin APIs Request Body Validation Fixes

Category: Web Services - REST
Platforms: All
Version: 2026.1.4

This change updates the endpoints PUT /v1/security/audit/event, PUT /v1/els, and POST /v1/security/encryption/key/deactivate to correctly return a 400 HTTP response when the request body does not contain an acceptable set of fields.

For Additional Help

If you need assistance with evaluating how upgrading to this maintenance release will affect your applications, systems, or related plans, please contact the InterSystems Worldwide Support Center:

Current release notes (and complete product documentation) can be found online at https://docs.intersystems.com.

FeedbackOpens in a new tab