# Upstash: request or record too large (10MB request, 100MB record)

## What you see

400s on large SETs, or a whole /multi-exec batch discarded with a
size error.

## The limits

- Max request size: 10MB per HTTP request.
- Max record size: 100MB per value.
- Bandwidth on the free tier is 10GB a month, so large values also
  burn that quota.

## Confirm

Check the byte size of the value you are writing. If the payload is
over 10MB in one request, that is the cause. Remember JSON
serialization and base64 encoding inflate sizes: a 7MB object can
cross 10MB on the wire.

## Fix

1. Chunk large values across multiple keys (file:1, file:2, ...) and
   reassemble on read.
2. Compress before storing. Text and JSON compress well.
3. Store the blob in object storage and keep only the pointer in
   Redis. Redis is the index, not the file system.
4. For bulk loads, split /pipeline batches so each HTTP request stays
   under 10MB.

## Verify

The write returns OK and a GET returns the full value with matching
byte length.