# ERR PEL too large for consumer group 'mygroup' on stream 'mystream'

- **ID:** `redis/stream-consumer-group-pending-entries-overload`
- **Domain:** redis
- **Category:** resource_error
- **Error Code:** `ERR`
- **Verification:** ai_generated
- **Fix Rate:** 75%

## Root Cause

The Pending Entries List (PEL) for a consumer group has grown excessively large, exceeding Redis internal limits or causing performance degradation.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.0 | active | — | — |
| 7.2 | active | — | — |
| 8.0-m3 | active | — | — |

## Workarounds

1. **Use XACK to acknowledge processed messages and shrink the PEL. Example: XACK mystream mygroup 1234567890-0 1234567891-0** (85% success)
   ```
   Use XACK to acknowledge processed messages and shrink the PEL. Example: XACK mystream mygroup 1234567890-0 1234567891-0
   ```
2. **Use XAUTOCLAIM to reclaim idle pending messages and acknowledge them programmatically. Example: XAUTOCLAIM mystream mygroup other-consumer 3600000 0-0 COUNT 100** (80% success)
   ```
   Use XAUTOCLAIM to reclaim idle pending messages and acknowledge them programmatically. Example: XAUTOCLAIM mystream mygroup other-consumer 3600000 0-0 COUNT 100
   ```
3. **Monitor and limit the number of pending entries per consumer by setting a maximum processing time and acknowledging messages promptly in application code.** (90% success)
   ```
   Monitor and limit the number of pending entries per consumer by setting a maximum processing time and acknowledging messages promptly in application code.
   ```

## Dead Ends

- **Delete and recreate the consumer group without acknowledging pending messages.** — This loses all pending messages and disrupts processing state; messages may be lost permanently. (60% fail)
- **Increase the stream's max-length to a very high value.** — The PEL size is not directly tied to stream length; it depends on unacknowledged messages. Increasing max-length does not help. (80% fail)
- **Restart the Redis server to clear the PEL.** — The PEL is persisted and will be restored on restart; this only causes downtime without solving the underlying issue. (90% fail)
