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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user