Intervention/image · error · Intervention\Image\Exceptions\InvalidArgumentException
Argument $driver must be an implementation of Intervention\I
Error message
Argument $driver must be an implementation of Intervention\Image\Interfaces\DriverInterface
What it means
Error "Argument $driver must be an implementation of Intervention\Image\Interfaces\DriverInterface" thrown in Intervention/image.
Source
Thrown at src/Traits/CanResolveDriver.php:26
use Intervention\Image\Interfaces\DriverInterface;
trait CanResolveDriver
{
/**
* Resolve given string or driver to a driver instance with given options.
*
* @throws InvalidArgumentException
*/
protected static function resolveDriver(string|DriverInterface $driver, mixed ...$options): DriverInterface
{
if (is_string($driver) && !class_exists($driver)) {
throw new InvalidArgumentException(
'Argument $driver must be existing class name',
);
}
if (is_string($driver) && !is_subclass_of($driver, DriverInterface::class)) {
throw new InvalidArgumentException(
'Argument $driver must be an implementation of ' . DriverInterface::class,
);
}
$driver = is_string($driver) ? new $driver() : $driver;
$driver->config()->setOptions(...$options);
return $driver;
}
}
View on GitHub (pinned to 5598b9e397)
Solutions
- Use a class that implements Intervention\Image\Interfaces\DriverInterface (Gd\Driver or Imagick\Driver)
- If using a custom driver, make it implement DriverInterface
- Check use-statements so the resolved class is the intended driver, not a same-named class
When it happens
Trigger: Thrown at src/Traits/CanResolveDriver.php:26 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Intervention/image@5598b9e397 (2026-08-23).
Data as JSON: /api/errors/f3d048d01653542e.
Report an issue: GitHub.