AVEVA System Platform 2023 R2 SP2: The Settlement Release

System Platform 2023 R2 SP2 is the ledger release. Where P02, P03, and P04 were incremental hotfix rounds, SP2 settles the entire SP1 patch chain — 173 fixes across every component — and sneaks in two structural changes that matter more than any single bug fix: the .NET runtime is now decoupled from System Platform, and the security model takes its next step toward what SP2026 already ships.

If P04 was the reliability pass, SP2 is the settlement and the groundwork. Let’s dig in.


The Big Picture

What’s new:

  • .NET runtime decoupled from System Platform — install newer .NET runtimes without upgrading System Platform. .NET 10 is the compatible version at this release, and SP2 no longer depends on .NET 8
  • OMI Web Client built-in security headers — individually configurable (IMS 4801218)

What’s changing (security model):

  • WindowViewer virtual service account removed from Administrators — it now lives in ASBSolution, ArchestrAWebHosting, and aaRuntimeUsers groups instead
  • Restricted DLL loading ships — off by default, enabled by default in SP2026, and eventually enforced with no way to disable
  • Executable names and installation paths may have changed — if you run path-based application allowlisting, endpoint security policies, or host firewall rules, you have homework after upgrading

What’s fixed (highlights):

  • 41 Application Server issues — nearly a quarter of them warm-redundancy related, plus a pile of P03/P04 regression cleanups
  • 30 OMI issues (26 desktop + 4 web) — ViewApp crashes, stuck-at-Initializing data, Content Presenter CPU regression
  • 54 InTouch HMI issues — two serious resource-exhaustion bugs, an alarm database integrity fix, and a whole basket of P04 regressions
  • 22 Historian + Historian Client issues — Cache Overflow, VSS backup corruption, and P04 SQL query regressions
  • 26 Communication Drivers Pack issues — SuiteLink stalls, malformed MQTT packets, WEBSVC token churn

One honest note on the numbers: this readme is the cumulative ledger for the SP1 line, so a few entries (4426837’s serialization warnings, MBTCP 4320949) also appeared in the P04 readme. Either they needed another pass or the list is being thorough. Either way, SP2 is what you install to be current.


What’s Included

SP2 is a cumulative service pack installing on System Platform 2023 R2 SP1 (with or without P01–P04). The P04 → SP2 path is explicitly referenced in the known issues, so it’s a supported hop.

Minor gripe: the release notes don’t list per-component build numbers this time — no .104-style version table like P04 had. You’ll be verifying versions in the About dialogs yourself. Not a dealbreaker, just less convenient.


The Headline Change: .NET Runtime Decoupling

This is the most architecturally significant change since the 2023 R2 branch started. The .NET runtime components are no longer part of the System Platform bundle. You can now install new .NET runtime versions without upgrading System Platform — and at this release, .NET 10 runtime is the compatible version.

SP2 does not depend on .NET 8 anymore. But before you gleefully uninstall .NET 8: AVEVA Telemetry Server 2025, Mobile Operator 2025, Work Tasks 2023 R2, and other software may still require it. Validate in a non-production environment that mirrors your production configuration first.

My take: this is overdue. The .NET dependency tail has meant that a runtime security patch could drag a full platform upgrade behind it. Decoupling separates those lifecycles, which is exactly how a mature product should behave. Quiet change, big long-term payoff.


The Security Model Shifts Again

WindowViewer Service Account Privileges

The WindowViewer virtual service account has been removed from the Administrators group — no more administrative privileges. It’s been added to ASBSolution, ArchestrAWebHosting, and aaRuntimeUsers.

Glad it’s gone, honestly. A runtime visualization process holding admin rights was always an uncomfortable privilege to justify. But audit your deployments: anything relying on that account’s admin rights (scripts, integrations, odd file shares) will need a second look before you upgrade.

Restricted DLL Loading

The registry-based mechanism that limits which directories can serve up DLLs is now part of the product:

  • Key: HKEY_LOCAL_MACHINE\SOFTWARE\AVEVA\SystemPlatform\Security
  • Value: EnableRestrictedDllLoading (DWORD) — 0 = disabled (default), 1 = enabled

