{"record":{"id":"1127275014f871dc","repo":"HKUDS/DeepTutor","slug":"incorrect-username-or-password","errorCode":null,"errorMessage":"Incorrect username or password","messagePattern":"Incorrect username or password","errorType":"http","errorClass":"HTTPException","httpStatus":401,"severity":"error","filePath":"deeptutor/api/routers/auth.py","lineNumber":465,"sourceCode":"            raise HTTPException(\n                status_code=status.HTTP_401_UNAUTHORIZED,\n                detail=\"Incorrect email or password\",\n            )\n        payload, pb_token = pb_result\n        response.set_cookie(value=pb_token, max_age=_COOKIE_MAX_AGE, **_cookie_attrs())\n        logger.info(f\"User '{payload.username}' logged in via PocketBase (role={payload.role!r})\")\n        return {\n            \"ok\": True,\n            \"user_id\": payload.user_id,\n            \"username\": payload.username,\n            \"role\": payload.role,\n            \"is_admin\": payload.role == \"admin\",\n        }\n\n    # Standard JWT + bcrypt mode\n    result = authenticate(body.username, body.password)\n    if not result:\n        raise HTTPException(\n            status_code=status.HTTP_401_UNAUTHORIZED,\n            detail=\"Incorrect username or password\",\n        )\n\n    token = create_token(result.username, result.role, result.user_id)\n    response.set_cookie(value=token, max_age=_COOKIE_MAX_AGE, **_cookie_attrs())\n\n    logger.info(f\"User '{result.username}' logged in (role={result.role!r})\")\n    return {\n        \"ok\": True,\n        \"user_id\": result.user_id,\n        \"username\": result.username,\n        \"role\": result.role,\n        \"is_admin\": result.role == \"admin\",\n    }\n\n\n@router.post(\"/logout\")","sourceCodeStart":447,"sourceCodeEnd":483,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/auth.py#L447-L483","documentation":"Error \"Incorrect username or password\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/auth.py:465 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"}