AlistGo/alist · error
index creation failed, task status is %s
Error message
index creation failed, task status is %s
What it means
When bootstrapping the Meilisearch search index, CreateIndex was accepted by the server but the resulting task finished with a status other than succeeded (e.g. failed or canceled). The Meilisearch client's WaitForTask returned without transport error, so only the task status is checked.
Source
Thrown at internal/search/meilisearch/init.go:47
_, err := m.Client.GetIndex(m.IndexUid)
if err != nil {
var mErr *meilisearch.Error
ok := errors.As(err, &mErr)
if ok && mErr.MeilisearchApiError.Code == "index_not_found" {
task, err := m.Client.CreateIndex(&meilisearch.IndexConfig{
Uid: m.IndexUid,
PrimaryKey: "id",
})
if err != nil {
return nil, err
}
forTask, err := m.Client.WaitForTask(task.TaskUID)
if err != nil {
return nil, err
}
if forTask.Status != meilisearch.TaskStatusSucceeded {
return nil, fmt.Errorf("index creation failed, task status is %s", forTask.Status)
}
} else {
return nil, err
}
}
attributes, err := m.Client.Index(m.IndexUid).GetFilterableAttributes()
if err != nil {
return nil, err
}
if attributes == nil || !utils.SliceAllContains(*attributes, m.FilterableAttributes...) {
_, err = m.Client.Index(m.IndexUid).UpdateFilterableAttributes(&m.FilterableAttributes)
if err != nil {
return nil, err
}
}
attributes, err = m.Client.Index(m.IndexUid).GetSearchableAttributes()
if err != nil {View on GitHub (pinned to 843d9dc814)
Solutions
- Check the task in Meilisearch (GET /tasks) and read its error payload for the root cause
- Delete the conflicting index (DELETE /indexes/<uid>) and let AList recreate it
- Free resources on the Meilisearch host or increase limits
- Verify the API key has index-creation rights and the configured host/port are correct
Defensive patterns
Strategy: try-catch
Try / catch
if err := search.Init("meilisearch"); err != nil {
if strings.Contains(err.Error(), "index creation failed") {
// query Meilisearch /tasks for the failed task, fix root cause (conflicting uid, disk, key), optionally delete index and retry once
}
return err
} Prevention
- Dedicate an index UID per AList instance on shared Meilisearch clusters
- Provision adequate disk/memory for index builds
- Use an API key with full index permissions
- Check Meilisearch /tasks dashboard after first startup
When it happens
Trigger: Starting AList with search mode 'meilisearch' while an index with the same UID but incompatible settings already exists, the Meilisearch server runs out of disk, or the master key/permissions allow task submission but not index creation.
Common situations: Reusing a Meilisearch instance across AList versions or projects with colliding index UIDs; Meilisearch under-provisioned (disk/RAM) so index building tasks fail; wrong API key scope.
Related errors
AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15).
Data as JSON: /api/errors/9388ef25fb054f65.
Report an issue: GitHub.