From 65beecf265fc15ae60a133d659bcafe4da86fef7 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 31 Mar 2026 16:32:33 +0200 Subject: [PATCH] BroadcastingConfigBootstrapper: clear the `Broadcast` facade's resolved `Broadcasting\Factory` instance After initializing tenancy, calls like `Broadcast::auth()` use the central `BroadcastManager`. Clearing the facade's resolved `Broadcasting\Factory` instance fixes that problem. --- src/Bootstrappers/BroadcastingConfigBootstrapper.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Bootstrappers/BroadcastingConfigBootstrapper.php b/src/Bootstrappers/BroadcastingConfigBootstrapper.php index 6f0e8fbc..41c6bc7f 100644 --- a/src/Bootstrappers/BroadcastingConfigBootstrapper.php +++ b/src/Bootstrappers/BroadcastingConfigBootstrapper.php @@ -11,6 +11,8 @@ use Illuminate\Foundation\Application; use Stancl\Tenancy\Contracts\TenancyBootstrapper; use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Overrides\TenancyBroadcastManager; +use Illuminate\Support\Facades\Broadcast; +use Illuminate\Contracts\Broadcasting\Factory as BroadcastingFactory; class BroadcastingConfigBootstrapper implements TenancyBootstrapper { @@ -81,6 +83,10 @@ class BroadcastingConfigBootstrapper implements TenancyBootstrapper $this->app->extend(Broadcaster::class, function (Broadcaster $broadcaster) { return $this->app->make(BroadcastManager::class)->connection(); }); + + // Clear the resolved Broadcast facade instance so that it gets re-resolved as the tenant broadcast manager + // when used (e.g. in BroadcastController::authenticate) + Broadcast::clearResolvedInstance(BroadcastingFactory::class); } public function revert(): void @@ -89,6 +95,9 @@ class BroadcastingConfigBootstrapper implements TenancyBootstrapper $this->app->singleton(BroadcastManager::class, fn (Application $app) => $this->originalBroadcastManager); $this->app->singleton(Broadcaster::class, fn (Application $app) => $this->originalBroadcaster); + // Clear the resolved Broadcast facade instance so that it gets re-resolved as the central broadcast manager + Broadcast::clearResolvedInstance(BroadcastingFactory::class); + $this->unsetConfig(); }