<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex" -->

---
title: Queue::forward(): Reroute Laravel Queues in One Place
description: Laravel 13.26 introduces Queue::forward(), which lets developers reroute queued jobs to a different queue name, connection, or both from a single service...
canonical: https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Queue::forward(): Reroute Laravel Queues in One Place | daily.dev
og:description: Laravel 13.26 introduces Queue::forward(), which lets developers reroute queued jobs to a different queue name, connection, or both from a single service...
og:url: https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex
og:image: https://api.daily.dev/og/posts/eViP2uLEx.png
og:image:alt: Queue::forward(): Reroute Laravel Queues in One Place
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Queue::forward(): Reroute Laravel Queues in One Place

**[Laravel News](https://daily.dev/sources/ln)** · 4 min read · 10 upvotes · 1 comments

## Summary

Laravel 13.26 introduces Queue::forward(), which lets developers reroute queued jobs to a different queue name, connection, or both from a single service provider call, without touching job classes, dispatch sites, or third-party packages. Forwards apply only to newly dispatched jobs, so cutovers require draining old queues; running both names long-term risks race conditions. It complements the queue pause API from Laravel 13.25 and debounced queued listeners shipped in the same release.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://laravel-news.com/laravel-queue-forward>

## Questions this post answers

### What does Queue::forward() do in Laravel 13.26?

Queue::forward() lets you reroute jobs dispatched to a given queue name to a different queue name, a different connection, or both, declared in one place such as a service provider's boot() method. Job classes, dispatch calls, and third-party packages keep referencing the original queue name; the forward changes where it actually lands. It resolves through the same getConnection() hook used by Queue::route(), and supports mapping multiple queues at once.

_daily.dev tracks framework releases like this one for developers managing Laravel queue infrastructure._

### Does Laravel's Queue::forward() move jobs that are already waiting in a queue?

No, forwarding only applies at dispatch time to jobs entering the queue after the forward is registered; jobs already sitting on the old queue stay there. A cutover requires letting workers drain the old queue name until empty, then retiring those workers, since running workers against both the original and forwarded names long-term risks race conditions.

_developers planning queue cutovers can follow migration nuances like this via daily.dev._

### How is Laravel's new Queue::forward() different from the queue pause feature added in Laravel 13.25?

Queue::forward(), added in Laravel 13.26, rewrites the destination of dispatched jobs by renaming the queue, changing the connection, or both, without pausing or throttling anything. The queue pause API from Laravel 13.25 instead stops consumption of a queue entirely. The two are complementary: one redirects traffic, the other halts it.

_daily.dev helps developers comparing Laravel's queue control features stay current on each release._

## Community discussion

Top comments from developers on daily.dev.

**@pdfopsdev** · 0 upvotes

> the drain-before-switch caveat is the part people will skip and regret. running workers against both the old and forwarded queue name at once is a classic split-brain setup, you'll get jobs processed twice or dropped depending on timing.

## Similar posts on daily.dev

- [Debounceable Queued Jobs in Laravel 13.6.0](https://daily.dev/posts/debounceable-queued-jobs-in-laravel-13-6-0-po9ifu40t) · Laravel News · 26 upvotes · 3 comments
- [Deferred Queue Driver in Laravel 12.35](https://daily.dev/posts/deferred-queue-driver-in-laravel-12-35-mkn97zqpx) · FREEK.DEV · 21 upvotes · 0 comments
- [Read-Through Disks and Debounced Listeners in Laravel 13.26](https://daily.dev/posts/read-through-disks-and-debounced-listeners-in-laravel-13-26-dwsybwxb0) · Laravel News · 10 upvotes · 0 comments

---

Tags: [#php](https://daily.dev/tags/php), [#laravel](https://daily.dev/tags/laravel), [#distributed-systems](https://daily.dev/tags/distributed-systems), [#redis](https://daily.dev/tags/redis)

[View this post on daily.dev](https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Queue::forward(): Reroute Laravel Queues in One Place","url":"https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex"},"datePublished":"2026-08-20T14:24:55.830Z","dateModified":"2026-09-14T07:07:20.379Z","description":"Laravel 13.26 introduces Queue::forward(), which lets developers reroute queued jobs to a different queue name, connection, or both from a single service...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/198fa621f091f24a7927b9ca3dd8e942?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/198fa621f091f24a7927b9ca3dd8e942?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Laravel News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Laravel News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ln","url":"https://daily.dev/sources/ln"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"php,laravel,distributed-systems,redis","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Laravel News","item":"https://daily.dev/sources/ln"},{"@type":"ListItem","position":3,"name":"Queue::forward(): Reroute Laravel Queues in One Place"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex","comment":[{"@type":"Comment","text":"the drain-before-switch caveat is the part people will skip and regret. running workers against both the old and forwarded queue name at once is a classic split-brain setup, you’ll get jobs processed twice or dropped depending on timing.","datePublished":"2026-08-21T18:04:36.304Z","url":"https://daily.dev/posts/eViP2uLEx#c-VBOX3QhbD","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/queue-forward-reroute-laravel-queues-in-one-place-evip2ulex#faq","mainEntity":[{"@type":"Question","name":"What does Queue::forward() do in Laravel 13.26?","acceptedAnswer":{"@type":"Answer","text":"Queue::forward() lets you reroute jobs dispatched to a given queue name to a different queue name, a different connection, or both, declared in one place such as a service provider's boot() method. Job classes, dispatch calls, and third-party packages keep referencing the original queue name; the forward changes where it actually lands. It resolves through the same getConnection() hook used by Queue::route(), and supports mapping multiple queues at once. daily.dev tracks framework releases like this one for developers managing Laravel queue infrastructure."}},{"@type":"Question","name":"Does Laravel's Queue::forward() move jobs that are already waiting in a queue?","acceptedAnswer":{"@type":"Answer","text":"No, forwarding only applies at dispatch time to jobs entering the queue after the forward is registered; jobs already sitting on the old queue stay there. A cutover requires letting workers drain the old queue name until empty, then retiring those workers, since running workers against both the original and forwarded names long-term risks race conditions. developers planning queue cutovers can follow migration nuances like this via daily.dev."}},{"@type":"Question","name":"How is Laravel's new Queue::forward() different from the queue pause feature added in Laravel 13.25?","acceptedAnswer":{"@type":"Answer","text":"Queue::forward(), added in Laravel 13.26, rewrites the destination of dispatched jobs by renaming the queue, changing the connection, or both, without pausing or throttling anything. The queue pause API from Laravel 13.25 instead stops consumption of a queue entirely. The two are complementary: one redirects traffic, the other halts it. daily.dev helps developers comparing Laravel's queue control features stay current on each release."}}]}
```

