AlistGo/alist · error
lark export task response missing ticket
Error message
lark export task response missing ticket
What it means
The Feishu Drive ExportTask.Create call returned success but resp.Data.Ticket was nil/empty. The ticket is the handle required to poll export status (Get with Ticket+Token), so without it the export flow cannot continue; the driver returns this error instead of an unusable LarkExportCreateResp.
Source
Thrown at drivers/lark/other.go:149
Type(docType).
FileExtension(format).
FileName(larkExportBaseName(obj.GetName()))
if subID != "" {
builder.SubId(subID)
}
exportTask := builder.Build()
resp, err := doDrive(ctx, c, func(opts ...larkcore.RequestOptionFunc) (*larkdrive.CreateExportTaskResp, error) {
return c.client.Drive.V1.ExportTask.Create(ctx,
larkdrive.NewCreateExportTaskReqBuilder().ExportTask(exportTask).Build(), opts...)
})
if err != nil {
return nil, err
}
if !resp.Success() {
return nil, larkAPIError(resp)
}
if resp.Data == nil || resp.Data.Ticket == nil || *resp.Data.Ticket == "" {
return nil, errors.New("lark export task response missing ticket")
}
return &LarkExportCreateResp{
Ticket: *resp.Data.Ticket,
Token: token,
Type: docType,
Format: format,
SubID: subID,
}, nil
}
func (c *Lark) getExportOptions(ctx context.Context, obj model.Obj) (*LarkExportOptionsResp, error) {
token, ok := c.getObjToken(ctx, obj.GetPath())
if !ok {
return nil, errors.WithStack(errors.New("lark file token not found"))
}
docType, err := larkExportType(obj.GetName())
if err != nil {
return nil, errView on GitHub (pinned to 843d9dc814)
Solutions
- Log larkAPIError details / raw response for the create call to find the underlying reason
- Wait if export quota is exhausted, then retry with fewer concurrent tasks
- Verify the app has the drive export permission (docs:document:export or equivalent scope)
- Confirm the doc is not locked/being-edited heavily, then retry
Defensive patterns
Strategy: try-catch
Try / catch
resp, err := c.createExportTask(ctx, obj, req)
if err != nil && strings.Contains(err.Error(), "missing ticket") {
// quota/state issue: back off and retry once later
return nil, fmt.Errorf("feishu did not issue export ticket (quota or doc state): %w", err)
} Prevention
- Throttle export creation (one or few concurrent) to stay under tenant export quota
- Confirm drive export scopes are granted before shipping export features
When it happens
Trigger: CreateExportTask succeeds at HTTP/code level yet omits data.ticket — export quota exceeded, file in a state that cannot be exported, or the export feature not enabled for the app/tenant.
Common situations: Mass-exporting many docs quickly hits the tenant's export quota; exporting a doc type the tenant disabled; SDK/response drift after a Feishu API update.
Related errors
- lark refresh token response missing access token
- lark file token not found
- ticket is required
- lark refresh token expired
- failed to get download link
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/f125b47ae155253e.
Report an issue: GitHub.