langgenius/dify · error · AccountInFreezeError
account_in_freeze
account_in_freeze
Error message
This email account has been deleted within the past 30 daysand is temporarily unavailable for new account registration.
What it means
Raised as AccountInFreezeError (code 'account_in_freeze') on DeploymentEdition.CLOUD when BillingService.is_email_in_freeze(account.email) is true — the email was deleted within the last 30 days and is blocked from re-registration or re-activation on cloud.
Source
Thrown at api/controllers/console/auth/activate.py:168
"""
normalized_request_email = req_data.email.lower() if req_data.email else None
invitation = RegisterService.get_invitation_with_case_fallback(
req_data.workspace_id, req_data.email, req_data.token, session=db.session()
)
if invitation is None:
raise AlreadyActivateError()
account = invitation["account"]
if extract_access_token(request):
current_account, _ = current_account_with_tenant()
if current_account.id != account.id:
raise InvitationAccountMismatchError()
if dify_config.DEPLOYMENT_EDITION == DeploymentEdition.CLOUD and BillingService.is_email_in_freeze(
account.email
):
raise AccountInFreezeError()
tenant = invitation["tenant"]
raw_role = invitation["data"].get("role")
try:
role = TenantAccountRole(raw_role) if raw_role else TenantAccountRole.NORMAL
except ValueError:
role = TenantAccountRole.NORMAL
if not TenantAccountRole.is_non_owner_role(role):
role = TenantAccountRole.NORMAL
membership_id = db.session.scalar(
select(TenantAccountJoin.id).where(
TenantAccountJoin.tenant_id == tenant.id,
TenantAccountJoin.account_id == account.id,
)
)
requires_setup = invitation["data"].get("requires_setup")View on GitHub (pinned to ef8544b173)
Solutions
- Wait until the 30-day freeze window elapses, then retry activation/registration.
- Contact support to have the email manually unfrozen if the deletion was a mistake.
- Use a different email address to accept the invitation now.
Defensive patterns
Strategy: try-catch
Try / catch
try {
await post('/activate', payload);
} catch (e) {
if (e.code === 'account_in_freeze') {
// show: 'email unavailable for 30 days after deletion; contact support or use another email'
} else { throw e; }
} Prevention
- Don't delete-then-recreate the same email expecting immediate reuse on Cloud.
- Use a distinct email or wait out the freeze window.
When it happens
Trigger: POST /console/api/activate (or /email-register/send) on the Cloud edition for an email whose account was deleted within the past 30 days; BillingService still reports it as frozen.
Common situations: User deleted their account and immediately tries to re-register/accept a new invite with the same email; admin re-invites a recently removed member before the freeze window elapses.
Related errors
AI-assisted analysis of langgenius/dify@ef8544b173 (2026-08-12).
Data as JSON: /api/errors/5637cfd8f312dd0c.
Report an issue: GitHub.