ES_ILM_ROLLOVER_FAIL elasticsearch config_error ai_generated partial

ElasticsearchException: index lifecycle policy [my_policy] failed to rollover index [logs-2025.03.15] - condition [max_age: 30d] not met, actual age [25d]

ID: elasticsearch/index-lifecycle-policy-rollover-failure

Also available as: JSON · Markdown · 中文
85%Fix Rate
86%Confidence
1Evidence
2024-07-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
7.17.0 active
8.11.0 active
8.12.0 active

Root Cause

An ILM rollover condition (max_age, max_docs, or max_size) is not met because the index was manually created with an alias, causing the rollover to be skipped or misconfigured.

generic

中文

ILM 滚动条件(max_age、max_docs 或 max_size)未满足,因为索引是使用别名手动创建的,导致滚动被跳过或配置错误。

Official Documentation

https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html

Workarounds

  1. 85% success Ensure the index is part of an alias with `is_write_index: true` and that the rollover alias matches the policy's `rollover_alias` setting. Use `PUT _ilm/policy/my_policy` to correct the alias name.
    Ensure the index is part of an alias with `is_write_index: true` and that the rollover alias matches the policy's `rollover_alias` setting. Use `PUT _ilm/policy/my_policy` to correct the alias name.
  2. 80% success Force rollover manually by calling `POST /logs-2025.03.15/_rollover` with the required conditions, then check ILM status with `GET logs-2025.03.15/_ilm/explain`.
    Force rollover manually by calling `POST /logs-2025.03.15/_rollover` with the required conditions, then check ILM status with `GET logs-2025.03.15/_ilm/explain`.
  3. 90% success Delete the index and recreate it with proper alias configuration: `PUT /logs-2025.03.15-000001 { "aliases": { "logs_write": { "is_write_index": true } } }`.
    Delete the index and recreate it with proper alias configuration: `PUT /logs-2025.03.15-000001 { "aliases": { "logs_write": { "is_write_index": true } } }`.

中文步骤

  1. Ensure the index is part of an alias with `is_write_index: true` and that the rollover alias matches the policy's `rollover_alias` setting. Use `PUT _ilm/policy/my_policy` to correct the alias name.
  2. Force rollover manually by calling `POST /logs-2025.03.15/_rollover` with the required conditions, then check ILM status with `GET logs-2025.03.15/_ilm/explain`.
  3. Delete the index and recreate it with proper alias configuration: `PUT /logs-2025.03.15-000001 { "aliases": { "logs_write": { "is_write_index": true } } }`.

Dead Ends

Common approaches that don't work:

  1. 95% fail

    Index creation date is immutable; modifying it via update doesn't affect ILM's internal tracking.

  2. 80% fail

    Loses automated lifecycle management, requiring manual intervention for each rollover and deletion.