vercel/next.js · error · Error

Decompressed resume data cache exceeded ${maxDecompressedSiz

Error message

Decompressed resume data cache exceeded ${maxDecompressedSize} byte limit

What it means

Decompression-bomb guard when inflating the resume data cache from a postponed state: zlib's inflateSync hit the maxOutputLength ceiling (5x the configured compressed limit, 500MB by default) and raised a RangeError, which this site converts into an explicit size error instead of letting the machine OOM on a maliciously compressed payload.

Source

Thrown at packages/next/src/server/resume-data-cache/resume-data-cache.ts:335

      // ratios while preventing extreme decompression bombs.
      // Default is 500MB (5x the default 100MB compressed limit).
      const maxDecompressedSize = maxPostponedStateSizeBytes
        ? maxPostponedStateSizeBytes * 5
        : 500 * 1024 * 1024

      try {
        serializedResumeDataCache = inflateSync(
          Buffer.from(serializedResumeDataCache, 'base64'),
          {
            maxOutputLength: maxDecompressedSize,
          }
        ).toString('utf-8')
      } catch (err: unknown) {
        if (
          err instanceof RangeError &&
          (err as NodeJS.ErrnoException).code === 'ERR_BUFFER_TOO_LARGE'
        ) {
          throw new Error(
            `Decompressed resume data cache exceeded ${maxDecompressedSize} byte limit`
          )
        }
        throw err
      }
    }

    const json = JSON.parse(serializedResumeDataCache) as ResumeStoreSerialized

    return {
      mutable: false,
      cache: parseUseCacheCacheStore(Object.entries(json.store.cache)),
      fetch: new Map(Object.entries(json.store.fetch)),
      encryptedBoundArgs: new Map(
        Object.entries(json.store.encryptedBoundArgs)
      ),
      decryptedBoundArgs: new Map(),
      imageResponses: new Map(),

View on GitHub (pinned to 0eb3775416)

Solutions

  1. Reduce the size of cached resume data, or investigate unexpected growth in the resume data cache.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Decompressed resume data cache exceeds the configured byte limit.

Common situations: A malicious or corrupted compressed payload expands beyond the decompression limit.


AI-assisted analysis of vercel/next.js@0eb3775416 (2026-08-19). Data as JSON: /api/errors/8997beb3fac54c35. Report an issue: GitHub.