Seldaek/monolog · error · MissingExtensionException
The curl extension is needed to use the SendGridHandler
Error message
The curl extension is needed to use the SendGridHandler
What it means
Error "The curl extension is needed to use the SendGridHandler" thrown in Seldaek/monolog.
Source
Thrown at src/Monolog/Handler/SendGridHandler.php:53
/**
* @param string|null $apiUser Unused user as of SendGrid API v3, you can pass null or any string
* @param list<string>|string $to
* @param non-empty-string $apiHost Allows you to use another endpoint (e.g. api.eu.sendgrid.com)
* @throws MissingExtensionException If the curl extension is missing
*/
public function __construct(
string|null $apiUser,
protected string $apiKey,
protected string $from,
array|string $to,
protected string $subject,
int|string|Level $level = Level::Error,
bool $bubble = true,
/** @var non-empty-string */
private readonly string $apiHost = 'api.sendgrid.com',
) {
if (!\extension_loaded('curl')) {
throw new MissingExtensionException('The curl extension is needed to use the SendGridHandler');
}
$this->to = (array) $to;
// @phpstan-ignore property.deprecated
$this->apiUser = $apiUser ?? '';
parent::__construct($level, $bubble);
}
protected function send(string $content, array $records): void
{
$body = [];
$body['personalizations'] = [];
$body['from']['email'] = $this->from;
foreach ($this->to as $recipient) {
$body['personalizations'][]['to'][]['email'] = $recipient;
}
$body['subject'] = $this->subject;
View on GitHub (pinned to 57eb102834)
When it happens
Trigger: Thrown at src/Monolog/Handler/SendGridHandler.php:53 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Seldaek/monolog@57eb102834 (2026-08-17).
Data as JSON: /api/errors/99d2c7ee21bd542c.
Report an issue: GitHub.