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
85%Fix Rate
86%Confidence
1Evidence
2024-07-05First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 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.htmlWorkarounds
-
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.
-
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`.
-
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 } } }`.
中文步骤
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.
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`.
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:
-
95% fail
Index creation date is immutable; modifying it via update doesn't affect ILM's internal tracking.
-
80% fail
Loses automated lifecycle management, requiring manual intervention for each rollover and deletion.