Release Changelog: 8.3.9*-b20260810
Web UI
Web UI
IGN-16512: Alarm acknowledgement page shows a 401 error toast after acknowledging the last alarm
Fixed: Prevent alarm acknowledgement page from displaying a spurious 401 error after a user acknowledges the last pending alarm.
IGN-16751: Move Toast location to bottom right
Moved Gateway Toast notifications from the upper-right to the bottom-right of the viewport so they no longer obscure page action buttons.
IGN-16697: DNP3 Legacy Driver: Unable to save changes after importing aliased points csv
Fixed an issue where the save button remained disabled after importing an aliased points CSV in the DNP3 driver, even when the imported paths were valid. The save button will now correctly enable when valid changes are made, including through CSV import.
IGN-16942: Default resource creation into core unless explicitly directed otherwise
Fixed an issue for Gateways which were deployed into any deployment mode where the default resource creation collection would be that deployment mode instead of the core collection. Resources created through the UI now correctly default to being created in the core collection unless explicitly specified otherwise.
IGN-16370: Gateway polling halts permanently on HTTP errors with no recovery path
Fixed an issue where polling in the Gateway web UI would stop permanently after an HTTP error and not resume even after the error condition cleared.
Perspective
Perspective
IGN-5363: Perspective Array Parameters Fail to Evaluate on Embedded View
Fixed array view parameter write race condition on view startup
IGN-16542: Adding a component from a not-yet-loaded module breaks rendering in running sessions
Fixed an issue where adding a component from a not-yet-loaded module would break rendering in running sessions
IGN-16386: Pie Chart tooltips stop rendering when selection.enabled is toggled to True
Fixed an issue in the Perspective Pie Chart where toggling selection.enabled to true caused tooltips to stop rendering.
IGN-16665: Session user takes precedence over Authentication Challenge user when writing to a tag
Fixed an issue where the Session user's permissions were used during an Authentication Challenge session event.
Comms
Drivers
IGN-15060: Add metrics to the Siemens Enhanced Driver
Added sampling diagnostics to the Siemens Enhanced driver.
IGN-15156: Siemens Enhanced: Create a proper subscription model
Improved the performance of the Siemens Enhanced driver subscription model.
IGN-17051: Add flag to disable parallel BACnet manifest reads
Added a new -Dignition.bacnet.parallelObjectManifestReads=<true|false> system property as an escape hatch for BACnet devices that can't tolerate the concurrent ObjectManifest reads performed during interrogation.
IGN-16369: IEC 61850: request timeout above 2000ms is not used for the initiate connection request
Fixed IEC 61850 connection initiation ignoring Request Timeout values above 2000 ms. The configured timeout now applies to the initial MMS connection request.
IGN-16675: IEC 61850: Indexed Report Control Blocks not Accessed by Name
Fixed indexed IEC 61850 Report Control Blocks being enabled and routed through the wrong instance.
IGN-16734: IEC 61850: update TMW library to version 5.10.x
Updated the IEC 61850 TMW libraries to version 5.10.2. The minimum supported glibc version on Linux is now 2.27.
OPC
IGN-16767: IEC 61850: add -Dignition.iec61850.useBundledSsl property to choose bundled vs. system OpenSSL
Added the ignition.iec61850.useBundledSsl system property, allowing the driver to use a compatible system OpenSSL installation instead of the bundled libraries. Bundled OpenSSL remains the default.
IGN-16744: IEC 61850: settable attributes can't be addressed by Functional Constraint (SP/SE/SG)
Fixed IEC 61850 attributes under multiple Functional Constraints being collapsed into one OPC node. Colliding attributes now use [FC]-suffixed addresses, and reads and writes target the correct FC. Existing addresses without the [FC] suffix may need to be updated.
**IGN-16894: OPC UA Server Drops Subscription After ~1 Minute When Client Requests MaxKeepAliveCount of 1 **
Fixed an issue where the OPC UA server stopped sending keep-alive messages on idle subscriptions, causing clients that requested a max keep-alive count of 1 to lose their subscription after about a minute and reconnect repeatedly.
IGN-16986: Update Milo to 1.1.6
Updated the underlying Eclipse Milo OPC UA library to version 1.1.6.
IGN-16987: OPC UA connections deadlock and never recover after session loss during DataTypeTree read
Fixed an issue where an outgoing OPC UA connection could become permanently stuck in a faulted state if the connection was lost while the client was browsing/reading the server's data types.
IGN-16357: IEC 61850: reserve RCB before enabling reports (SEL Ed. 2.1)
Fixed reports failing to enable on IEC 61850 devices that require explicit RCB reservation.
Tags
Remote Tags
IGN-16348: Event stream tag source with remote tag provider does not work with wildcard operators
Fixed an issue where wildcard operators in Event Stream tag paths did not resolve when configured with a Remote Tag Provider.
IGN-16871: Event Stream tag source does not respect the subscription "initial" value the same way project Gateway Tag Change scripts do
Fixed an issue where Event Stream tag sources did not correctly filter out initial values when the Skip Initial Values property was enabled.
Tags & UDTs
IGN-15709: Relative dynamic tag path cannot be used in a Derived Tag expression
Fixed an issue with Derived Tag expressions where the tag() expression function would not resolve relative tag paths, such as [~] or [.].
IGN-15905: Using Java serialization for type com.inductiveautomation.ignition.common.browsing.BasicResult
Fixed an issue where browsing historical tags via the Power Table component in the Designer could trigger frequent Java serialization warning logs in the console.
IGN-15817: Changing a memory tag from a numeric to String datatype with Engineering limits set will cause ClassCastException
Fixed an issue where changing a Memory tag's data type from numeric to string while the Engineering Limit Mode was enabled could result in a ClassCastException.
IGN-15606: system.tag.configure Fails if dataType Not Set for Array Tag
Fixed an issue where the system.tag.configure() function failed to assign a list of values to an Array Tag over the Remote Tag Provider when the data type was not explicitly defined in the payload.
IGN-15980: Tag Migration Logging is not Sufficient
Improved tag configuration migration logging on upgrade to report each tag provider's progress including migrated tag and folder counts.
IGN-17010: Tag import fails with serialization error
Fixed an issue where importing tags through the interactive importer could fail with a serialization error, preventing the tags from being imported.
Alarming
Twilio
IGN-15179: Twilio voice calls get stuck in notification blocks
Fixed an issue where an alarm pipeline could get stuck in a Twilio Voice Notification Block when a call ended without the recipient responding.
Alarm Notification
IGN-16671: Alarm Notification Pipelines becoming stuck in throttled state
Fixed an issue where an Alarm Notification Pipeline Block using consolidation could become permanently stuck and stop sending notifications.
IGN-16444: Email Settings Lost on Upgrade when in SMTPSETTINGS Table
Fixed an issue where SMTP email server settings would be lost when upgrading a Gateway directly to 8.3 from a version prior to 8.1.24.
Alarm Status
IGN-15849: Make Provider level aggregated Alarm Metrics visible in the Tag Browser tree
Added an Alarm Metrics folder to the Designer Tag Browser that displays provider-level alarm metrics and can be shown or hidden using the Display Alarm Metrics checkbox.
**IGN-15639: Acknowledgement timestamp of alarm is from Vision Client OS when acknowledging from Vision Alarm Status Table **
Fixed an issue where acknowledging an alarm from the Vision Alarm Status Table recorded the event using the Vision Client's operating system timestamp rather than the Gateway's timestamp.
Voice Notification
IGN-16218: Ambiguous Threads spin up from 8.3 VOIP Voice Notifications
Fixed an issue where each VOIP voice notification would leave behind threads that accumulated until the Gateway was restarted.
Historian
Core Historian
IGN-16199: system.historian.meta functions should error when used on SQL Historian*
Fixed an issue where the system.historian.storeMetadata() and system.historian.queryMetadata() functions would fail silently or return false success statuses on historian providers that lack metadata capability.
Internal Historian
IGN-16207: system.historian.queryRawPoints is returning 1 extra record when returnSize set for Internal historians
Fixed an issue where the system.historian.queryRawPoints() function returned one extra record beyond the specified returnSize parameter for the Internal Historian.
IGN-16638: system.historian.queryMetadata returns duplicate records against Internal Historian
Fixed an issue where the system.historian.queryMetadata scripting function returned duplicate records when querying against the Internal Historian.
**IGN-15756: Add New Totaled / Oldest Timestamp/Time Remaining Metrics for Edge Historian **
Added new routes to expose Edge Historian statistics
Historian
IGN-11509: Power Historian: Changing Partition Interval Doesn't Work If Table Already Exists
Fixed an issue that was preventing re-partitioning of Core Historians
IGN-16262: Pre-Processed Partitions aren't working properly in 8.3
Fixed an issue were some aggregates (e.x. Count) were executing against Pre-processed partition tables that should be executed against the raw tables
IGN-6726: Tag History: Querying PPP Tables w/ no Average Processed Value Results in NPE
Prevented a malformed Pre-processed table entry from triggering an error, that entry will be marked as bad quality and logged as of this change
IGN-15587: system.historian.queryAggregatedPoints() can return excessive columns for CALCULATION return format
Fixed an issue where the system.historian.queryAggregatedPoints() function returned an excessive number of columns when using the CALCULATION return format with multiple tags or aggregates.
IGN-16492: ArrayEvaluator.validateEvaluators() throws IndexOutOfBoundsException on any array shrink of 2 or more elements
Fixed an issue where an IndexOutOfBoundsException or historian data loss could occur when an array tag's element count decreased by two or more elements in a single update.
IGN-16746: Hide unsupported system.historian scripting parameters the legacy query path can't honor (8.3)
Removed several unsupported parameters from the autocomplete, IDE hints, and documentation for system.historian scripting functions, including {fillModes}, {excludeObservations}, and {includeBounds} for system.historian.queryAggregatedPoints, {excludeObservations} and {includeBounds} for system.historian.queryRawPoints, and {snapshotTime} for system.historian.browse. These parameters will still be accepted by the script parser to prevent existing scripts from breaking, but they will continue to be silently ignored at runtime.
SQL Historian
IGN-16645: Tag History: Historical Tag Group + Stale Data Detection creates sqlth_sce entries with improper start and end times, resulting in excessive entries in 8.3
Fixed an issue where a historical tag group with Stale Data Detection enabled caused the SQL Historian to insert a new sqlth_sce row on every store (each with an identical start_time/`end_time`) instead of advancing the existing row's end_time. Over time this bloated the sqlth_sce table and slowed history queries. The historian now keeps the current SCE row's end_time up to date between sparse data stores and only inserts a new row after a genuine gap in execution.
Data & Logic
SQL Bridge
IGN-13394: Transaction Group exception when attempting to write boolean to Postgres
Fixed an issue where storing a boolean value through a Transaction Group to a PostgreSQL database failed when the group automatically created its table. Newly created PostgreSQL database connections now create the boolean column using the native boolean type.
SFC
IGN-16720: SFC: Enclosed chart fails to load on startup — NPE deserializing embedded parent scope ("parent" = null)
Fixed an issue where an SFC with Persist State enabled that is running inside an Enclosing Step failed to load after a Gateway restart.
IGN-16419: SFC parks a dedicated native thread per blocking/enclosing step, risking thread exhaustion
Fixed an issue where a Gateway running SFCs with many blocking or enclosing steps executing concurrently resulted in an Out Of Memory error.
Containers
Docker
IGN-15681: Docker image "-r" should support restoring local-only config files
Added a --restore-local option to the Docker entrypoint script for restoring files that are intended for use in a specific gateway, such as hostname-specific certificates.
Cloud Edition
IGN-17055: Bump bundled Cirrus Link modules to 5.0.4
Updated Ignition Cloud Edition bundled Cirrus Link MQTT modules to version 5.0.4
Swing
Designer
IGN-14944: Add arbitrary list of base tag names 'pattern' to new multi instance wizard
Added functionality to the Multi-Instance Wizard to allow you to use a 'List of Names' pattern type and enter in manual UDT instance names.
Vision
IGN-16177: SerializationException when saving Vision Project
Fixed an issue where a ScalableFont type caused a serialization error on project save
Platform Core
Webserver
IGN-16250: After change in IGN-10444, most JDBC .jar files are getting rejected because they are >20MB in size
Raised the gateway's multipart upload limit from ~20 MB to 128 MB, allowing large files such as JDBC driver JARs to be uploaded.
Config Persistence
IGN-16185: Update Ignition version requirement for Sip Module
Fix issue where Sip Module did not correctly state its minimum required Ignition version
Other
IGN-15474: Tanuki Wrapper can crash if interface card(s) do not contain assigned address
Updated Java Service Wrapper to version 3.6.5 which resolves an issue where a network interface card without an address may cause a startup failure.
Backup & Restore
IGN-16538: Configuration manager erroneously adds hidden/ignored files to gwbk at root of config directory
Fixed an issue where Gateway backups (.gwbk) included hidden, temporary, or existing backup files (e.g., .DS_Store, .git, .bak) from the root of the configuration directory.
Gateway Network
EAM & Redundancy
IGN-16662: Failing back to master after a restart can cause Tag Collisions allowing tags to get out of sync
Addressed an issue where failing back to redundant master after a gateway restart can cause tags to get out of sync between gateways
IGN-15440: API route to start multiple remote upgrades simultaneously
Added a batch API endpoint (/api/v1/upgrade-agents) and updated the EAM web interface to enable upgrading multiple remote agents simultaneously in a single network request.
**IGN-16991: Redundant master stuck at Project state=Unknown after initial pairing **
Fixed an issue where restore local of a gateway backup from a master gateway without peer files would cause peer nodes to get stuck out of sync.
IGN-16132: Agent Status doesn't signify if agent trial is expired
Resolved an issue where an EAM Agent's status on the Controller remained displayed as "Connected"instead of updating to "Trial Expired: Agent" when the agent's platform trial expired.
IGN-15270: EAM Send Tags task fails when targeting controller if tag editing Authenticated permissions are configured on the tag provider
Fixed an issue where EAM "Send Tags" tasks targeting the local Controller failed on restricted tag providers and ignored the selected Tag Collision Policy.
IGN-15297: New API endpoint to approve multiple agents
Added new API endpoints to bulk approve and delete multiple EAM agents
Gateway Network
IGN-16154: Remote tag providers that use proxying can stay faulted when source gateway is disconnected
Fixed an issue where proxy gateway disconnects could cause unrelated network connections to fault and become unrecoverable
Security
Security
IGN-16499: Improve Invalid Role mappings message during 8.1 to 8.3 migration
Added improved invalid role mapping error messaging for migration from 8.1 to 8.3.
Scripting
Scripting
IGN-16691: Tag change script editor incorrectly calls stripIndent leading to incorrect warnings about compilation errors
Fixed issue where the tag change script editor would incorrectly warn the user that the script could not compile