diff --git a/server/job/schedule.ts b/server/job/schedule.ts index 6ce8f14b..a9afd2f4 100644 --- a/server/job/schedule.ts +++ b/server/job/schedule.ts @@ -97,7 +97,12 @@ export const startJobs = (): void => { logger.info('Starting scheduled job: Plex Watchlist Sync', { label: 'Jobs', }); - watchlistSync.syncWatchlist(); + watchlistSync.syncWatchlist().catch((e) => { + logger.error('Failed to sync watchlists', { + label: 'Plex Watchlist Sync', + errorMessage: e.message, + }); + }); }), }); } else if ( diff --git a/server/lib/watchlistsync.ts b/server/lib/watchlistsync.ts index bc721e32..c6bf7f21 100644 --- a/server/lib/watchlistsync.ts +++ b/server/lib/watchlistsync.ts @@ -76,13 +76,18 @@ class WatchlistSync { const watchlistTmdbIds = response.items.map((i) => i.tmdbId); const requestRepository = getRepository(MediaRequest); - const existingAutoRequests = await requestRepository - .createQueryBuilder('request') - .leftJoinAndSelect('request.media', 'media') - .where('request.requestedBy = :userId', { userId: user.id }) - .andWhere('request.isAutoRequest = true') - .andWhere('media.tmdbId IN (:...tmdbIds)', { tmdbIds: watchlistTmdbIds }) - .getMany(); + const existingAutoRequests: MediaRequest[] = + watchlistTmdbIds.length > 0 + ? await requestRepository + .createQueryBuilder('request') + .leftJoinAndSelect('request.media', 'media') + .where('request.requestedBy = :userId', { userId: user.id }) + .andWhere('request.isAutoRequest = true') + .andWhere('media.tmdbId IN (:...tmdbIds)', { + tmdbIds: watchlistTmdbIds, + }) + .getMany() + : []; const autoRequestedTmdbIds = new Set( existingAutoRequests