fix(initialization): remove duplicate nfo_scan progress completion

The nfo_scan_completed event handler was calling complete_progress()
which removed the progress before _execute_nfo_scan returned. This caused
perform_nfo_scan_phase to fail with 'Progress with id nfo_scan not found'
when it tried to complete the same progress.

Completion is now only handled by perform_nfo_scan_phase after
_execute_nfo_scan returns, as intended.
This commit is contained in:
2026-06-10 18:20:04 +02:00
parent 288b03cbb4
commit 023ddd182f

View File

@@ -478,13 +478,8 @@ async def _execute_nfo_scan(progress_service=None) -> None:
key=data.get('key'),
folder=data.get('folder'),
)
elif event_data.get('type') == 'nfo_scan_completed':
stats = event_data.get('statistics', {})
if progress_service:
await progress_service.complete_progress(
progress_id="nfo_scan",
message=f"NFO scan complete: {stats.get('created', 0)} created, {stats.get('updated', 0)} updated",
)
# Note: nfo_scan_completed event is NOT handled here because
# perform_nfo_scan_phase handles completion after _execute_nfo_scan returns
nfo_service.subscribe_to_scan_events(nfo_event_handler)
@@ -551,11 +546,18 @@ async def perform_nfo_scan_if_needed(progress_service=None):
except Exception as e:
logger.error("Failed to complete NFO scan: %s", e, exc_info=True)
if progress_service:
try:
await progress_service.fail_progress(
progress_id="nfo_scan",
error_message=f"NFO scan failed: {str(e)}",
metadata={"step_id": "nfo_scan"}
)
except Exception as fail_err:
logger.warning(
"Could not fail progress 'nfo_scan': %s",
fail_err,
exc_info=True
)
async def perform_nfo_scan_phase(progress_service=None):
@@ -627,11 +629,18 @@ async def perform_nfo_scan_phase(progress_service=None):
except Exception as e:
logger.error("Failed to complete NFO scan phase: %s", e, exc_info=True)
if progress_service:
try:
await progress_service.fail_progress(
progress_id="nfo_scan",
error_message=f"NFO scan failed: {str(e)}",
metadata={"step_id": "nfo_scan", "phase": "nfo"}
)
except Exception as fail_err:
logger.warning(
"Could not fail progress 'nfo_scan': %s",
fail_err,
exc_info=True
)
async def _check_media_scan_status() -> bool: