Fehler „Workflow-Modell kann nicht gelesen werden“ nach der AEM-Migration

Problem

Nach der Migration auf eine neuere Version von AEM überflutet folgender Fehler die Protokolle:

18.08.2017 13:03:36.620 ERROR [10.1.40.68 [1503075812864] GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json HTTP/1.1] com.adobe.granite.workflow.core.model.WorkflowModelCacheImpl cannot load model. id: /etc/workflow/models/dam/update_asset/jcr:content/model vid: 1.0
com.adobe.granite.workflow.WorkflowException: Cannot read workflow model from node: /etc/workflow/models/dam/update_asset/jcr:content/model
at com.adobe.granite.workflow.core.jcr.WorkflowModelManager.getWorkflowModelFromRepo(WorkflowModelManager.java:179)
at com.adobe.granite.workflow.core.model.WorkflowModelCacheImpl.getModel(WorkflowModelCacheImpl.java:162)
at com.adobe.granite.workflow.core.jcr.WorkflowModelManager.getWorkflowModel(WorkflowModelManager.java:91)
at com.adobe.granite.workflow.core.WorkflowSessionImpl.getCachedModel(WorkflowSessionImpl.java:448)
at com.adobe.granite.workflow.core.util.NodeReader.createWorkflow(NodeReader.java:249)
at com.adobe.granite.workflow.core.util.NodeReader.createWorkItem(NodeReader.java:336)
at com.adobe.granite.workflow.core.jcr.WorkItemAdapterFactory.getAdapter(WorkItemAdapterFactory.java:128)
at org.apache.sling.adapter.internal.AdapterManagerImpl.getAdapter(AdapterManagerImpl.java:147)
at com.adobe.granite.workflow.core.jcr.WorkItemManager.getInboxItems(WorkItemManager.java:289)
at com.adobe.granite.workflow.core.WorkflowSessionImpl.getActiveInboxItems(WorkflowSessionImpl.java:711)
at com.adobe.granite.workflow.core.WorkflowSessionImpl.getActiveInboxItems(WorkflowSessionImpl.java:618)
at org.apache.jsp.libs.cq.gui.components.shell.badge.data_json_jsp._jspService(data_json_jsp.java:610)
...
Caused by: javax.jcr.InvalidItemStateException: Item is stale /jcr:system/jcr:versionStorage/01/00/1f/01001f76-9ea5-45ed-934f-dca169e9c9b6
at org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.getTree(NodeDelegate.java:885)
at org.apache.jackrabbit.oak.jcr.delegate.VersionHistoryDelegate.getVersion(VersionHistoryDelegate.java:81)
at org.apache.jackrabbit.oak.jcr.version.VersionHistoryImpl$5.perform(VersionHistoryImpl.java:137)
at org.apache.jackrabbit.oak.jcr.version.VersionHistoryImpl$5.perform(VersionHistoryImpl.java:133)
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:208)
at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112)
at org.apache.jackrabbit.oak.jcr.version.VersionHistoryImpl.getVersion(VersionHistoryImpl.java:133)
at com.adobe.granite.workflow.core.jcr.WorkflowModelManager.getWorkflowModelFromRepo(WorkflowModelManager.java:160)
... 134 common frames omitted

Umgebung

AEM 6.x

Ursache

Workflow-Versionen wurden nicht von der älteren AEM migriert, sodass die Workflow-Instanz-Referenz-Versionen nicht existieren.

Lösung

  1. Rufen Sie den Paketmanager auf (http://host:port/crx/packmgr/index.jsp).
  2. Erstellen Sie zwei separate Sicherungspakete /etc/workflow/models (inklusive des rep: policy node) und /etc/workflow/instances.
  3. Gehen Sie auf CRXDE (http://host:port/crx/de/index.jsp) und melden Sie sich als Administrator an.
  4. Durchsuchen Sie /etc/workflow/models.
  5. Klicken Sie mit der rechten Maustaste auf den Knoten /etc/workflow/models und wählen Sie Löschen.
  6. Klicken Sie auf Alle Speichern.
  7. Rufen Sie den Paketmanager auf (http://host:port/crx/packmgr/index.jsp).
  8. Installieren Sie das Paket mit den /etc/workflow/models neu.
  9. Installieren Sie das angehängte Paket workflow-version-fix-tool-1.1.zip.
  10. Navigieren Sie zu /apps/workflow-tools/workflowversionfix/run.html
  11. Führen Sie das Skript aus. Dieses Skript setzt alle Workflow-Instanzen zurück, um auf die neu installierten Versionen des Workflows zu verweisen.

Herunterladen

Adobe-Logo

Bei Ihrem Konto anmelden