Issue
When navigating between user tasks that belong to different workflows, a Contact your system administrator error occurs.
The application uses a snippet similar to Snip_Workflow_CommentsAndAttachments from the Workflow Commons module.
The error occurs during programmatic navigation between user tasks of different workflows. Closing and reopening the page temporarily resolves the issue, but the error reappears upon the next navigation.
Environment
Workflow Commons module
Cause
The issue is caused by the DS_Workflow_TimelineViewer datasource nanoflow in the Workflow Commons module. Access to a System.Workflow object is available only when at least one In Progress user task within the workflow is assigned or targeted.
When a task is completed, the workflow engine creates the next task asynchronously. If the next task belongs to a different workflow, a short time window exists where:
- The previous task is completed
- The next task is not yet created or assigned
- Access to the
System.Workflowobject is temporarily removed
During this transition, the DS_Workflow_TimelineViewer nanoflow is triggered on the client. Because nanoflows execute immediately on the client side, the workflow object is temporarily inaccessible.
When the nanoflow attempts to access or update the TimelineViewer_Workflow association, a security exception occurs. This results in the Contact your system administrator error.
This behavior is caused by the interaction between:
- Workflow security on the
System.Workflowentity - Asynchronous workflow task creation
- Client-side execution of datasource nanoflows
This is expected behavior. The workflow continues processing correctly. Mendix has not identified a platform defect and does not plan changes to the Mendix runtime.
Solution / Workaround
Convert the datasource nanoflow to a microflow to prevent the error during workflow transitions.
A microflow executes on the server and only updates the client after processing is complete. This prevents exposure of the temporary state where the System.Workflow object is inaccessible.
Steps
To convert the datasource nanoflow to a microflow, follow these steps:
- Open the
DS_Workflow_TimelineViewernanoflow in the Workflow Commons module. - Right-click the nanoflow.
- Select Convert to microflow.
- Save the changes.
- Redeploy the application.
After this change, the datasource runs server-side and no longer triggers a client-side security exception during workflow transitions between different workflows.
Internal information related
- 278642
- C014CARM7LK/p1779265294022469
Additional information
Mendix documentation:
0 Comments