Impossible to create Business Process
Issues related to Business Process (BP) creation are divided into two main cases:
Business Process cannot be created in WorkFusion UI
These cases are rare. Mostly, the investigation requires checking the browser console and Control Tower logs.
404 error when BP is created or copied from existing
A possible cause is insufficient space on the DB server. To check this, navigate to /opt/workfusion/workfusion/logs/control-tower.log.json.
The log should contain the following error:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Could not allocate a new page for database 'workfusion' because of insufficient disk space in filegroup 'PRIMARY'.
Created BP is not visible in BP list
If you go through all creation steps and save the BP, but it is still not visible in the Business Processes list, the problem might be with filtering.
Try to reset the user-defined filters: go to System Settings > System Preferences > User Settings > Reset filters. For details, refer to the Modify system preferences topic.
Business Process cannot be imported via CI/CD
Before anything else, check CI/CD logs for authentication or connection issues, such as a wrong password or deployment links. Next, search Nginx and Control Tower logs for messages like this: bundle-import or BundleImport. The most probable root causes are as follows:
- The Nexus service is not accessible due to network issues, or the service itself is down.
- Infrastructure issues, such as bundle path not accessible or no permissions to download bundle archives or create folders.
- Bundle verification issues, in which case the log should contain a detailed message.
403 error: session expired
The issue can occur when you are importing a large bundle: the bundle is so large that the session expires before the import is completed.
In this case, the stack trace always looks the same. So, for details, view the response or control-tower.log.json log file.
[INFO] -------------< com.workfusion.sanctions:sanctions-package >-------------
[INFO] Building Sanctions package 1.0.4
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- bundle-maven-plugin:10.1.0.4:import (default-cli) @ sanctions-package ---
[INFO] Server ID: 'control-tower'
[INFO] Control Tower: 'https://example.workfusion.com/workfusion/'
[INFO] Bundle to be imported: '/IdeaProjects/sanctions/sanctions-package/target/sanctions-package-1.0.4.zip'
[INFO] Upload business process bundle from /IdeaProjects/sanctions/sanctions-package/target/sanctions-package-1.0.4.zip
[INFO] --> POST https://us-10141-wfaw-10037-workfusion-lb1.workfusion.com/workfusion/api/dologin http/1.1 (39-byte body)
[INFO] <-- 200 https://us-10141-wfaw-10037-workfusion-lb1.workfusion.com/workfusion/api/dologin (2575ms, 99-byte body)
[INFO] --> POST https://us-10141-wfaw-10037-workfusion-lb1.workfusion.com/workfusion/api/v1/bundle-import/ http/1.1 (1779841246-byte body)
[INFO] <-- 403 https://us-10141-wfaw-10037-workfusion-lb1.workfusion.com/workfusion/api/v1/bundle-import/ (1905886ms, 119-byte body)
[ERROR] Error occurred
com.workfusion.spoke.ctclient.ApiException:
at com.workfusion.spoke.ctclient.ApiClient.handleResponse (ApiClient.java:964)
at com.workfusion.spoke.ctclient.ApiClient.execute (ApiClient.java:880)
at com.workfusion.spoke.ctclient.api.BundleImportApi.importBundleUsingPOSTWithHttpInfo (BundleImportApi.java:289)
at com.workfusion.spoke.ctclient.api.BundleImportApi.importBundleUsingPOST (BundleImportApi.java:266)
at com.workfusion.spoke.bundle.BundleImport.upload (BundleImport.java:58)
at com.workfusion.spoke.bundle.BundleImport.execute (BundleImport.java:47)
...
[INFO] ---------------------------------------------
[INFO] HTTP status code: 403
[INFO] ---------------------------------------------
[INFO] Response body:
{
"message": "Expected CSRF token not found. Has your session expired?",
"code": "com.workfusion.api.error.no.permissions"
}
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
The solution to the issue is to extend session timeout as described in the Application session invalidated guide.
422 error
[INFO] <-- 200 https://control-tower/workfusion/dologin (228ms, 99-byte body)
[INFO] --> POST https://control-tower/workfusion/api/v1/bundle-import/ http/1.1 (278021786-byte body)
[INFO] <-- 422 https://control-tower/workfusion/api/v1/bundle-import/ (12371ms, unknown-length body)
[ERROR] Error occurred
com.workfusion.spoke.ctclient.ApiException:
at com.workfusion.spoke.ctclient.ApiClient.handleResponse (ApiClient.java:964)
at com.workfusion.spoke.ctclient.ApiClient.execute (ApiClient.java:880)
at com.workfusion.spoke.ctclient.api.BundleImportApi.importBundleUsingPOSTWithHttpInfo (BundleImportApi.java:289)
at com.workfusion.spoke.ctclient.api.BundleImportApi.importBundleUsingPOST (BundleImportApi.java:266)
at com.workfusion.spoke.bundle.BundleImport.upload (BundleImport.java:53)
at com.workfusion.spoke.bundle.BundleImport.execute (BundleImport.java:37)
Infrastructure: not enough space on DB server
In this case, in control-tower.log, you see the following message:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException:
Could not allocate a new page for database 'workfusion' because of insufficient disk space in filegroup 'PRIMARY'.
Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
To fix the issue, clean up the database. After the cleanup, import should be successful.
Insufficient permission for file system operations
In this case, in control-tower.log, you see the following message:
"stack_trace": "java.io.IOException: Could not write/create at: /opt/app/workfusion/shared/workfusion/assets/archive\n\tat
com.workfusion.controltower.asset.management.impl.service.bundle.zip.ZipArchiveBundleExtractor.createFolderIfNeeded(ZipArchiveBundleExtractor.java:92)\n\tat
com.workfusion.controltower.asset.management.impl.service.bundle.zip.ZipArchiveBundleExtractor.saveArchive(ZipArchiveBundleExtractor.java:43)\n\tat
com.workfusion.controltower.asset.management.impl.service.bundle.zip.ZipBundleImportService.saveArchive(ZipBundleImportService.java:165)\n\tat
com.workfusion.controltower.asset.management.impl.service.bundle.zip.ZipBundleImportService.importBundle(ZipBundleImportService.java:91)\n\tat
com.workfusion.controltower.asset.management.api.rest.v1.BundleImportRestController.importBundle(BundleImportRestController.java:75)\n\tat
com.workfusion.controltower.asset.management.api.rest.v1.BundleImportRestController$$FastClassBySpringCGLIB$$5684725b.invoke(<generated>)\n\tat
This means the user running the Control Tower app doesn't have the write access to the specific folder.
View also: