Budibase/budibase · error · HTTPError
Please contact your platform administrator, SMTP is not conf
Error message
Please contact your platform administrator, SMTP is not configured.
What it means
The password reset flow sends an email containing the reset link, so it requires a configured email transport. reset checks emails.isEmailConfigured() and, if no SMTP configuration exists for the tenant, throws an HTTPError 400 telling the requester to contact their platform administrator.
Source
Thrown at packages/worker/src/sdk/auth/auth.ts:58
invalidatedSessionCount: sessionResult.invalidatedSessionCount,
}
}
export async function logout(opts: PlatformLogoutOpts) {
// TODO: This should be moved out of core and into worker only
// account-portal can call worker endpoint
return authCore.platformLogout(opts)
}
// PASSWORD MANAGEMENT
/**
* Reset the user password, used as part of a forgotten password flow.
*/
export const reset = async (email: string) => {
const configured = await emails.isEmailConfigured()
if (!configured) {
throw new HTTPError(
"Please contact your platform administrator, SMTP is not configured.",
400
)
}
const user = await userSdk.core.getGlobalUserByEmail(email)
// exit if user doesn't exist
if (!user) {
return
}
// exit if user has sso
if (await userSdk.db.isPreventPasswordActions(user)) {
return
}
// send password reset
await emails.sendEmail(email, EmailTemplatePurpose.PASSWORD_RECOVERY, {View on GitHub (pinned to a81a902e9a)
Solutions
- Configure SMTP in the workspace/platform admin email settings (host, port, user, password, from address)
- Set the SMTP environment variables (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD) for self-hosted deployments
- Verify the email config is saved for the correct tenant and hasn't been disabled
- As an admin, use an alternative account-recovery path while SMTP is unavailable
Example fix
// environment before # (no SMTP vars set) // after (self-hosted .env) SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USER=no-reply@example.com SMTP_PASSWORD=secret
Defensive patterns
Strategy: try-catch
Validate before calling
const configured = await emails.isEmailConfigured()
if (!configured) throw new Error("SMTP must be configured before password resets") Type guard
null
Try / catch
try {
await api.requestPasswordReset(email)
} catch (e) {
if (e.message.includes("SMTP is not configured")) {
notify("Email is not set up for this platform; contact your administrator")
}
} Prevention
- Configure SMTP during initial platform setup
- Monitor isEmailConfigured in health checks
- Keep SMTP credentials valid and rotated before expiry
When it happens
Trigger: POSTing to the forgotten-password / reset endpoint when the tenant/workspace has no SMTP configuration set up (no admin-configured email settings and no fallback SMTP env vars).
Common situations: Fresh self-hosted install where SMTP was never configured; cloud tenant where the admin hasn't set up email; SMTP config was deleted or credentials expired so isEmailConfigured returns false; users attempting password recovery before admin onboarding completed.
Related errors
- SMTP password is required
- Email trigger inputs are required
- User must be provided for password recovery.
- Workspace DB not found - self-host users using cloud don't h
- CouchDB username not set
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/8955cd31f6fdb184.
Report an issue: GitHub.