The rollout plan is spelled out, and it’s the same telegraphed-deprecation playbook AVEVA used for manual credentials in P04: off by default now, on by default in SP2026 (still disableable), then always-on with no escape hatch.

The affected surface is wide: AOT-based custom objects, custom script libraries, IDE extensions, GRAccess-based programs, IDE Toolkit extensions, Network Application Development, and some Remote Desktop scenarios. Symptoms show up as Logger warnings or errors.

Start testing now. If you wait until SP2026 flips the default, you’ll be debugging DLL load failures under upgrade pressure instead of on your own schedule.

OMI Web Security Headers

The OMI Web Client now provides built-in support for security headers, each individually configurable (4801218). For anyone who’s had a security scan flag the web client, this closes real findings.

Firewall & Allowlisting Homework

As part of the architectural changes, some System Platform executable names or installation locations have changed. If you maintain path-based allowlists, endpoint security policies, or host firewall rules, review and update them after upgrading — and re-verify ports, protocols, communication directions, and endpoints. Environments without path-specific rules aren’t affected.


OMI Visual Features (P04 Carryovers)

If you already applied P04, nothing new here: Bit State animations (bit-pattern conditions up to 32 bits), Extended Truth Table animations (Blink, Disable, Value Display, Visibility), and OMI Web Client load balancing all carry forward. If you skipped P04, you get the whole bundle with SP2.


Application Server Fixes (41 Issues)

Warm Redundancy & Failover (The Headline Cluster)

Ten of the 41 fixes target warm-standby and failover scenarios. If you run redundant AppEngines, this section alone justifies the upgrade:

  • 4422067 — RDI objects randomly entered quarantine during normal operation, killing communications until an operator intervened. For an unattended redundant site, that’s a showstopper
  • 4427599 — Attribute quality stuck in Initializing after failover, indefinitely, with DI/RDI configurations. Data silently dead after a switchover is the worst kind of failure
  • 4388066 — .Msg tags showed wrong OnMsg/OffMsg text after AppEngine failover until the attribute changed again
  • 4394626 — Multi-galaxy failover caused delayed reconnection of monitored data items
  • 4407929 — Redundant DI objects failed to recover after AppEngine failover; the configured failover delay wasn’t applied consistently
  • 4471355 — After a primary node restart, the secondary AppEngine failed to start, stranding hosted objects
  • 4748940 — Alarms from PLC-driven attributes weren’t generated after a redundancy switchover
  • 4765588 — Redundancy.FailoverOccurred reported the wrong state after failing back to primary
  • 4288870 — Redundant DI switchover didn’t unsubscribe inactive DI objects from the OI Gateway (with different input/output addresses)
  • 4426837 — Standby nodes logged repeated “ProcessSerializedAttributesOnWarm” warnings during network hiccups

Galaxy Management & Migration

  • 4502609 — CAB migration from 2020 R2 SP1 P01 failed when symbol overrides contained duplicate custom property names — and in some cases the Galaxy Repository process restarted. That’s migration-day chaos material
  • 4517577 — Instance-level script references were lost during galaxy migration
  • 4560183 — After upgrading to SP1, you couldn’t create graphics or objects matching retained names
  • 4411557 — Bulk CSV instance imports became significantly slower in P03/P04 (a regression, now fixed)
  • 4500950 — Template imports into large galaxies took hours with higher object versions
  • 4499696 — Template check-in sometimes silently removed IO overrides from instances
  • 4847304 — Linking a graphic to a template made the template impossible to check in
  • 4929879 — Connecting to a second Galaxy Repository failed after connecting to the first

