Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

NicolJamie's avatar

Laravel Reverb, App key {key} not in this cluster.

Hello,

I've currently stuck on an issue. Where I have an event that is setup to broadcast, however I am getting the following error when Horizon tries to process the event to broadcast.

Illuminate\Broadcasting\BroadcastException: Pusher error: App key {key} not in this cluster. Did you forget to specify the cluster?

I am currently setting this up on my local, using Laravel Sail. The only configuration I've made to Laravel Sail is adding this to the port of the server I am running Reverb on

- '${REVERB_SERVER_PORT:-8080}:8080'

My assumption is Reverb uses Pushers Libaries in order to push the Event & it's potentially having some cross-over. But I could be wrong. My Event class is setup like this

<?php

namespace App\Events;

use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Contracts\Events\ShouldDispatchAfterCommit;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

final class SetToPending implements ShouldBroadcast, ShouldDispatchAfterCommit
{
    use Dispatchable;
    use SerializesModels;

And of-course this is how I've setup my broadcasting config files.

Whilst the reverb config file is setup like the following.

Just for consolation, the frontend Laravel Echo libaray is successfull connected & authenticated to the correct Private channel.

0 likes
3 replies
vincent15000's avatar

Have you tried to replace ShouldBroadcast by ShouldBroadcastNow ?

Amankhalsa's avatar

Laravel Reverb doesn't require Pusher unless you're still using pusher as a driver. If you're using Reverb as a replacement for Pusher, you should change your broadcasting driver to reverb, and not use Pusher credentials at all.

Run Tinker:

php artisan tinker

Then paste this inside Tinker:

echo 'REVERB_APP_ID=' . random_int(100000, 999999) . PHP_EOL;
echo 'REVERB_APP_KEY=' . \Illuminate\Support\Str::random(20) . PHP_EOL;
echo 'REVERB_APP_SECRET=' . \Illuminate\Support\Str::random(32) . PHP_EOL;

You'll get output like:

REVERB_APP_ID=123456
REVERB_APP_KEY=somerandomstringhere
REVERB_APP_SECRET=longersecuresecretstringhere

REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

Copy these and paste them into your .env file.

After updating your .env, don’t forget to clear the config cache:

php artisan config:clear

php artisan config:cache
php artisan reverb:restart

php artisan reverb:start  --debug

And Should use

use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;

implements ShouldBroadcastNow
1 like

Please or to participate in this conversation.