gitroomhq/postiz-app · warning · Error
Email with plus sign is not allowed
Error message
Email with plus sign is not allowed
What it means
Signup guard that rejects LOCAL provider registrations when the email contains a '+' and the DISALLOW_PLUS env var is set. Plus-addressing (user+tag@domain.com) can be used to create multiple accounts from one mailbox, so some deployments disable it.
Source
Thrown at apps/backend/src/services/auth/auth.service.ts:44
process.env.DISABLE_REGISTRATION !== 'true' ||
provider === Provider.GENERIC
) {
return true;
}
return (await this._organizationService.getCount()) === 0;
}
async routeAuth(
provider: Provider,
body: CreateOrgUserDto | LoginUserDto,
ip: string,
userAgent: string,
addToOrg?: boolean | { orgId: string; role: 'USER' | 'ADMIN'; id: string }
) {
if (provider === Provider.LOCAL) {
if (process.env.DISALLOW_PLUS && body.email.includes('+')) {
throw new Error('Email with plus sign is not allowed');
}
if (body instanceof CreateOrgUserDto) {
body.email = body.email.toLowerCase();
}
const user = await this._userService.getUserByEmail(body.email);
if (body instanceof CreateOrgUserDto) {
if (user) {
throw new Error('Email already exists');
}
if (!(await this.canRegister(provider))) {
throw new Error('Registration is disabled');
}
const create = await this._organizationService.createOrgAndUser(
body,
ip,
userAgentView on GitHub (pinned to 0f1647f749)
Solutions
- Register with an email without a '+' alias
- Unset or remove DISALLOW_PLUS from the environment if plus-addressing should be allowed
- Strip or normalize plus-addressed emails before submitting
Example fix
# before DISALLOW_PLUS=true # after DISALLOW_PLUS=
Defensive patterns
Strategy: validation
Validate before calling
const email = 'user+tag@example.com';
if (process.env.DISALLOW_PLUS && email.includes('+')) {
throw new Error('Choose an email without a plus alias');
}
await signup({ email }); Type guard
const isPlusFreeEmail = (email: string) => !email.includes('+'); Prevention
- Normalize/strip plus aliases client-side when the deployment disallows them
- Document the DISALLOW_PLUS policy on the signup form
When it happens
Trigger: POSTing to /auth with provider=LOCAL while DISALLOW_PLUS is truthy and body.email includes '+'.
Common situations: Operator set DISALLOW_PLUS=true to prevent abuse; users who legitimately use Gmail-style plus addressing then cannot register.
Related errors
- Registration is disabled
- All media must be uploaded through our upload API route and
- Failed to generate auth URL
- Forbidden
- Account is already activated
AI-assisted analysis of gitroomhq/postiz-app@0f1647f749 (2026-08-27).
Data as JSON: /api/errors/d05ee9d757235b09.
Report an issue: GitHub.