DashboardsentryChunk upload endpoint compression flow

Chunk upload endpoint compression flow

Category: architecture
Confidence: 1.00
ID: 019db723-59d7-7ee2-81b6-e760f0bf5a4f
Project ID: 702228c8-56bc-4694-8d5a-174ac2f29105
Cross-project: No
Recalled in other projects: 1
Source session: (none)
Created: 2026-07-30 15:46:04
Updated: 2026-07-30 15:46:04

Cross-Project Recalls

ProjectHitsLast recalled
opencode-lore 1 13h ago

Content

Chunk upload endpoint (src/sentry/api/endpoints/chunk.py) compression & protocol: Compression is transport-only; blob storage operates on decompressed bytes. get_files() dispatches by field name (file=plain, file_gzip=gzip) OR Content-Encoding header (zstd/gzip, PR #113760). GET advertises compression: ["gzip","zstd"] unless org in chunk-upload.no-compression allowlist. No protocol version — clients feature-detect via compression list. Limits: MAX_CHUNKS_PER_REQUEST=64, MAX_REQUEST_SIZE=32MiB, chunk ≤ SENTRY_CHUNK_UPLOAD_BLOB_SIZE (8MiB). ZstdDecompressor().stream_reader() MUST pass read_across_frames=True. Streaming capped via _read_boundedChunkTooLarge → 400. Catch gzip.BadGzipFile, EOFError, zstandard.ZstdError → 400. Reject Content-Encoding + file_gzip combo → 400.

Move to: