as_enqueue_async_action() spreads the args array into separate positional parameters on the hooked callback, it does not pass one combined array. process_batch() was registered with accepted_args=1 and tried to read $args['run_id']/$args['product_ids'] off what was actually just the run_id string - the run_id comparison then always failed and every batch returned immediately without doing any work, while Action Scheduler still marked each action complete (no exception was thrown). Found by tracing why 896 queued batches all reported "complete" within seconds with zero products actually synced. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
8.2 KiB
8.2 KiB