Performance & Stability

  • 4663483 — AppEngines went unresponsive at runtime, objects reporting “Unknown: Comm Error (DISource not accessible)”
  • 4340728 — aaUserValidator memory and threads kept growing until InTouch Web Client access levels reset to -1. If you saw the access-level bug and blamed InTouch, this is the other half of the story
  • 4454612 — Invalid DDESuiteLink items caused sustained memory growth in AppEngines
  • 4561535 — Industrial Graphics temp files were never cleaned up, degrading startup until aaGR missed its timeout
  • 4523737 — Intermittent data update failures froze OMI runtime data
  • 4572908 — Opening and closing Platform Manager sometimes killed mmc.exe
  • 4574992 — Template check-in blocked the IDE and InTouch runtime despite idle server resources
  • 4609760 — Deployment intermittently failed for objects with scripts
  • 4695276 — Validation pushed untouched objects into “Updates Pending Deployment”
  • 4638031 — Galaxy Security view took forever to load with many security groups
  • 4730839 — Alarm translation file imports crawled even with tiny files
  • 4832120 — Galaxy-level alarm translation export could take hours or never finish
  • 4513729 — Localization export for large selections timed out, producing header-only files
  • 4799652 — Object Viewer “All” filter failed with “Configuration error: Invalid reference”

Everything Else

  • 4361309 — A while true script comparing two different values never triggered. Yes, you read that right
  • 4386007 — Multi-session RDS views intermittently froze displayed values and animations
  • 4395822 — OPC Client objects failed initialization after platform upgrades, stuck until redeployed
  • 4830685 — Domain users showed username only, Full Name never populated
  • 4831996 — Distributed OMI nodes silently missed alarm notifications while graphics stayed current
  • 4561143 — Unnecessary warnings flooded the log on HMI open/close and watch-window operations
  • 4549772 — GRAccess saves via .Container threw exceptions in AttributesTab.dll
  • 3353370 — Secure Write updates logged object comments only partially
  • 4099325 — Foxboro CS objects (Strategy, FBM, Device) ran slower than earlier releases

The takeaway: with 10 of 41 fixes in the redundancy cluster plus the RDI quarantine and stuck-Initializing fixes, warm-standby sites should treat SP2 as essentially mandatory. And the regression fixes (4411557’s CSV import slowdown, 4500950’s template import hours) tell you P03/P04 needed this consolidation.


OMI Fixes (30 Issues)

Desktop (26 Issues)

Crashes:

  • 4739758 — ViewApp crashed during SAT testing
  • 4897824 — ViewApp node crashed unexpectedly and redeployed itself
  • 4811435 — Opening popups crashed the application with “This visual is not connected to a PresentationSource”

Stuck data:

  • 4812288 — Data stuck at Initializing after WAN reconnection
  • 4574606 — Faceplate “Status” charts stuck in Initializing
  • 4513864 — Graphics on a Content Presenter hung until the user clicked the mouse wheel

Control quirks:

  • 4578039 — ComboBox’s last item not selectable on first attempt (integer-bound)
  • 4526180 — ComboBox showed no selection after switching layouts
  • 4651328 — ComboBox initial value blank when the faceplate popup opened
  • 4698938 — Radio buttons not updating to the correct state
  • 4805237 — EditBox case-sensitivity behavior
  • 4763370 — SSRS Date/Time Picker showed wrong regional settings in the WebBrowser widget
  • 4825302 — Horizontal filling misbehaved at runtime

Performance & hotfix regressions:

  • 4733802 — Content Presenter CPU overconsumption came back. The readme literally says “reappearing” — hotfix whack-a-mole is real, and consolidated service packs are the antidote
  • 4855486 — Performance tanked after authentication (faceplates in embedded symbols)
  • 4078295 — Animation updates broke after consolidated hotfix IMS3940646
  • 4887494 — Point animation issues after installing IMS3917576
  • 4570040 — HF 4119142 resurrected a namespace refresh bug that HF 3640865 had already solved
  • 4514536 — Attribute writes skipped when HideSelf() was called in popup scripts (P04)

