Skip to main content

Impossible to create Business Process

Issues related to Business Process (BP) creation fall into the two major categories:

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 database 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:

  1. In the main Control Tower menu, go to System Settings > System Preferences.

  2. Navigate to the User Settings tab > 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: unprocessable content

[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

You can diagnoze the issue if you see the following message in control-tower.log:

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: