Skip to main content

Refresh flows (backfill and per-item force refresh)

Metadata backfill

Triggered by the GraphQL mutation refreshMetadata(MISSING) (MetadataRefreshController): metadata is fetched for everything that lacks it (movies/shows also when their TMDB enrichment columns were never filled). The controller kicks the BlurHash sweep per directory itself — for an unscoped call over every directory including the cache directory; with a libraryId only over that library's LIBRARY directories. The backfill event is global, so it runs exactly once cluster-wide.

Force refresh (per item or per library)

Triggered by refreshMetadata(FORCE, libraryId) and the per-item calls refreshShow(id), refreshMovie(id), refreshEpisode(id), refreshPerson(id), refreshAlbum(id), refreshTrack(id). Destructive: stored metadata/artwork/stream info is deleted first, then everything is re-fetched.