Everything else: 4376558 (myviewapp.security unresolved), 4431208 (Historical Trend with special characters in attribute names), 4523659 (GraphicInfo.Identity indistinguishable between instances via ShowGraphic()), 4717600 (Button + showgraphic inconsistency), 4656728 (SA_ColumnChart values missing via Embedcontent), 4662656 (wizard options “Invalid reference” warnings), 4776474 (EmbedContent warning spam), 4376558 and friends.

Web Client (4 Issues)

  • 4801218 — Built-in, individually configurable security headers
  • 4560901 — Web Client stuck on Initializing when opened via OMI WebBrowser across galaxies
  • 4871876 — Alarm App queries in layout scripts worked on desktop but not web
  • 4856549 — AlarmControl ignored foreground/text color on Windows Server 2022

What stands out: the crash trio and the WAN-reconnect stuck data fix are the operational heavyweights. The Content Presenter CPU regression (4733802) is the one that will make you appreciate SP2’s consolidated testing — patch-on-patch regressions are exactly what service packs are supposed to end.


InTouch HMI Fixes (54 Issues)

InTouch gets the biggest share of the release, and a large chunk of it is housekeeping after P03/P04. If you adopted patches early, SP2 is your apology letter.

The Two Resource Hogs

  • 4889918 — Opening trend popups leaked USER/GDI handles in View.exe; HideSelf() never released them until Windows hit its handle limit. Classic “ran fine for days, then everything got weird” production mystery
  • 4552217 — view.exe CPU climbed to nearly 100% after ~20 minutes on screens with the Trend Client Control
  • 4545254 — LGH files over 2 GB refused to display historical data while burning CPU
  • 1521821 — In RDS environments, InTouch pinned View.exe to a single CPU core. Look at that defect number — this one has been around the block. Better late than never

Alarms & Alarm Database

  • 4939438 — Acknowledged-and-cleared alarms never wrote ACK_ALM/ACK_RTN records to WWALMDB Alarm Details. If you use the alarm database for compliance or reporting, this is a data integrity issue, full stop
  • 4528677 — InTouch intermittently froze during alarm acknowledgment on P01+
  • 4513808 — Alarm Client Control hung with the All System Alarms filter
  • 4497297 — Perth (+08:00) clients displayed alarm timestamps in PST until an entry was selected
  • 4910367 — Alarm durations without milliseconds displayed ’00:’ in SQL Server history queries
  • 4037951 — Snapshot alarm queries failed against Alarm Hot Backup Pairs
  • 4443292 — Hotfix 4349946 corrupted the Alarm Client Control (more patch-on-patch fallout)
  • 4748053 — Alarm Viewer gained a public percent-complete property — a genuinely useful addition

Migration & P04 Regressions

  • 4652375 — P04 broke ShowGraphic() on OMI MapApp
  • 4692757 — P04 broke MapApp offline XYZ maps
  • 4827767 — On P04 Chinese builds, normal Purge/Archive operations failed with a permission error. Localization QA clearly missed this one
  • 4562175 — P04 stripped leading zeros from String custom properties
  • 4542543 — Toggling NAD off and back on reset the Local Working Directory to default (P03/P04)
  • 4370864 — 2014 migrations caused constant “Column does not exist” OCMC errors
  • 4439606 — 2020 R2 → P03/P04 broke security-controlled popup animations
  • 4459708 — P02 → P03/P04 scrambled some UDT instance properties
  • 4519748 — 2020 R2 SP1 → P03 threw “WM /Unknown opcode” errors at launch
  • 4730773 — 2017 → P03 migrations displayed wrong script counts
  • 4641780 — 2014 R2 SP1 migrations changed alarm filter syntax interpretation
  • 4828672 — 2014 → 2023 R2 P01 broke owning object for grouped objects
  • 4852329/4788355 — 2017 migrations left WindowViewer and Web Client with mismatched backgrounds
  • 4910346 — 2020 R2 SP1 → P04 made copy-pasted Numeric Displays shrink
  • 4786454 — 2020 → P04 broke GetEUDesc()
  • 4571993/4400295/4503020 — NAD clients never notified because appchng.fsm couldn’t be updated. The granddaddy of NAD annoyances finally closed

