There can be two causes for this issue:
1> The concurrency limit for workflows in a campaign is reached and no new workflows can be started. This can be confirmed by checking the number of workflows running inside a campaign and check the value of NmsOperation_LimitConcurrency under Platform>Options.
Note:
When this limit is reached, the workflow only stays in the "start as soon as possible" as long as the number of workflows running is above the concurrency limit. Whenever the number drops below the limit the workflow is kicked off. So the "start as soon as possible" state is not permanent.
2> The most common reason for this Failure of the workflows to start within a campaign is the Failure of the Campaign jobs (Operationmgt) workflow. This is a technical workflow found in the Campaign Process folder under Administration>Production>Technical workflows node. This workflow manages jobs or workflows inside a campaign and failure of this will result workflows to not start / stop.
You can restart this workflow if it is failed to resume running of the campaign workflows.
For the first failure we can:
>> Increase the concurrency limit if it's a business need or we can explain that the workflow starts as soon as the concurrency threshold is restored.
For the second failure we can:
>> Restart the Campaign jobs (Operationmgt) workflow if it is failed. Once restarted, we make sure we "execute the pending tasks" on the scheduler to check if it fails again on any of the activities.
- If the workflow is paused, resume it and then attempt a restart if it fails after resuming.
- If the workflow is stopped, start it.
- If it fails again, we need to check the audit log for specific error and troubleshoot accordingly.
Example: You may get a failure like:
Campaign jobs workflow (operationmgt) was failed with error:
25/08/2016 17:34:25 scheduler JavaScript: error while evaluating script 'operationMgt/scheduler'.
25/08/2016 17:34:25 scheduler No access token found to perform user update.
25/08/2016 17:34:25 scheduler Starting targeting workflow 'xyz_wkf_engage_4' for campaign '01 - Engage campaign (xyz_engage_campaign)'
This means it's trying to start the workflow xyz_wkf_engage_4 but is not able to. In most cases, this workflow is pointing to would be in a finished state and cannot be started. For this, we can do an unconditional stop for the workflow xyz_wkf_engage_4 and then Restart Campaign jobs (operation mgt).