{"record":{"id":"a7374069d152d336","repo":"Leantime/leantime","slug":"oidc-user-creation-failed","errorCode":null,"errorMessage":"OIDC user creation failed.","messagePattern":"OIDC user creation failed\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"app/Domain/Oidc/Services/Oidc.php","lineNumber":255,"sourceCode":"                    'lastname' => $this->readMultilayerKey($userInfo, $this->fieldLastName),\n                    'phone' => $this->readMultilayerKey($userInfo, $this->fieldPhone),\n                    'jobTitle' => $this->readMultilayerKey($userInfo, $this->fieldJobtitle),\n                    'jobLevel' => $this->readMultilayerKey($userInfo, $this->fieldJoblevel),\n                    'department' => $this->readMultilayerKey($userInfo, $this->fieldDepartment),\n                    'user' => $userName,\n                    'role' => $this->defaultRole,\n                    'password' => '',\n                    'clientId' => '',\n                    'source' => 'oidc',\n                    'status' => 'a',\n                ];\n\n                $userId = $this->userRepo->addUser($userArray);\n\n                if ($userId !== false) {\n                    $user = $this->userRepo->getUserByEmail($userName);\n                } else {\n                    throw new \\Exception('OIDC user creation failed.');\n                }\n            } else {\n                $this->displayError('oidc.error.user_not_found');\n            }\n        } else {\n            // update user if it exists\n            $user['user'] = $user['username'];\n            $user['firstname'] = $this->readMultilayerKey($userInfo, $this->fieldFirstName) != '' ? $this->readMultilayerKey($userInfo, $this->fieldFirstName) : $user['firstname'];\n            $user['lastname'] = $this->readMultilayerKey($userInfo, $this->fieldLastName) != '' ? $this->readMultilayerKey($userInfo, $this->fieldLastName) : $user['lastname'];\n            $user['phone'] = $this->readMultilayerKey($userInfo, $this->fieldPhone) != '' ? $this->readMultilayerKey($userInfo, $this->fieldPhone) : $user['phone'];\n            $user['jobTitle'] = $this->readMultilayerKey($userInfo, $this->fieldJobtitle) != '' ? $this->readMultilayerKey($userInfo, $this->fieldJobtitle) : $user['jobTitle'];\n            $user['jobLevel'] = $this->readMultilayerKey($userInfo, $this->fieldJoblevel) != '' ? $this->readMultilayerKey($userInfo, $this->fieldJoblevel) : $user['jobLevel'];\n            $user['department'] = $this->readMultilayerKey($userInfo, $this->fieldDepartment) != '' ? $this->readMultilayerKey($userInfo, $this->fieldDepartment) : $user['department'];\n\n            $user['role'] = $this->getUserRole($userInfo, $user);\n\n            // $user carries the full zp_user row from getUserByEmail(), including the stored\n            // bcrypt password hash and session/reset tokens. Passing those back into editUser()","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/Leantime/leantime/blob/9a9f49f1008f4782b30f6723c54228f4f992e636/app/Domain/Oidc/Services/Oidc.php#L237-L273","documentation":"Error \"OIDC user creation failed.\" thrown in Leantime/leantime.","triggerScenarios":"Thrown at app/Domain/Oidc/Services/Oidc.php:255 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":"9a9f49f1008f4782b30f6723c54228f4f992e636","analyzedAt":"2026-08-21T02:37:38.966Z","schemaVersion":2},"datasetVersion":"2026-08-21T03:17:12.404Z"}