Skip to content

v1.5.14 — Fix infinite requeue loop

Choose a tag to compare

@trek-e trek-e released this 26 Feb 21:18
· 118 commits to main since this release

Fix

Infinite requeue loop — The dedup check in get_queued_scene_ids() only looked at pending/in-progress items (status 0, 1, 2), making completed items (status 5) invisible. When auto-reconciliation ran on each plugin invocation, it re-enqueued scenes the worker had just finished processing, creating an endless cycle (355K+ processed items observed).

Root Cause

get_queued_scene_ids() queried WHERE status IN (0, 1, 2) — completed items weren't included. The reconciliation engine would see completed scenes as "not in queue" and re-enqueue them immediately.

Fix

get_queued_scene_ids() now includes recently-completed items (within 24 hours) in the dedup check, preventing immediate re-enqueue while still allowing legitimate re-sync after sufficient time.

Verification

  • 1,276 tests pass including 9 new regression tests
  • Explicit test_prevents_infinite_requeue_scenario covers the exact bug