Improve pull queue exception handling and subscriber options

Created on 10 June 2025, 2 months ago

Problem/Motivation

1. When a pull queue item fails with exception, the queue item stays in pull queue and gets retried on every subsequent queue processing operation. This can cause an issue where the queue becomes backlogged with the same errors over and over, preventing the rest of the queue from being processed.
2. The disallowPull method on Pull Event is all or nothing: there's no way, for example, to say "disallow for now" or "disallow this and stop the rest of queue processing"

Steps to reproduce

Proposed resolution

PullBase should respect exceptions thrown by subscribers, rather than hardcoding a DelayedRequeueException.

Remaining tasks

  • Extend PullBase::updateEntity and PullBase::updateEntity to respect the exceptions thrown by event subscribers and child classes, so that if a queue-related exception is thrown -- DelayedRequeueException, RequeueException, or SuspendQueueException -- it will percolate to the core cron queue handler, rather than being ignored and replaced with a DelayedRequeueException.
  • Update docs for Pull events, to suggest the various exceptions that may be thrown

User interface changes

None

API changes

Not really

Data model changes

None

πŸ“Œ Task
Status

Active

Version

5.1

Component

salesforce_pull.module

Created by

πŸ‡ΊπŸ‡ΈUnited States AaronBauman Philadelphia

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024