Built-in theme preview images missing (404) in discourse/discourse Docker image

I’m running Discourse using the experimental discourse/discourse:3.5.1 Docker image (via Docker Compose, not the launcher) and noticed that the built-in theme preview images are returning 404 errors in the admin themes page.

Environment:

  • Image: discourse/discourse:3.5.1

  • Deployment: Docker Compose on Dokploy

  • Database: PostgreSQL 17 with pgvector

  • Fresh installation (December 2024)

Issue: When accessing /admin/customize/themes, the browser console shows 404 errors for theme preview images:

https://forum.example.com/uploads/default/original/1X/d7dc093939924a0ce97287d65ec38bbcb2b23e00.png
https://forum.example.com/uploads/default/original/1X/f8a61b9a0bfac672daec9e401787812f8c5e28df.png

What I’ve tried:

  • Created proper upload directory structure: /shared/uploads/default/{original,optimized}/{1X,2X,3X}

  • Set correct permissions: discourse:www-data ownership

  • Ran rake uploads:regenerate_missing_optimized (completed successfully but didn’t generate these files)

  • Ran rake themes:update (no effect)

  • Verified symlink exists: /var/www/discourse/public/uploads/shared/uploads

Observations:

  • Theme previews work when clicked (themes function normally)

  • Only the thumbnail images in the theme selector are missing

  • The referenced PNG files don’t exist anywhere in the container

  • Database has upload records pointing to these non-existent files

Question: Is this expected behavior for the experimental image? Should these preview images be seeded during initialization, or is there a migration/task I’m missing?

The forum works perfectly otherwise - this is purely cosmetic. Just want to confirm if this is a known limitation of the experimental image or if I’ve missed a setup step.

You shouldn’t need to do that.

Do uploads work?

Did you run the rake assets:precompile? (or maybe those new images do that automatically–when I started trying to create such images, I think I had them do it on first boot.