coollabsio/coolify · error · Exception
No email settings found.
Error message
No email settings found.
What it means
TransactionalEmailChannel::bootConfigs() calls set_transanctional_email_settings(), which reads instance settings and returns null unless smtp_enabled or resend_enabled is on. A null means no transactional email backend was configured at instance level, so the channel refuses to send and throws — protecting callers from silently dropping mail through an unconfigured transport.
Source
Thrown at app/Notifications/Channels/TransactionalEmailChannel.php:44
return;
}
$this->bootConfigs();
$mailMessage = $notification->toMail($notifiable);
Mail::send(
[],
[],
fn (Message $message) => $message
->to($email)
->subject($mailMessage->subject)
->html((string) $mailMessage->render())
);
}
private function bootConfigs(): void
{
$type = set_transanctional_email_settings();
if (blank($type)) {
throw new Exception('No email settings found.');
}
}
}
View on GitHub (pinned to 70b9acc424)
Solutions
- As instance admin, configure SMTP or Resend under Settings (instance email settings) and enable the provider.
- Verify the enabled flag actually saved (smtp_enabled/resend_enabled true on InstanceSettings) — connection test in the UI confirms.
- Re-trigger the transactional send after enabling.
- If email is deliberately unused, avoid flows that invoke transactional channels.
Defensive patterns
Strategy: validation
Validate before calling
// Feature-gate flows that need transactional email
$settings = instanceSettings();
if (! $settings->smtp_enabled && ! $settings->resend_enabled) {
// hide/disable email-dependent actions with a 'configure email first' notice
} Try / catch
catch (Exception $e) { if ($e->getMessage() === 'No email settings found.') { degrade gracefully: persist the pending action and prompt the admin to configure SMTP/Resend; do not retry until enabled. } else { throw $e; } } Prevention
- Make email configuration part of the post-install checklist before inviting users.
- Show an instance-level banner when email-dependent features are used without a transport.
- Monitor the enabled flags: disabling both providers breaks transactional mail silently.
When it happens
Trigger: Fresh Coolify install where SMTP/Resend was never set up; admin disabled both providers later; instance settings row missing/misconfigured (e.g. after restore); sending invitation or other transactional mail before completing email setup.
Common situations: Post-install setup order: creating teams/invitations before configuring email; disabling SMTP while migrating to Resend and leaving a gap; password-reset-adjacent transactional flows failing on new instances.
Related errors
- No email settings found.
- No email recipients found
- Recipient is not part of the team
- Pre-deployment command: Could not find a valid container. Is
- Post-deployment command: Could not find a valid container. I
AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17).
Data as JSON: /api/errors/a6e7261b8bc38789.
Report an issue: GitHub.