ERM redis data_error ai_generated true

检测到消费者组偏移回滚:last-delivered-id < oldest-id

ERR Consumer group offset rollback detected: last-delivered-id < oldest-id

ID: redis/stream-consumer-group-offset-rollback

其他格式: JSON · Markdown 中文 · English
90%修复率
83%置信度
1证据数
2024-01-25首次发现

版本兼容性

版本状态引入弃用备注
6.2 active
7.0 active
7.2 active

根因分析

流被修剪或删除,导致消费者组的 last-delivered-id 早于流中最旧的条目,导致状态不一致。

English

The stream was trimmed or deleted, causing the consumer group's last-delivered-id to be older than the oldest entry in the stream, leading to an inconsistent state.

generic

官方文档

https://redis.io/docs/latest/commands/xgroup-setid/

解决方案

  1. 运行 'XGROUP SETID mystream mygroup 0-0' 重置到开头,然后使用 XREADGROUP 从最旧条目重新处理。
  2. 设置 XTRIM 的最小 ID 早于组的 last-delivered-id:'XTRIM mystream MINID ~ <last-delivered-id>'。

无效尝试

常见但无效的做法:

  1. 70% 失败

    May cause duplicate processing of already-consumed messages.

  2. 60% 失败

    Loses all pending messages and consumer state; not suitable for production.

  3. 90% 失败

    Consumer group will be stuck; no new messages delivered.