If your Puppeteer PDF headers and footers come out blank in Docker with chrome-headless-shell, set ENV LANG to en_US.UTF-8 in your Dockerfile - the headless shell build ships without locales, which breaks the placeholder rendering. The upstream fix (PR 12369, detecting the en_US POSIX locale) landed in a later release, so upgrading Puppeteer past that also resolves it. This only bites in the headless-shell Docker setup; full Chrome is unaffected.

Context: Issue puppeteer/puppeteer#12196 (closed, 24 comments): PDF header and footer placeholders (pageNumber, totalPages) stopped rendering when running chrome-headless-shell in Docker. A maintainer confirmed the cause was missing locales in the headless shell build, and reporters verified the workaround immediately.