WindowMaker / WindowViewer & Web Client

The rest: 4316494 (focus lost after minimize/maximize), 4429717 (UDT dropdown single-click selecting the first item), 4832577 (frame windows corrupting SmartSymbol templates), 4847688 (Japanese WindowMaker hang after hotfix 4779989), 4780397 (override-config deployment oddities), 4908656 (toolbar misplaced after RDP reconnect with AlwaysMaximize), 4776916 (View hanging at login), 4518705 (WWControl Close exit hang), 4913073 (Application Publisher .exe freezing the Expander), 4437562 (domain accounts stuck at access level 0), 4429632 (aaServicesMXDataService warnings on web writes), 4680522 (sign-out lock blocking other sessions), 4548076 (Owning Object on UDTs breaking web graphics), 4665314 (Web Trend Pen ignoring LGH data), 4793706 (Trend Pen slow or not plotting), 4642598 (input boxes always on the primary screen), 4683144 (DataGrid row selection clearing data), 4379938 (French OS NAD dropping UDTs), 4384789 (SQL DataGrid millisecond timestamp errors), 4413338 (touch interaction with InteractionMode None), 4416282 (language switching breaking truth-table Value Displays), 4760099 (SymbolProvider logging Chinese error messages), 4766947 (exponential notation rounding above ten), 4769057 (OCMC “Not enough memory for window”), 4074215 (GR shutdown briefly freezing managed InTouch), 4878558 (WindowMaker hanging on large QuickFunctions).

Why it matters: 4889918 and 4552217 are the kind of bugs that erode trust in a platform — everything works, until it doesn’t, and nothing in the logs explains why. And the alarm database fix (4939438) is quiet but critical for anyone with auditors.


Historian Fixes (16 Issues)

  • 4971411 — Historian failed during SQL insert and ended up in Cache Overflow. A Historian in Cache Overflow isn’t a Historian anymore; it’s a liability
  • 4497189 — VSS backup corrupted main storage. If you snapshot Historian servers with Windows Backup, test this fix carefully and re-verify your backups after upgrading
  • 4779503 — Some SQL queries stopped working after installing P04 (regression)
  • 4774298 — Runtime database failed to upgrade to the P04 version (regression)
  • 4976358 — AnalogSummaryHistory returned OPCQuality = 0 for queries under 4 hours
  • 4767323 — Expression summary calculator ignored optimistic quality behavior
  • 4544670 — SQL query results were inconsistent
  • 4420833 — Runtime.dbo.Live showed nulls while Object Viewer showed good-quality values
  • 4426801 — aahStorage “VTQ count of 1000” errors during T1→T2 replication
  • 4526022 — DELETE statements conflicted with REFERENCE constraints
  • 4600670 — Metadata Server COM exceptions with binary timestamp data
  • 4756231 — Tag importer wizard took forever
  • 4756398 — Filter misbehavior returned junk characters for OpcQuality 0 / Quality Detail 24
  • 4793463 — aahClientAccessPointNG.exe crashed on every AOS node
  • 4749814 — Client Web trends went flat with too many tags over too long a range
  • 4772172 — Client Web Modern slowed down with multi-Y-axis configurations

The P04 regression pair (4779503, 4774298) is worth a flag: if you applied P04 to Historian nodes and saw query breakage or upgrade failures, SP2 is the fix you’ve been waiting for.


Historian Client Fixes (6 Issues)

  • 4741921 — Wide Query alarm searches errored out
  • 4746370 — Changing fonts broke trend scaling
  • 4559155 — aaTrend control properties wouldn’t save in Graphics Editor
  • 4637560 — Historian Query hung on syntax errors instead of reporting them
  • 3648396 — “Key has already been created” errors connecting to Trend or Query
  • 4847898 — Re-added tags showed a hyphen in the Color column

Communication Drivers Pack Fixes (26 Issues)

