{"record":{"id":"043312f4edeac620","repo":"n8n-io/n8n","slug":"please-contact-your-administrator-error-message","errorCode":null,"errorMessage":"Please contact your administrator: ${error.message}","messagePattern":"Please contact your administrator: (.+?)","errorType":"exception","errorClass":"InternalServerError","httpStatus":500,"severity":"error","filePath":"packages/cli/src/controllers/password-reset.controller.ts","lineNumber":143,"sourceCode":"\t\t\t}\n\n\t\t\tconst url = this.authService.generatePasswordResetUrl(user);\n\n\t\t\tconst { id, firstName } = user;\n\t\t\ttry {\n\t\t\t\tawait this.mailer.passwordReset({\n\t\t\t\t\temail,\n\t\t\t\t\tfirstName,\n\t\t\t\t\tpasswordResetUrl: url,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthis.eventService.emit('email-failed', {\n\t\t\t\t\tuser,\n\t\t\t\t\tmessageType: 'Reset password',\n\t\t\t\t\tpublicApi: false,\n\t\t\t\t});\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tthrow new InternalServerError(\n\t\t\t\t\t\t`Please contact your administrator: ${error.message}`,\n\t\t\t\t\t\terror,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.logger.info('Sent password reset email successfully', { userId: user.id, email });\n\t\t\tthis.eventService.emit('user-transactional-email-sent', {\n\t\t\t\tuserId: id,\n\t\t\t\tmessageType: 'Reset password',\n\t\t\t\tpublicApi: false,\n\t\t\t});\n\n\t\t\tthis.eventService.emit('user-password-reset-request-click', { user });\n\t\t} catch (error) {\n\t\t\t// Catch any unexpected errors to prevent information leakage\n\t\t\tthis.errorReporter.error(\n\t\t\t\tnew Error('Unexpected error in forgot password endpoint', { cause: error }),","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/cli/src/controllers/password-reset.controller.ts#L125-L161","documentation":"The password-reset email could not be sent and the underlying failure from the mailer is wrapped as a 500 InternalServerError with the original error message appended. n8n re-surfaces the mailer's message directly because the cause is almost always mail infrastructure (SMTP connection, authentication, relay rejection).","triggerScenarios":"mailer.passwordReset() throws inside the password-reset controller — SMTP connection refused, auth credentials rejected by the relay, recipient address refused, or the mail provider timing out.","commonSituations":"N8N_SMTP_* / N8N_EMAIL_* env vars missing or wrong; outbound network/egress to the SMTP host blocked; in dev the mailpit/maildev container is not running; relay rate-limits or blocks the n8n host.","solutions":["Verify the SMTP env vars (host, port, user, pass, sender) and that the credentials are still valid.","Test SMTP connectivity from the n8n host (telnet/openssl to the SMTP host:port) and check firewall/egress rules.","Inspect server logs for the original mailer error message that is appended to 'Please contact your administrator:'.","In local dev, start the mailpit container (pnpm --filter n8n-containers services --services mailpit) and point SMTP at it."],"exampleFix":"// before: missing/misconfigured mailer\n// .env\n// N8N_EMAIL_MODE=smtp\n// N8N_SMTP_HOST=smtp.example.com\n// N8N_SMTP_PORT=587\n// after\nN8N_EMAIL_MODE=smtp\nN8N_SMTP_HOST=smtp.example.com\nN8N_SMTP_PORT=587\nN8N_SMTP_USER=apikey\nN8N_SMTP_PASS=<secret-from-env-not-arg>\nN8N_SMTP_SENDER=noreply@example.com\nN8N_SMTP_SSL_STRICT=true","handlingStrategy":"try-catch","validationCode":"// Pre-flight: verify SMTP env vars are set before relying on the flow.\nfunction smtpConfigured(env = process.env) {\n  return Boolean(env.N8N_SMTP_HOST && env.N8N_SMTP_PORT);\n}\n// optionally open a test SMTP connection from the host before invoking reset","typeGuard":null,"tryCatchPattern":"try {\n  await api.post('/forgot-password', { email });\n} catch (e) {\n  if (e.status === 500 && /Please contact your administrator/.test(e.message)) {\n    // surface the appended mailer message and alert ops to check SMTP\n  } else { throw e; }\n}","preventionTips":["Run SMTP connectivity checks as part of deployment health checks.","Keep secrets in env vars, never on the command line.","Use mailpit in dev so the mailer path always has a target."],"tags":["email","smtp","mailer","config","infrastructure"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}