Skip to content

[5.x] Fix RedisQueue::later() never passing the delay to the payload - #1810

Merged
taylorotwell merged 1 commit into
laravel:5.xfrom
lazerg:fix/issue-1809-later-delay-version-guard
Aug 10, 2026
Merged

[5.x] Fix RedisQueue::later() never passing the delay to the payload#1810
taylorotwell merged 1 commit into
laravel:5.xfrom
lazerg:fix/issue-1809-later-delay-version-guard

Conversation

@lazerg

@lazerg lazerg commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

The version guard added in #1798 compares Application::class, which is the class-name string, instead of Application::VERSION. version_compare() never reads that as a version above 12.11.0, so the condition is false on every Laravel version and $delay is never forwarded to createPayload().

Scheduling still works, since the delay is applied through enqueueUsing()/laterRaw(), but payload['delay'] stays null, so a failed delayed job loses its own delay as the retry fallback and drops back to the supervisor's backoff.

Added a test in QueueProcessingTest asserting the delay reaches the stored payload. It fails on the current 5.x branch and is skipped below Laravel 12.11, where createPayload() has no delay argument.

Fixes #1809

@lazerg
lazerg force-pushed the fix/issue-1809-later-delay-version-guard branch from 848737c to d70a6c7 Compare August 10, 2026 12:13
@taylorotwell
taylorotwell merged commit 2d1045d into laravel:5.x Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RedisQueue::later() version guard compares Application::class instead of Application::VERSION, so $delay is never passed

2 participants