Core / SuiteLink (4)

  • 4947744 — SuiteLink hardening issues caused permanent stalls in data transmission or reception. SuiteLink is the backbone of InTouch data flow; a permanent stall is a full stop. This is the driver fix of the release
  • 4915697 — Tag values flickered between old and new values before stabilizing
  • 4680190 — DDE SuiteLink objects stalled the engine when reconnecting to unavailable drivers
  • 4550428 — “/Unknown opcode in FixupOperand()” errors after upgrading to P04 (SLSOpen UI-event reentrancy — the same family as InTouch’s 4519748)

Gateway (6)

  • 4688264 — Topics containing a dot produced malformed MQTT packets, and the broker disconnect/reconnect-looped forever. Sneaky, and nasty if your tag naming convention uses dots
  • 4846514 — OPC UA subscriptions stayed active after unsubscribing
  • 4922038 — A race condition on system item updates crashed the Gateway driver
  • 4696498 — The MQTT retain flag didn’t work
  • 4876988 — Clicking Test for the OPC UA namespace closed OCMC
  • 4924551 — OPC UA connections auto-generated trace files (disk fill material)

The Rest (16)

  • ABCIP — 4758082 intermittent deadlocks; 4841219 erratic runtime freezes
  • MBTCP — 4320949/4663434 connections not restored when the PLC came back online (this one’s been on a readme before — verify against your PLC after applying)
  • MELSEC — 4453788 catastrophic failure during data conversion; 4681785 one PLC timing out took down every other PLC on the same driver instance
  • MQTT — 4378187 late data resent as duplicate values; 4474699 no ONLINE message after reconnect for Primary Host Applications; 4425795 empty Publisher/Browser with SMS IT certificates; 4424919 memory-mapped file errors browsing large galaxies
  • SIDirect — 4544429 “catastrophic failure” poking large data volumes to PLCs
  • SNMP — 4220162 string items with uncertain quality after reconnect; 4791231 wrong initial values after reconnect
  • SOMAC — 4330571 ENUM variables logged as BAD
  • TI500 — 4325297 decimal points missing in clients
  • WEBSVC — 4469716 a brand-new JWT minted for every single payload (your identity provider definitely noticed); 4888868 access token requests failing outright

Known Issues

GR Upgraded to SP2, Clients Not Yet (5045344)

After upgrading the GR node from P04 to SP2, not-yet-upgraded runtime nodes freeze their data updates or fail to resolve references from the upgraded GR.

Workaround: restart the AVEVA Watchdog service on the affected node to reinitialize MxDataProvider. Plan your node upgrade order accordingly — mixed-version fleets will see this during the transition.

Workflow Gateway Object Drama (5027251/5056549)

Galaxies with AVEVA Workflow Gateway objects can hit license acquisition failures, deploy failures, and an IDE that won’t open with CONNECT SSO.

Workaround: copy four DLLs (Microsoft.Web.WebView2.Core.dll, Microsoft.Web.WebView2.WinForms.dll, Microsoft.Extensions.Logging.Abstractions.dll, PCS.Client.DataStore.dll) from Framework\Bin\AuthenticationProvider into Framework\Bin, then restart the node.

This workaround has now shipped in every readme since P02. Really, AVEVA — at some point the fix should just be in the installer.

InTouch HMI

  • 4022193 — Trend Pen can’t reach Historian with SMS off and InTouch on a separate machine; only the first two SMS configurations in the Configurator work
  • IMS-3566480/IMS-4878412 — Huge alarm histories can exhaust View memory. Set AlarmClient.MaxTotalRetrievalCount in script, or MaxHistAlarmsCount in intouch.ini (about 600 MB per 100k alarms — cap it)
  • 2612382 — MxDataProvider won’t deploy when PCS-Services Repository sits on the runtime node
  • 2897808 — Signed alarm acknowledgment unsupported for managed InTouch in connected experience
  • 1928318 — CSV-imported Supertags don’t show in the WindowMaker pane (check the tag dictionary)
  • 1765301 — Overwriting custom client controls to the cloud requires a WindowMaker restart dance
  • TFS-1351507 / TFS-1369183 / TFS-1371799 / TFS-1374896 / TFS-1377672 — The Carousel widget set (language switching, browser-security conflicts, namespace resolution), graphic name casing, and busy OPC UA server logging warnings all carry forward unchanged

