mem0ai/mem0 · error · HTTPException
Registration is closed. An admin account already exists.
Error message
Registration is closed. An admin account already exists.
What it means
Error "Registration is closed. An admin account already exists." thrown in mem0ai/mem0.
Source
Thrown at server/routers/auth.py:101
class SetupStatusResponse(BaseModel):
needsSetup: bool
@router.get("/setup-status", response_model=SetupStatusResponse)
def setup_status(db: Session = Depends(get_db)):
count = db.scalar(select(func.count(User.id)))
return SetupStatusResponse(needsSetup=count == 0)
@router.post("/register", response_model=TokenResponse)
@limiter.limit("5/minute")
def register(request: Request, body: RegisterRequest, db: Session = Depends(get_db)):
"""Create the first admin account. Blocked once any user exists."""
_require_password_length(body.password)
if db.scalar(select(func.count(User.id))) > 0:
raise HTTPException(status_code=403, detail="Registration is closed. An admin account already exists.")
user = User(
name=body.name,
email=body.email,
password_hash=hash_password(body.password),
role="admin",
)
db.add(user)
try:
db.commit()
except IntegrityError:
db.rollback()
raise HTTPException(status_code=403, detail="Registration is closed. An admin account already exists.")
db.refresh(user)
capture_admin_registered(email=body.email)
return TokenResponse(View on GitHub (pinned to 001c235229)
Solutions
- Registration is closed after the first admin account; log in with the existing account or reset the database.
When it happens
Trigger: Thrown at server/routers/auth.py:101 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/0da4946ce9194e89.
Report an issue: GitHub.