Laravel 13.26.0, released on 18 August 2026, puts almost all of its new surface into the queue layer. A job-released event, a forwarding method between queues and debounce support for queued listeners make up the bulk of this weekly release, while the 13.26.1 patch, out a few hours later, rolls back an addition judged premature.
What 13.26 changes
The 13.x branch, opened on 17 March 2026, keeps to its weekly cadence. 13.26.0 introduces no breaking change, but it thickens the asynchronous processing layer — the one carrying mail delivery, batch work and third-party integrations in most production applications.
The additions split between queue handling, the Eloquent ORM and ecosystem compatibility. The table below summarises the most structural entries in the official changelog.
| Addition | Area | What it enables |
|---|---|---|
Queue::forward() | Queues | Redirect jobs from one queue to another queue or connection without touching dispatch code |
| Debounced listeners | Events | Extend the DebounceFor attribute, already available on jobs, to queued listeners |
JobReleased event | Worker | React when a job is released back onto the queue, with the exception attached on caught failures |
managedQueues() | Cloud queue | Declare queues managed on the Laravel Cloud infrastructure side |
Enums in inOrderOf() | Eloquent | Order a result set by an enum rather than a list of strings |
| Guzzle 8 support | Ecosystem | Bring the HTTP client in line with the library’s latest major |
Queue::forward, rerouting without touching dispatch
The Queue::forward() method answers a recurring need for teams reshaping their queue infrastructure. Until now, changing a job’s destination queue meant editing every dispatch site or introducing a home-grown routing layer. The new method moves that decision to a single place.
use Illuminate\Support\Facades\Queue;
// Redirect a queue to a FIFO queue on an SQS connection
Queue::forward('reports', 'reports.fifo', 'sqs');
// Reroute several queues in one pass
Queue::forward([
'reports' => 'reports.fifo',
'emails' => 'emails.fifo',
], connection: 'sqs');The point is to decouple queue topology from business code. Migrating from Redis to SQS, or introducing a FIFO queue to guarantee ordering, is then driven from the forwarding configuration alone, with no redeployment of the dispatching services.
Moving a job from one queue to another should not force you to reopen the code that dispatches it.
Debounced listeners and the released event
Job debouncing has existed since 13.6.0 through the DebounceFor attribute: when the same event fires in bursts for a given resource, only the last instance runs inside the defined window. 13.26 extends that behaviour to queued listeners, covering the cases where the reactive logic lives in a listener rather than a dedicated job.
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;
class SyncSearchIndex implements ShouldQueue
{
#[DebounceFor(seconds: 30, using: ['product'])]
public function handle(ProductUpdated $event): void
{
// Runs once per product per 30-second window
}
}In parallel, the JobReleased event added to the worker makes releases observable. When a job fails, is caught by a catch() and then released again, the exception is now attached to the event, which makes instrumenting and tracking retries considerably easier.
Worth watching. 13.26.1, published the same day, reverts the addition of orWhereKey and orWhereKeyNot to the Eloquent builder. Pinning 13.26.1 rather than 13.26.0 avoids building on a method withdrawn hours after it landed.
A patch the same day
The 13.26.0 then 13.26.1 sequence inside a single day illustrates how the current branch works: additions arrive fast, and some leave just as fast once an edge case surfaces. For a production project, the rule holds — track patch releases and read the changelog before bumping, rather than automating a blind update to the latest published tag.
Key takeaways
Queue::forward()centralises job rerouting across queues and connections.- Debouncing now applies to queued listeners, not only to jobs.
- The
JobReleasedevent makes releases observable, exception included. - 13.26.1 reverts
orWhereKey: target that patch version.
On my own projects, the part that breaks most often in production is never the controller — it is the queue: a job replaying in a loop, the same event handled ten times over. Debounced listeners and the JobReleased event go exactly where I had been improvising by hand. Forwarding is the one I want most for hosting migrations, where touching dispatch code is always the scary part. — Simon Janvier
Further reading
Official release notes: laravel/framework v13.26.0 on GitHub.