Historian

  • Importing database files from SP2023 R2 or earlier requires the source Historian to be on P01+
  • Workgroup setups with DNS (including Azure) can fail secure client-to-server communication — add a hosts file entry with the server’s machine name
  • Web Modern comment dialog’s Asset field doesn’t work
  • Excel Add-In fails with connected experience + required trusted connections
  • Changing a replicated tag’s Stream datatype removes it from replication — re-add with a new destination tag name (PI/CONNECT) or the existing name (next-tier Historian)

Historian Client

  • CAB migrations from pre-2020 galaxies containing Historical Trend controls can stall with no error. The workaround is a three-DLL shuffle (aaHistClientDatabase.dll, aaAFCommonTypes.dll, aaHistClientUtil.dll) from an old installation into the new Framework\Bin before restoring via OCMC. Follow the official steps exactly, and back up the galaxy first

OMI & Communication Drivers

No known issues. Small mercies.


Should You Upgrade?

Upgrade now if:

  • You’re on P03/P04 and living with any of the regressions — slow CSV imports, broken MapApp offline maps, dead SQL queries, leading zeros vanishing, Chinese Purge/Archive permission errors
  • You run warm redundancy or RDI objects — the quarantine, stuck-Initializing, and standby AppEngine fixes are showstopper-class
  • InTouch view.exe CPU or handle counts have been creeping up mysteriously (4552217, 4889918)
  • SuiteLink data flow has ever stalled, or MQTT clients disconnect-loop
  • Historian has touched Cache Overflow, or VSS backups are in your maintenance plan
  • You want to decouple .NET lifecycle from System Platform upgrades

You can wait if:

  • You’re stable on P04, use none of the affected features, and your change windows are packed. But note the clock: restricted DLL loading goes default-on in SP2026, and SP2 is where the 2023 R2 line consolidates. Testing now is cheaper than firefighting later

Upgrade checklist:

  1. Back up Galaxy and Historian databases
  2. Review firewall rules and application allowlists — executable names and paths have changed
  3. Audit anything depending on the WindowViewer service account’s old admin rights
  4. If your Galaxy has Workflow Gateway objects, stage the four-DLL workaround (yes, again)
  5. Plan node upgrade order for mixed fleets; know the Watchdog restart trick for frozen clients
  6. Test restricted DLL loading in a non-production environment before SP2026 forces the question
  7. Verify nothing on the node still needs .NET 8 before removing it

The Bottom Line

The patch chain so far has had a rhythm: P01 was the foundation, P02 the memory-leak cleanup, P03 the security tightening, P04 the reliability pass. SP2 is the settlement — and the architecture prep.

The 173-fix count is the least interesting number on the page. What matters is the shape: a heavy redundancy cluster for Application Server, two production-mystery resource bugs squashed in InTouch, an alarm database integrity fix, Historian self-preservation fixes, and a SuiteLink stall fix that protects the data path everything else depends on. Add a visible sweep of P03/P04 regressions and you have a release that exists to make the SP1 line safe to stay on.

The strategic pieces are the .NET decoupling and the security rollout plan. Decoupled runtimes change maintenance economics — runtime patches stop dragging platform upgrades behind them. And the restricted DLL loading schedule (off → default-on in SP2026 → enforced) tells you exactly where AVEVA is heading, with time to prepare.

If you’ve been skipping patches and staying on the SP1 base: SP2 is the one release worth breaking that habit for. It’s the tested, accumulated baseline of a year’s worth of fixes — and the last stop before SP2026 redraws the defaults.


This article is based on the official AVEVA System Platform 2023 R2 SP2 release notes (last revised September 24, 2026). For system requirements and installation steps, refer to the AVEVA documentation or the component ReadMe pages on the support portal.

Leave a Reply

Your email address will not be published. Required fields are marked *

8 × = 8