eythaann/Seelen-UI · warning
Wallpaper ${wallpaper.id} has no filename, skipping
Error message
Wallpaper ${wallpaper.id} has no filename, skipping What it means
In the settings app's ThumbnailGeneratorModal, generateThumbnails() iterates video wallpapers and builds a file path from wallpaper.filename. When a wallpaper entry has an empty/undefined filename it cannot produce a video source, so the item is skipped with this warning and processing continues with the next wallpaper.
Source
Thrown at src/ui/react/settings/components/ThumbnailGeneratorModal/thumbnailGenerator.ts:71
onProgress: ProgressCallback,
): Promise<void> {
const total = wallpapers.length;
for (let i = 0; i < wallpapers.length; i++) {
const wallpaper = wallpapers[i];
if (!wallpaper) {
continue;
}
onProgress({
current: i,
total,
currentVideoName: getDisplayName(wallpaper),
});
try {
if (!wallpaper.filename) {
console.warn(`Wallpaper ${wallpaper.id} has no filename, skipping`);
continue;
}
const videoSrc = convertFileSrc(wallpaper.metadata.path + "\\" + wallpaper.filename);
const thumbnailBytes = await extractThumbnailFromSource(videoSrc, 0.9);
if (!thumbnailBytes) {
console.error(`Failed to extract thumbnail for ${wallpaper.id}`);
// Mark as corrupted - won't retry during this session
$corruptedWallpapers.value = new Set($corruptedWallpapers.value).add(wallpaper.id);
continue;
}
await invoke(SeelenCommand.WallpaperSaveThumbnail, {
wallpaperId: wallpaper.id,
thumbnailBytes: Array.from(thumbnailBytes),
});
} catch (error) {
console.error(`Error generating thumbnail for ${wallpaper.id}:`, error);View on GitHub (pinned to dee4aaa940)
Solutions
- Refresh/rescan the wallpapers folder so the index rebuilds and filenames are repopulated, then regenerate thumbnails.
- Remove or re-add the broken wallpaper entry (delete it in Settings > Monitors/Wallpapers or delete and re-copy the file).
- Verify the source file actually exists at wallpaper.metadata.path and fix the entry's filename if the index is editable/stale.
- If you maintain the code, treat a missing filename as a repairable index defect: re-derive filename from metadata.path before skipping.
Example fix
// before
if (!wallpaper.filename) {
console.warn(`Wallpaper ${wallpaper.id} has no filename, skipping`);
continue;
}
// after
if (!wallpaper.filename && wallpaper.metadata?.path) {
wallpaper.filename = wallpaper.metadata.path.split("\\").pop() ?? "";
}
if (!wallpaper.filename) {
console.warn(`Wallpaper ${wallpaper.id} has no filename, skipping`);
continue;
} Defensive patterns
Strategy: validation
Validate before calling
const usable = wallpapers.filter(w => typeof w.filename === "string" && w.filename.length > 0);
if (usable.length < wallpapers.length) {
console.warn(`${wallpapers.length - usable.length} wallpapers missing filename; refresh the index`);
} Type guard
function hasFilename(w: Wallpaper): w is Wallpaper & { filename: string } {
return typeof w.filename === "string" && w.filename.length > 0;
} Prevention
- Rescan/refresh the wallpaper index after moving or renaming wallpaper files.
- Filter entries with a filename before starting thumbnail generation and report skipped items to the user.
- Re-derive filename from metadata.path when it is missing instead of silently dropping the wallpaper.
When it happens
Trigger: A wallpaper in the monitored folders was detected/indexed (so it has an id and metadata.path) but its filename field is empty — e.g. the file was renamed, moved, or the scan entry was created before the filename was resolved.
Common situations: Corrupt or stale wallpaper index after moving the wallpaper folder; a file being written/locked during indexing so its name never got recorded; custom wallpapers added via a path where the filename extraction failed; OS/filesystem changes between index time and thumbnail generation.
AI-assisted analysis of eythaann/Seelen-UI@dee4aaa940 (2026-09-03).
Data as JSON: /api/errors/aeb8f614ede0498d.
Report an issue: GitHub.