KB-1001 Process models are missing swim lanes and annotations in the Process Modeler

This issue has been resolved in an Appian hotfix/new Appian version. Please apply the latest hotfix to your Appian installation or upgrade to the latest version of Appian.

Symptoms

The swim lanes and annotations are missing from the process model, and the connectors between nodes are not formatted correctly. The logs have the following error message:

ERROR com.appiancorp.process.design.service.ProcessDesignServiceXmlImpl - An error occurred retrieving the model from the filesystem.

The following error message appears earlier in the logs when the process model was published:

ERROR com.appiancorp.process.design.service.ProcessDesignServiceXmlImpl - An error occurred storing the model on the filesystem.
java.lang.RuntimeException: XML serialization of ACP failed: ActivityClassParameter[name=*****,it=****,v=]

... 136 more
Caused by: com.appiancorp.type.xmlconversion.exceptions.ToXmlConversionException: Cannot convert internal value of type CIQ_QSTNNR (id=16712) to XML (target element qname: {http://www.appian.com/ae/types/2009}interior-expressions). Internal value: [Ljava.lang.Object;@3654c06[{,,,,,,,,,,,,,,,,,,,,,,,,}]
at com.appiancorp.type.handlers.RecordHandler.convertInteriorExpressionsToXml(RecordHandler.java:706)
at com.appiancorp.type.handlers.AcpBeanArrayHandler.convertInteriorExpressionsToXml(AcpBeanArrayHandler.java:292)
... 137 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 25
at com.appiancorp.type.handlers.RecordHandler.convertInteriorExpressionsToXml(RecordHandler.java:690)
... 138 more

Alternatively, there may be an error like the following:

ERROR com.appiancorp.process.design.service.ProcessDesignServiceXmlImpl - An error occurred retrieving the model from the filesystem.
com.appiancorp.suiteapi.common.exceptions.AppianException: Invalid Type: null (APNX-1-4047-000)

Cause

The root cause can be determined by looking at the application server log and finding the error message. In the first example above, the relevant error is:

Caused by: java.lang.ArrayIndexOutOfBoundsException

In this particular case the ArrayIndexOutOfBoundsException is thrown because the CDT was recently updated to have more fields than it originally had when this version of the process model was created.

This can happen under the following conditions:

  • Impact Analysis, or Check Outdated Dependents was not ran to update the process model after the CDT change.
  • The node input of type CDT is being populated in a node with expressions on each field, expressions start with an ‘=’ sign

In the second example above, the relevant error is:

com.appiancorp.suiteapi.common.exceptions.AppianException: Invalid Type: null

This indicates that a CDT that is referenced in the process model does not exist in the environment.

Action

This has been addressed in Appian 16.1. Please upgrade to this version to take advantage of the fix.

Workaround

To work around this in Appian 7.11 and earlier:

  • Do not publish the broken process model. Otherwise you will be saving the broken look and feel.
  • Run Impact Analysis, or Check Outdated Dependents for the CDT to make sure your process model gets updated.

If the above does not work, perform the following:

  1. Revert any changes to the CDT by importing the original version of the CDT from another environment, and running Impact Analysis to update the broken process model.
    • When importing the CDT, ensure you use the same name and namespace as the original.
    • This should fix the process model unless you have published it without the swim lanes
  2. Go to the script task and the node input that points to the CDT and click "Value set via fields. Click to overwrite."
  3. Leave the mappings empty.
  4. Save and publish the process model.
  5. Upload the updated CDT.
  6. Run Impact Analysis.
  7. Remap the script task.

If the process model has already been saved while it was in the incorrect state, restore it to a previous version with the following steps:

  1. Open the process model and navigate to File > Versions in the Process Modeler.
  2. Load the version of the model you wish to revert to.
  3. Save and Publish that version.

Affected Versions

This article applies to Appian 7.11 and earlier.

Last Reviewed: January 2016

Related
Recommended