Site is only built correctly when being live-reloaded


I just updated from hugo 0.18 to 0.41. When I run hugo serve, only for my an HTML page is rendered. All other content pages do not appear in the menus and I also cannot open them. When I just run hugo the public folder contains all the static files but NO HTML files in the respective subfolders.

The strange thing is: when I move the content files into a different sub-directory (e.g. post) after running hugo serve, the site is refreshed and all the content is available. After restarting the server, all content is gone again.

Any help is appreciated.

Were there any incompatible changes between the versions mentioned above? I haven’t found any kind of migration guide. The only thing that I was able to fix already was that the menu weight 0 is strangely enough not smaller than 10 anymore, I had to change it to 1.



From 0.18 to 0.41 is 2 years of active development. You need to read the “Notice” sections in the release notes.

My best guess is this is releated the page bundles in Hugo 0.32.

Thanks for the reply @bep!

Your guess was correct: it broke for me between version 0.31.1 and 0.32.1. I now also found the problem: having an file in the content folder somehow broke the rendering. Renaming it to and replicating the single.html layout as index.html layout according to Render as single fixed it.

I still think the behavior is a bit strange. It somehow worked (I got my index page served) and it also worked when moving files around while having live reload enabled. But it didn’t when doing a normal render run.

I don’t know if you could catch the edge case and print an error/a warning to the console in this case? Would have saved me a few hours and maybe would help others too.

Thanks again


I suspect you will find that it worked “some of the times” in both cases. Which is what you get with parallel builds and “the first one wins”. There is at least one open issue about improving the logging in this case.

1 Like