Hugo's module.mounts quietly replaced my static directory
This site had a bug that survived several deploys unnoticed: the whole site worked, except that the OpenGraph card, the image that link previews show when you paste a URL into WhatsApp or LinkedIn, returned 404 in production. Browsers never load that file when you visit a page, so nothing looked broken. Every build was green. The file was in the repository. And the URL was dead.
If you want the ending first: declaring any entry under module.mounts for a target root replaces Hugo’s default mount for that root. I had mounted one subfolder of static, and in doing so had silently unmounted everything else in it.