# Error: Stream entries added to consumer group PEL without acknowledgment

- **ID:** `redis/stream-entries-added-to-consumer-group-pel`
- **Domain:** redis
- **Category:** data_error
- **Error Code:** `ERR`
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

Consumer group pending entries list (PEL) grows unbounded as consumers fail to acknowledge processed messages, potentially causing memory exhaustion and performance degradation.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| redis 6.2 | active | — | — |
| redis 7.0 | active | — | — |
| redis 7.2 | active | — | — |

## Workarounds

1. **Periodically acknowledge processed entries using XACK: `XACK mystream mygroup 1526569498055-0` for each message ID. Automate with a background job that calls XACK after successful processing.** (90% success)
   ```
   Periodically acknowledge processed entries using XACK: `XACK mystream mygroup 1526569498055-0` for each message ID. Automate with a background job that calls XACK after successful processing.
   ```
2. **Set a consumer group PEL size limit with `XGROUP SETID mystream mygroup $` and use XTRIM to cap stream length: `XTRIM mystream MAXLEN ~ 10000`.** (85% success)
   ```
   Set a consumer group PEL size limit with `XGROUP SETID mystream mygroup $` and use XTRIM to cap stream length: `XTRIM mystream MAXLEN ~ 10000`.
   ```
3. **Use XAUTOCLAIM to reassign idle PEL entries to other consumers: `XAUTOCLAIM mystream mygroup consumer2 3600000 0-0` after setting a reasonable idle timeout.** (80% success)
   ```
   Use XAUTOCLAIM to reassign idle PEL entries to other consumers: `XAUTOCLAIM mystream mygroup consumer2 3600000 0-0` after setting a reasonable idle timeout.
   ```

## Dead Ends

- **Increasing consumer group size to handle more messages** — Adding more consumers does not clear the PEL; each consumer still accumulates unacknowledged entries, worsening the issue. (85% fail)
- **Deleting and recreating the stream** — Deletes all data and disrupts active consumers; PEL rebuilds quickly if root cause (lack of acknowledgment) persists. (90% fail)
- **Setting XREADGROUP COUNT to a very high value** — High COUNT does not clear PEL; it only returns more entries, and unacknowledged entries remain, continuing to grow the PEL. (80% fail)
