Problem
WP_Agent_Workflow_Action_Scheduler_Branch_Executor::trigger_async_runner() increments its accepted-loopback count for every WpOrg\Requests\Response, regardless of HTTP status. A proxy or origin rejection such as 403 therefore returns 1 even though the Action Scheduler queue runner never executes and the action remains pending with zero attempts.
Expected
Only successful queue-runner HTTP responses count as accepted dispatches. Rejected responses return zero so callers can select another server-side worker path and diagnostics remain truthful.
Reproduction
- Stub
Requests::request_multiple() to return a Response with status 403.
- Call
trigger_async_runner( 1 ).
- Observe the method currently returns
1.
- Verify the corrected method returns
0, while a successful 2xx queue-runner response returns 1.
This was discovered while tracing an Action Scheduler action that remained pending with zero attempts on a protected split runtime.
Problem
WP_Agent_Workflow_Action_Scheduler_Branch_Executor::trigger_async_runner()increments its accepted-loopback count for everyWpOrg\Requests\Response, regardless of HTTP status. A proxy or origin rejection such as403therefore returns1even though the Action Scheduler queue runner never executes and the action remains pending with zero attempts.Expected
Only successful queue-runner HTTP responses count as accepted dispatches. Rejected responses return zero so callers can select another server-side worker path and diagnostics remain truthful.
Reproduction
Requests::request_multiple()to return aResponsewith status403.trigger_async_runner( 1 ).1.0, while a successful 2xx queue-runner response returns1.This was discovered while tracing an Action Scheduler action that remained pending with zero attempts on a protected split runtime.