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

  1. Use a class that implements Intervention\Image\Interfaces\DriverInterface (Gd\Driver or Imagick\Driver)
  2. If using a custom driver, make it implement DriverInterface
  3. 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.