fix(indexing): retry empty indexes hourly
CI / build-and-test (push) Canceled after 0s
CI / provider-contracts (push) Canceled after 0s
CI / compose-contracts (push) Canceled after 0s

This commit is contained in:
2026-07-20 16:48:53 -04:00
parent 3ddb059162
commit 65d262c806
@@ -300,7 +300,11 @@ public sealed class LibraryIndexMaintenanceService(
.MaxAsync(track => (DateTimeOffset?)track.IndexedAt, cancellationToken);
if (lastIndexedAt.HasValue && now - lastIndexedAt.Value < MaximumIndexAge) continue;
var generation = now.UtcTicks / MaximumIndexAge.Ticks;
// An empty index may be the result of a transient backend/schema problem. Give it
// a fresh hourly idempotency bucket so a corrected deployment can recover promptly;
// populated indexes retain the quieter twelve-hour refresh cadence.
var generationWindow = lastIndexedAt.HasValue ? MaximumIndexAge : CheckInterval;
var generation = now.UtcTicks / generationWindow.Ticks;
var result = await jobs.EnqueueAsync(new DurableJobEnqueueRequest<LibraryIndexJobPayload>(
"library.index",
$"library-index:auto:{identity.TenantId:N}:{identity.UserId:N}:{identity.BackendInstanceId}:music:{generation}",