# ResourceExhaustedError: Failed to get next element from iterator: Out of memory while reading data

- **ID:** `tensorflow/resource-exhausted-iterator-get-next`
- **Domain:** tensorflow
- **Category:** resource_error
- **Error Code:** `REI`
- **Verification:** ai_generated
- **Fix Rate:** 82%

## Root Cause

Data pipeline prefetching consumes too much memory, often due to large batch size, large dataset elements, or infinite prefetch.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| tensorflow 2.13.0 | active | — | — |
| tensorflow 2.14.0 | active | — | — |

## Workarounds

1. **Limit the prefetch buffer size using tf.data.Dataset.prefetch with a specific buffer size:
dataset = dataset.batch(32).prefetch(buffer_size=tf.data.AUTOTUNE)
# Or manually set buffer_size to a small number like 1 or 2
# Alternatively, use .prefetch(1) to limit to one batch** (85% success)
   ```
   Limit the prefetch buffer size using tf.data.Dataset.prefetch with a specific buffer size:
dataset = dataset.batch(32).prefetch(buffer_size=tf.data.AUTOTUNE)
# Or manually set buffer_size to a small number like 1 or 2
# Alternatively, use .prefetch(1) to limit to one batch
   ```
2. **Reduce batch size to lower memory usage per element:
dataset = dataset.batch(16).prefetch(tf.data.AUTOTUNE)
# Or use smaller batch size like 8** (80% success)
   ```
   Reduce batch size to lower memory usage per element:
dataset = dataset.batch(16).prefetch(tf.data.AUTOTUNE)
# Or use smaller batch size like 8
   ```
3. **Use tf.data.Dataset.cache to avoid re-reading large files, combined with controlled prefetch:
dataset = dataset.cache().batch(32).prefetch(1)** (75% success)
   ```
   Use tf.data.Dataset.cache to avoid re-reading large files, combined with controlled prefetch:
dataset = dataset.cache().batch(32).prefetch(1)
   ```

## Dead Ends

- **** — Memory is consumed by prefetch buffer, not worker count. (70% fail)
- **** — The error is about TensorFlow's internal buffer limits, not system memory capacity. (90% fail)
