#1491·gotenberg

backdrop-filter: blur() renders blank sections in PDF since 8.27.0 (Chromium 145 regression)

Author: florianaiautomationCreated Mar 13, 2026Updated Apr 24, 2026
Labelsbugchromium

Gotenberg 8.27.0 silently broke PDF rendering of CSS backdrop-filter: blur() when upgrading from the :8 floating tag. Pinning to 8.26.0 resolves it. Likely a Chromium 145 headless regression.

Bug Report: backdrop-filter: blur() broken in PDF rendering since Gotenberg 8.27.0

1. Versions

  • Broken: Gotenberg 8.27.0 (ships Chromium 145)
  • Working: Gotenberg 8.26.0 (ships Chromium 144.0.7559.96, Debian trixie)
  • Docker tag that triggered the issue: gotenberg/gotenberg:8 (floating tag) — auto-pulled 8.27.0 without explicit upgrade

2. Environment

  • OS: Ubuntu, kernel 6.8.0-100-generic (x86_64)
  • Docker: v29.0.2 (build 8108357)
  • Deployment: Docker Compose on Hostinger VPS
  • Docker image: gotenberg/gotenberg:8 (floating), later pinned to gotenberg/gotenberg:8.26.0
  • Caller: n8n workflow via HTTP Request node (v4.2)

3. Symptoms

HTML-to-PDF conversion via Gotenberg produces a PDF where all section content is invisible/blank. The PDF file is generated without errors (HTTP 200), but:

  • Sections using backdrop-filter: blur(20px) combined with background: rgba(255, 255, 255, 0.22) render as completely empty/white areas
  • The PDF structure is intact (correct page count, layout preserved), but visual content within glassmorphism-styled sections is not rendered
  • File size difference: broken PDF ≈ 995 KB vs working PDF ≈ 1.44 MB — consistent with the rendering engine skipping content generation inside affected sections
  • No error messages, no crash, no timeout — Gotenberg returns HTTP 200 with a valid but visually broken PDF

4. Steps to Reproduce

  1. Deploy Gotenberg using gotenberg/gotenberg:8 (resolves to 8.27.0)
  2. Send an HTML file to POST /forms/chromium/convert/html with these parameters:
Parameter | Value -- | -- singlePage | true printBackground | true emulatedMediaType | screen preferCssPageSize | true waitDelay | 2s skipNetworkIdleEvent | false marginTop | 0 marginBottom | 0 marginLeft | 0 marginRight | 0
  1. The HTML must contain CSS glassmorphism properties:
css
css
.section {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    background: rgba(255, 255, 255, 0.22);
}
  1. Open the resulting PDF — sections with backdrop-filter have no visible content

Note: No explicit paperSize or scale parameters set — relies on Gotenberg defaults with preferCssPageSize: true.

5. Investigation

Systematic elimination process (~4h30 total):

  1. HTML source comparison: Compared raw HTML between a working brief (generated before the Gotenberg auto-upgrade) and a broken one — identical HTML and CSS
  2. Workflow node config: Compared the Convert to PDF HTTP request parameters — identical, no config change between working and broken state
  3. CSS modification attempt: Changed rgba(255, 255, 255, 0.22) opacity to 0.82 on .section and .stat-badgeno effect → reverted
  4. Key observation: File size drop (1.44 MB → 995 KB) with identical input HTML pointed to the rendering engine itself, not the input
  5. Environmental variable identified: The only change between working and broken state was an automatic Docker image pull. The gotenberg/gotenberg:8 floating tag had silently upgraded from 8.26.0 to 8.27.0, bringing Chromium 144 → 145
  6. Version pinning test: Pinned gotenberg/gotenberg:8.26.0 in docker-compose.yml, redeployed → PDF renders correctly again

6. Workaround

Pin the exact Gotenberg version in docker-compose.yml:

yaml
yaml
# Before (broken — floating tag auto-pulled 8.27.0)
image: gotenberg/gotenberg:8

# After (working)
image: gotenberg/gotenberg:8.26.0

Then redeploy: