{"record":{"id":"7939208d586057a0","repo":"AlistGo/alist","slug":"failed-to-get-credentials-from-newprotondrive","errorCode":null,"errorMessage":"failed to get credentials from NewProtonDrive","messagePattern":"failed to get credentials from NewProtonDrive","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/proton_drive/driver.go","lineNumber":145,"sourceCode":"\t\tReusableCredential:         reusableCredential,\n\t\tCredentialCacheFile:        d.credentialCacheFile,\n\t}\n\n\tif config.FirstLoginCredential == nil {\n\t\treturn fmt.Errorf(\"failed to create login credentials, FirstLoginCredential cannot be nil\")\n\t}\n\n\t//fmt.Printf(\"Calling NewProtonDrive...\")\n\n\tprotonDrive, credentials, err := proton_api_bridge.NewProtonDrive(\n\t\tctx,\n\t\tconfig,\n\t\tfunc(auth proton.Auth) {},\n\t\tfunc() {},\n\t)\n\n\tif credentials == nil && !useReusableLogin {\n\t\treturn fmt.Errorf(\"failed to get credentials from NewProtonDrive\")\n\t}\n\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to initialize ProtonDrive: %w\", err)\n\t}\n\n\td.protonDrive = protonDrive\n\n\tvar finalCredentials *common.ProtonDriveCredential\n\n\tif useReusableLogin {\n\n\t\t// For reusable login, create credentials from cached data\n\t\tfinalCredentials = &common.ProtonDriveCredential{\n\t\t\tUID:           reusableCredential.UID,\n\t\t\tAccessToken:   reusableCredential.AccessToken,\n\t\t\tRefreshToken:  reusableCredential.RefreshToken,\n\t\t\tSaltedKeyPass: reusableCredential.SaltedKeyPass,","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/proton_drive/driver.go#L127-L163","documentation":"Error \"failed to get credentials from NewProtonDrive\" thrown in AlistGo/alist.","triggerScenarios":"Thrown at drivers/proton_drive/driver.go:145 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the account credentials in the storage configuration and correct them, then save and retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"843d9dc8149126976b2625911e45a4d3ffd6f2f5","analyzedAt":"2026-08-15T12:14:11.722Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}