{"record":{"id":"bf94ae5a423b8920","repo":"AlistGo/alist","slug":"refresh-token-is-empty-bf94ae","errorCode":null,"errorMessage":"refresh token is empty","messagePattern":"refresh token is empty","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/quark_uc_tv/util.go","lineNumber":178,"sourceCode":"\n\t_, err := base.RestyClient.R().\n\t\tSetHeader(\"Content-Type\", \"application/json\").\n\t\tSetBody(body).\n\t\tSetResult(&resp).\n\t\tSetContext(ctx).\n\t\tPost(u)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif resp.Code != 200 {\n\t\treturn errors.New(resp.Message)\n\t}\n\tif resp.Data.RefreshToken != \"\" {\n\t\td.Addition.RefreshToken = resp.Data.RefreshToken\n\t\top.MustSaveDriverStorage(d)\n\t\td.QuarkUCTVCommon.AccessToken = resp.Data.AccessToken\n\t} else {\n\t\treturn errors.New(\"refresh token is empty\")\n\t}\n\treturn nil\n}\n\nfunc (d *QuarkUCTV) isLogin(ctx context.Context) (bool, error) {\n\t_, err := d.request(ctx, \"/user\", http.MethodGet, func(req *resty.Request) {\n\t\treq.SetQueryParams(map[string]string{\n\t\t\t\"method\": \"user_info\",\n\t\t})\n\t}, nil)\n\treturn err == nil, err\n}\n\nfunc (d *QuarkUCTV) generateReqSign(method string, pathname string, key string) (string, string, string) {\n\t//timestamp 13位时间戳\n\ttimestamp := strconv.FormatInt(time.Now().UnixNano()/int64(time.Millisecond), 10)\n\tdeviceID := d.Addition.DeviceID\n\tif deviceID == \"\" {","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/quark_uc_tv/util.go#L160-L196","documentation":"Error \"refresh token is empty\" thrown in AlistGo/alist.","triggerScenarios":"Thrown at drivers/quark_uc_tv/util.go:178 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-authenticate the storage: obtain a new refresh_token via the provider's OAuth flow and update the storage configuration.","Verify client_id/client_secret are correct and the refresh token has not been revoked or expired."],"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-15T17:31:12.345Z"}