{"record":{"id":"292e48f31f9a4cc1","repo":"AlistGo/alist","slug":"file-token-is-required","errorCode":null,"errorMessage":"file_token is required","messagePattern":"file_token is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/lark/other.go","lineNumber":232,"sourceCode":"\tif result.FileSize != nil {\n\t\tout.FileSize = *result.FileSize\n\t}\n\tif result.JobStatus != nil {\n\t\tout.JobStatus = *result.JobStatus\n\t}\n\tif out.Status == larkExportStatusFailed {\n\t\tout.ErrorMessage = larkExportTaskErrorMessage(result)\n\t\tout.ErrorDetail = larkExportTaskErrorDetail(result)\n\t} else if result.JobErrorMsg != nil {\n\t\tout.ErrorMessage = strings.TrimSpace(*result.JobErrorMsg)\n\t}\n\treturn out, nil\n}\n\nfunc (c *Lark) DownloadExportFile(ctx context.Context, fileToken string) (io.Reader, string, error) {\n\tfileToken = strings.TrimSpace(fileToken)\n\tif fileToken == \"\" {\n\t\treturn nil, \"\", errors.New(\"file_token is required\")\n\t}\n\tresp, err := doDrive(ctx, c, func(opts ...larkcore.RequestOptionFunc) (*larkdrive.DownloadExportTaskResp, error) {\n\t\treturn c.client.Drive.V1.ExportTask.Download(ctx,\n\t\t\tlarkdrive.NewDownloadExportTaskReqBuilder().FileToken(fileToken).Build(), opts...)\n\t})\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tif !resp.Success() {\n\t\treturn nil, \"\", larkAPIError(resp)\n\t}\n\tif resp.File == nil {\n\t\treturn nil, \"\", errors.New(\"lark export download response missing file\")\n\t}\n\treturn resp.File, resp.FileName, nil\n}\n\nfunc larkExportType(name string) (string, error) {","sourceCodeStart":214,"sourceCodeEnd":250,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/lark/other.go#L214-L250","documentation":"Error \"file_token is required\" thrown in AlistGo/alist.","triggerScenarios":"Thrown at drivers/lark/other.go:232 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a valid token in the storage configuration and save it again.","If the token expired, re-login or refresh it through the provider and update the configuration."],"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"}