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

  1. As instance admin, configure SMTP or Resend under Settings (instance email settings) and enable the provider.
  2. Verify the enabled flag actually saved (smtp_enabled/resend_enabled true on InstanceSettings) — connection test in the UI confirms.
  3. Re-trigger the transactional send after enabling.
  4. 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

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


AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17). Data as JSON: /api/errors/a6e7261b8bc38789. Report an issue: GitHub.