Skip to content

Troubleshooting

Each entry lists the symptom, likely causes, a diagnostic step and a fix.

The server prints “Use —start flag” and exits

Section titled “The server prints “Use —start flag” and exits”

Cause: the server requires the --start flag to run.

Fix: start it with wallpaper-server --start. See installation.

Symptom: the server exits reporting a missing config file.

Causes: no config at the resolved path.

Diagnose: the path is chosen as --config flag → $WALLPAPER_SERVER_CONFIG~/.config/wallpaper-server/config.yaml.

Fix: create a config at that path, or point to one explicitly:

Terminal window
wallpaper-server --start --config /path/to/config.yaml

See configuration.

”no wallpaper folders specified in configuration”

Section titled “”no wallpaper folders specified in configuration””

Cause: wallpaper_folders is empty. It is required.

Fix: add at least one directory under wallpaper_folders and restart.

Symptom: the gallery is empty and GET /api/wallpapers returns an empty list.

Causes: the folders contain no supported files, or they have not been scanned yet.

Diagnose:

Terminal window
curl "http://localhost:8519/api/wallpapers?limit=1"

Fix: confirm the folders contain .jpg, .jpeg, .png or .webp files, then trigger a rescan:

Terminal window
curl -X POST "http://localhost:8519/api/refresh"

Cause: filters combine with AND, so an over-constrained query can match nothing. On the direct-image endpoint this returns 404.

Fix: loosen or remove filters and check what your library actually contains. See the filter reference.

Cause: another process is bound to the configured port (default 8519).

Fix: stop the other process, or change server.port in the config.

Causes: the server is only reachable on the host, or a firewall blocks it.

Diagnose: from the other device, curl "http://SERVER-IP:8519/api/wallpapers?limit=1".

Fix: ensure server.host is 0.0.0.0 (the default) so the server listens on all interfaces, open the port in your firewall, and use the server’s LAN address. Note there is no authentication — do not expose it directly to the public internet without a reverse proxy. See the API overview.

Cause: the host folders are not mounted into the container.

Fix: mount your wallpaper folder and config as volumes and point the config at the in-container paths. See installation.

Causes: wrong form field, unsupported extension, or a file over the 50 MB limit.

Fix: send a multipart request with the field named file and a supported format. Errors come back as plain text with a 400 status — see errors.

Cause: the process cannot write to the cache or uploads directory.

Fix: ensure the user running the server can create and write the configured cache_dir and uploads_dir. See caching and storage.

Cause: files changed on disk but the index has not been rebuilt.

Fix: trigger POST /api/refresh (or restart). Note that changing folders via PUT /api/settings also requires a refresh or restart to take effect.

Causes: wrong method or path, or an ID that is not in the index.

Fix: check the method and path against the endpoint reference. Remember random matching returns 404 when no wallpaper matches the filters.