appsmithorg/appsmith · warning · Error
Failed to send error mail. Admin email(s) not configured, pl
Error message
Failed to send error mail. Admin email(s) not configured, please refer to https://docs.appsmith.com/setup/instance-configuration/disable-user-signup#administrator-emails to configure it.
What it means
The second mail branch in sendBackupErrorToAdmins(): reached only when all six provider vars are truthy but APPSMITH_ADMIN_EMAILS (mailTo) is empty. The SMTP server is configured but there is no recipient list, so the error notification has nowhere to go.
Source
Thrown at app/client/packages/rts/src/ctl/mailer.ts:29
const mailUser = process.env.APPSMITH_MAIL_USERNAME;
const mailPass = process.env.APPSMITH_MAIL_PASSWORD;
const mailTo = process.env.APPSMITH_ADMIN_EMAILS;
console.log("Sending Error mail to admins.");
try {
if (
!mailEnabled ||
!mailFrom ||
!mailHost ||
!mailPort ||
!mailUser ||
!mailPass
) {
throw new Error(
"Failed to send error mail. Email provider is not configured, please refer to https://docs.appsmith.com/setup/instance-configuration/email to configure it.",
);
} else if (!mailTo) {
throw new Error(
"Failed to send error mail. Admin email(s) not configured, please refer to https://docs.appsmith.com/setup/instance-configuration/disable-user-signup#administrator-emails to configure it.",
);
} else if (!mailEnabled) {
throw new Error(
"Mail not sent! APPSMITH_MAIL_ENABLED env val is disabled, please refer to https://docs.appsmith.com/setup/instance-configuration/email to enable it.",
);
} else {
const backupFiles = await utils.listLocalBackupFiles();
const lastBackupfile = backupFiles.pop();
const lastBackupTimestamp = lastBackupfile.match(
/appsmith-backup-(.*)\.tar.gz/,
)[1];
const lastBackupPath = Constants.BACKUP_PATH + "/" + lastBackupfile;
const domainName = process.env.APPSMITH_CUSTOM_DOMAIN;
const instanceName = process.env.APPSMITH_INSTANCE_NAME;
let text =View on GitHub (pinned to 8cd9021c24)
Solutions
- Set APPSMITH_ADMIN_EMAILS to a comma-separated list of admin addresses in runtime.env / container env.
- Restart the RTS so the value is picked up.
- Confirm the var name exactly (APPSMITH_ADMIN_EMAILS, plural) and that addresses are valid.
- Optionally manage admin emails via the Appsmith admin settings UI so the same field stays in sync.
Example fix
# before APPSMITH_MAIL_* fully set # APPSMITH_ADMIN_EMAILS unset # after APPSMITH_ADMIN_EMAILS=ops@example.com,oncall@example.com
Defensive patterns
Strategy: validation
Validate before calling
if (!process.env.APPSMITH_ADMIN_EMAILS) throw new Error('Set APPSMITH_ADMIN_EMAILS to a comma-separated admin list.'); Type guard
const hasAdminEmails = (env: NodeJS.ProcessEnv): boolean => Boolean(env.APPSMITH_ADMIN_EMAILS);
Try / catch
try { await sendBackupErrorToAdmins(err, ts); } catch (e) {
if (/Admin email\(s\) not configured/i.test(e.message)) { log.warn('No admin recipients; alerting via other channel'); }
else throw e;
} Prevention
- Set APPSMITH_ADMIN_EMAILS (plural) at install time.
- Manage the list in the admin settings UI to keep it in sync.
- Validate email syntax before saving the list.
When it happens
Trigger: SMTP fully configured, but APPSMITH_ADMIN_EMAILS is unset/empty when a backup fails and the RTS attempts to notify administrators.
Common situations: Admin emails never set on a new instance; comma-separated list left empty after removing an admin; var name typo (e.g. APPSMITH_ADMIN_EMAIL singular).
Related errors
- Failed to send error mail. Email provider is not configured,
- Mail not sent! APPSMITH_MAIL_ENABLED env val is disabled, pl
- Database URL not found. Please check APPSMITH_DB_URL or APPS
- Redis URL not found. Please check APPSMITH_REDIS_URL configu
- The NODE_ENV environment variable is required but was not sp
AI-assisted analysis of appsmithorg/appsmith@8cd9021c24 (2026-08-12).
Data as JSON: /api/errors/0b442353e24efbde.
Report an issue: GitHub.