Purchase order approval workflow stuck at manager level in 2022 R1 - how to debug workflow engine

Our purchase order approval workflows in Orchestrator are hanging at the manager escalation step. POs requiring approval over $50K should escalate to directors after 48 hours of manager inactivity, but they’re stuck indefinitely instead.

The workflow shows ‘Pending’ status with no error messages, but notifications aren’t being sent to the escalation recipients. We’ve verified that notification association to approval steps looks correct in the Orchestrator design, and workflow priority configuration appears standard.

Workflow state from monitoring:

<WorkflowStep id="mgr_approval">
  <Status>Pending</Status>
  <Elapsed>96 hours</Elapsed>
  <EscalationDue>48 hours</EscalationDue>
  <NotificationSent>false</NotificationSent>
</WorkflowStep>

We’ve tested the escalation rule definition in isolation and it triggers correctly, but when integrated into the full PO approval workflow, the notification routing fails. Our P4310 processing options show escalation enabled, but something in the Orchestrator configuration is preventing the notification from routing to the director approval group. Has anyone debugged similar notification routing issues in Orchestrator workflows?

I’ve seen this when the notification recipient group doesn’t have proper role mappings in Orchestrator. Even though your director group exists in JDE security, it needs to be explicitly mapped as a recipient role in the Orchestrator workflow definition. Check the Notification Association section and ensure the director role is listed as an escalation recipient with the correct role type.

We found that the notification template ID was indeed incorrect after our recent upgrade. Testing the fix now with a sample workflow.

Let me provide a comprehensive solution covering all four areas causing your escalation failures.

Notification Association to Approval Steps: The primary issue is that your escalation notification is associated with the workflow step rather than the timeout transition event. In Orchestrator Studio, open your PO approval workflow and navigate to the manager approval step. You’ll see the notification is configured under ‘Step Properties’ → ‘Notifications’. This is incorrect for escalations.

Instead, configure the notification on the timeout transition:

  1. Select the manager approval step
  2. Go to ‘Transitions’ tab
  3. Find the timeout transition (usually labeled ‘On Escalation’)
  4. In the transition properties, add your notification action
  5. Set the notification trigger to ‘On Transition Entry’

This ensures the notification fires when the timeout occurs, not when the step initially activates.

Workflow Priority Configuration: Your escalation timers aren’t processing because of thread pool contention. Edit your Orchestrator server configuration (orch.ini or equivalent):


[WorkflowEngine]
MaxThreads=20
EscalationThreads=5
PriorityProcessing=true
TimeoutCheckInterval=3600

The dedicated escalation threads ensure timeout events process independently of main workflow execution. The 3600-second interval means escalations check hourly - adjust based on your SLA requirements.

Escalation Rule Definition: Your escalation rule is testing correctly in isolation but failing in production because it’s missing the workflow context variables. Update your rule definition to include the PO amount and current approver level:

<EscalationRule name="Director_Escalation">
  <Condition>
    <Amount greaterThan="50000"/>
    <ElapsedTime greaterThan="48 hours"/>
    <CurrentApprover equals="Manager"/>
  </Condition>
  <Action>
    <Route to="DirectorGroup"/>
    <Notify template="PO_Director_Escalation"/>
  </Action>
</EscalationRule>

The CurrentApprover condition prevents the rule from triggering at inappropriate workflow stages.

Notification Routing Debugging: The silent failure you’re experiencing is due to an invalid notification template ID after your JDE 9.2.2 upgrade. Template IDs changed in this version. To fix:

  1. Open Notification Template Management (typically in OMW)
  2. Find your escalation notification template
  3. Note the new template ID (likely changed from numeric to alphanumeric format)
  4. Update your workflow notification action:
<NotificationAction>
  <TemplateID>PO_ESC_DIR_v922</TemplateID>
  <Recipients role="Directors" type="Group"/>
  <Priority>High</Priority>
  <DeliveryMethod>Email,InApp</DeliveryMethod>
</NotificationAction>
  1. Verify the Directors group has email addresses configured in User/Role Management

For your 23 stuck POs, use this Orchestrator API call to manually trigger escalation:


POST /orchestrator/api/workflow/escalate
{
  "workflowIds": [list of stuck workflow IDs],
  "targetStep": "director_approval",
  "notifyRecipients": true
}

After implementing these fixes, test with a low-value PO (under $50K) to verify standard approval flow, then test with a $51K PO and let it sit for 48 hours to confirm escalation triggers correctly. Enable verbose logging in Orchestrator during testing to capture the complete notification routing sequence.

The combination of proper notification association, dedicated escalation threads, context-aware rules, and correct template IDs should resolve your workflow hang issues permanently.

Check if your escalation notification is associated with the correct workflow transition. In Orchestrator Studio, verify that the escalation timer has a notification action defined in the ‘On Timeout’ event handler. Often the notification is configured on the step itself rather than the timeout transition, which prevents it from firing during escalation.

This is causing major delays in our procurement cycle. We have 23 POs currently stuck at the manager approval stage, totaling over $2M in pending purchases. Some have been stuck for over a week. Is there a way to manually trigger the escalation for these stuck workflows while we debug the root cause?