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 togotenberg/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 withbackground: 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
- Deploy Gotenberg using
gotenberg/gotenberg:8(resolves to 8.27.0) - Send an HTML file to
POST /forms/chromium/convert/htmlwith these parameters:
Parameter | Value
-- | --
singlePage | true
printBackground | true
emulatedMediaType | screen
preferCssPageSize | true
waitDelay | 2s
skipNetworkIdleEvent | false
marginTop | 0
marginBottom | 0
marginLeft | 0
marginRight | 0
- The HTML must contain CSS glassmorphism properties:
css
.section {
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
background: rgba(255, 255, 255, 0.22);
}- Open the resulting PDF — sections with
backdrop-filterhave 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):
- HTML source comparison: Compared raw HTML between a working brief (generated before the Gotenberg auto-upgrade) and a broken one — identical HTML and CSS
- Workflow node config: Compared the Convert to PDF HTTP request parameters — identical, no config change between working and broken state
- CSS modification attempt: Changed
rgba(255, 255, 255, 0.22)opacity to0.82on.sectionand.stat-badge— no effect → reverted - Key observation: File size drop (1.44 MB → 995 KB) with identical input HTML pointed to the rendering engine itself, not the input
- Environmental variable identified: The only change between working and broken state was an automatic Docker image pull. The
gotenberg/gotenberg:8floating tag had silently upgraded from 8.26.0 to 8.27.0, bringing Chromium 144 → 145 - Version pinning test: Pinned
gotenberg/gotenberg:8.26.0in docker-compose.yml, redeployed → PDF renders correctly again
6. Workaround
Pin the exact Gotenberg version in docker-compose.yml:
yaml
# Before (broken — floating tag auto-pulled 8.27.0)
image: gotenberg/gotenberg:8
# After (working)
image: gotenberg/gotenberg:8.26.0Then redeploy:
Source: gotenberg/gotenberg