From 0ca6e86177d20bca8d3b96a0b1f0a6ea4aa91c04 Mon Sep 17 00:00:00 2001 From: walrusec Date: Sun, 19 Apr 2026 08:54:47 -0400 Subject: [PATCH] Fix metadata search crash when ComicVine or Douban return None on error Both comicvine.py and douban.py return None instead of [] when an HTTP error occurs during a metadata search. The consumer in search_metadata.py iterates the result directly, which raises TypeError: 'NoneType' object is not iterable and crashes the server on single-threaded deployments. Fixes #3606 --- cps/metadata_provider/comicvine.py | 2 +- cps/metadata_provider/douban.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cps/metadata_provider/comicvine.py b/cps/metadata_provider/comicvine.py index b4d8d34c..52c16d39 100644 --- a/cps/metadata_provider/comicvine.py +++ b/cps/metadata_provider/comicvine.py @@ -57,7 +57,7 @@ class ComicVine(Metadata): result.raise_for_status() except Exception as e: log.warning(e) - return None + return [] for result in result.json()["results"]: match = self._parse_search_result( result=result, generic_cover=generic_cover, locale=locale diff --git a/cps/metadata_provider/douban.py b/cps/metadata_provider/douban.py index 1dd12d8a..11f88996 100644 --- a/cps/metadata_provider/douban.py +++ b/cps/metadata_provider/douban.py @@ -155,7 +155,7 @@ class Douban(Metadata): r.raise_for_status() except Exception as e: log.warning(e) - return None + return [] match = MetaRecord( id=id,