{"record":{"id":"7b45801ab92b339d","repo":"laravel/framework","slug":"driver-config-driver-is-not-supported","errorCode":null,"errorMessage":"Driver [{$config['driver']}] is not supported.","messagePattern":"Driver \\[(.+?)\\] is not supported\\.","errorType":"exception","errorClass":"InvalidArgumentException","httpStatus":null,"severity":"error","filePath":"src/Illuminate/Broadcasting/BroadcastManager.php","lineNumber":313,"sourceCode":"     * @throws \\InvalidArgumentException\n     * @throws \\RuntimeException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (is_null($config)) {\n            throw new InvalidArgumentException(\"Broadcast connection [{$name}] is not defined.\");\n        }\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($config);\n        }\n\n        $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n        if (! method_exists($this, $driverMethod)) {\n            throw new InvalidArgumentException(\"Driver [{$config['driver']}] is not supported.\");\n        }\n\n        try {\n            return $this->{$driverMethod}($config);\n        } catch (Throwable $e) {\n            throw new RuntimeException(\"Failed to create broadcaster for connection \\\"{$name}\\\" with error: {$e->getMessage()}.\", 0, $e);\n        }\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  array  $config\n     * @return mixed\n     */\n    protected function callCustomCreator(array $config)\n    {\n        return $this->customCreators[$config['driver']]($this->app, $config);","sourceCodeStart":295,"sourceCodeEnd":331,"githubUrl":"https://github.com/laravel/framework/blob/e0f6eb3518ac29fbbca8529e97d0df7fc9f24481/src/Illuminate/Broadcasting/BroadcastManager.php#L295-L331","documentation":"Thrown by BroadcastManager::resolve() when a connection's config exists but its 'driver' value maps to no create{Driver}Driver method on the manager and no custom creator was registered via Broadcast::extend(). The driver is the concrete broadcaster strategy (pusher, ably, redis, log, null).","triggerScenarios":"Declaring a broadcasting connection with a 'driver' that is not one of the built-ins and not registered via Broadcast::extend(); misspelling a driver ('pushe'); using a third-party broadcaster package that is not installed/booted.","commonSituations":"Referencing 'reverb'/'soketi' driver without the package installed; typo in the driver string; a custom broadcaster registered in a service provider that never runs (e.g. deferred provider); config cache from before the package was added.","solutions":["Use a built-in driver (pusher, ably, redis, log, null).","Install and boot the package providing the driver (e.g. composer require laravel/reverb).","Register the custom driver via Broadcast::extend('mydriver', fn (...) => new MyBroadcaster(...)).","Correct the typo in the 'driver' key.","Run php artisan config:clear."],"exampleFix":"// before\n'connections' => [\n    'main' => ['driver' => 'mydriver', ...], // not registered\n],\n\n// after — register in a service provider boot()\nBroadcast::extend('mydriver', function ($app, array $config) {\n    return new \\App\\Broadcasting\\MyBroadcaster($config);\n});\n// or use a built-in: 'driver' => 'pusher'","handlingStrategy":"validation","validationCode":"// PHP — verify the driver is supported\n$name = config('broadcasting.default');\n$driver = config(\"broadcasting.connections.{$name}.driver\");\n$method = 'create' . ucfirst((string) $driver) . 'Driver';\n$resolvable = in_array($driver, ['pusher','ably','redis','log','null'], true)\n    || method_exists(app(\\Illuminate\\Broadcasting\\BroadcastManager::class), $method);\nif (! $resolvable) abort(500, \"Broadcast driver [{$driver}] is not supported.\");","typeGuard":"function broadcastDriverIsBuiltin(?string $driver): bool {\n    return in_array($driver, ['pusher','ably','redis','log','null'], true);\n}","tryCatchPattern":"try {\n    Broadcast::driver($name);\n} catch (\\InvalidArgumentException $e) {\n    report('Unsupported broadcast driver: '.$e->getMessage());\n    throw $e;\n}","preventionTips":["Use a built-in driver unless a custom one is registered via Broadcast::extend().","Install the broadcaster package (Pusher/Ably/Reverb) before using its driver.","Register custom broadcasters in a non-deferred provider's boot()."],"tags":["broadcasting","driver","laravel","configuration"],"backgroundTag":null,"analyzedSha":"e0f6eb3518ac29fbbca8529e97d0df7fc9f24481","analyzedAt":"2026-08-11T20:52:37.562Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}