We are facing an issue with Process Upgrade and CDT versioning in active process instances.
We have a process model that contains a process variable of type Comentarios.
Comentarios
Recently, we added a new field to the Comentarios CDT. As a result:
Comentarios^4
The upgrade fails because the source process instances have the process variable using Comentarios^4, while the target process model has the same process variable using the latest Comentarios CDT version.
The error indicates that the process upgrade is not compatible because the CDT type/version is different.
From the official Process Upgrade documentation, I understand that the target process model must contain all PVs from the source model matched by name, type, and multiplicity, and that a CDT version difference is treated as a different type.
What is the recommended Appian pattern for this situation?
Specifically:
We want to understand the standard Appian-recommended approach for long-running process instances when a CDT evolves, especially when the CDT is used in process variables and blocks Process Upgrade.
Any guidance, real-world patterns, or Appian best practices would be appreciated.
Thanks.
Discussion posts and replies are publicly visible
Process Upgrade requires PV name, type, and multiplicity to match exactly. A CDT version change (Comentarios^4 vs latest) is treated as a different type — upgrade will fail. This is confirmed behavior.
There could be different ways to tackle it and not knowing details of your use case I am suggesting a safer approach if you don't want to terminate all existing process instances.
Create a temporary intermediate process model that:
Has PVs typed as Comentarios^4 (matching source instances)Maps and transforms data to latest CDT versionThen upgrades to final target model
When a CDT evolves and blocks Process Upgrade, the recommended pattern as per my understanding is to create a new subprocess that contains the full remaining flow, using the latest Comentarios CDT. In the active parent instances, at the current active node, capture all PV data from Comentarios^4, map and pass it to this subprocess, then terminate the parent. The subprocess takes over the complete flow from that point, handling all remaining tasks with the new CDT version and bypassing the Process Upgrade CDT mismatch entirely while keeping active instances alive through the subprocess.