{"record":{"id":"05f86ecbc3e753f3","repo":"HKUDS/DeepTutor","slug":"username-already-taken","errorCode":null,"errorMessage":"Username already taken","messagePattern":"Username already taken","errorType":"http","errorClass":"HTTPException","httpStatus":409,"severity":"error","filePath":"deeptutor/api/routers/auth.py","lineNumber":544,"sourceCode":"        return {\n            \"ok\": True,\n            \"user_id\": result.get(\"id\", \"\"),\n            \"username\": body.username,\n            \"role\": \"user\",\n            \"is_first_user\": True,\n            \"is_admin\": False,\n        }\n\n    # Standard mode — only allowed before the first admin exists.\n    if not is_first_user():\n        raise HTTPException(\n            status_code=status.HTTP_403_FORBIDDEN,\n            detail=\"Self-registration is closed. Ask an administrator to create your account.\",\n        )\n\n    existing = {u[\"username\"] for u in list_users()}\n    if body.username in existing:\n        raise HTTPException(\n            status_code=status.HTTP_409_CONFLICT,\n            detail=\"Username already taken\",\n        )\n\n    add_user(body.username, body.password)\n    user_id = \"\"\n    role = \"user\"\n    for item in list_users():\n        if item.get(\"username\") == body.username:\n            user_id = str(item.get(\"id\") or \"\")\n            role = str(item.get(\"role\") or \"user\")\n            break\n    logger.info(f\"First user (admin) registered: '{body.username}'\")\n    return {\n        \"ok\": True,\n        \"user_id\": user_id,\n        \"username\": body.username,\n        \"role\": role,","sourceCodeStart":526,"sourceCodeEnd":562,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/auth.py#L526-L562","documentation":"Error \"Username already taken\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/auth.py:544 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}