project-nomad/admin/app
Chris Sherwood 5c1ea23b81 fix(queue): clear terminal jobs before re-dispatch so downloads aren't silently dropped
Three dispatch sites pin a deterministic jobId. `queue.add` with an existing
custom jobId returns the existing job rather than throwing, so any retained
terminal record makes later dispatches a silent no-op while still reporting
success to the caller.

- download_model_job: only `failed` records were cleared, so once a model
  downloaded successfully its retained completed job blocked every later
  request for that model. Deleting the model and reinstalling it did nothing,
  and a restart did not help because the record is persisted in Redis. Adds
  getActiveByModelName, mirroring RunDownloadJob.getActiveByUrl.
- download_service.retryFailedJob: the model branch dispatched before removing,
  so remove() targeted the job just enqueued under the same id instead of the
  old record. Flipped to remove-then-dispatch, matching the file branch.
- embed_file_job: a retained failed record made re-indexing that file a no-op,
  returning 202 "Indexing queued" with nothing enqueued.

In-flight jobs are still returned as-is, so re-clicking during an active
download or embed stays idempotent.

Diagnosis by @caweis in #1214, including the retry-ordering race and the embed
case. Reimplemented in-house rather than ported, as noted there.

Closes #1214
2026-08-10 17:27:58 -07:00
..
controllers fix(UI): add API reference to Settings sidebar 2026-08-04 03:38:40 +00:00
data refactor(drug-reference): make collections JSON the single source for curated data (#1130) 2026-08-04 03:38:35 +00:00
exceptions fix(Docs): documentation renderer fixes 2025-12-23 16:00:33 -08:00
jobs fix(queue): clear terminal jobs before re-dispatch so downloads aren't silently dropped 2026-08-10 17:27:58 -07:00
middleware fix(API): skip compression for Server-Sent Events (#798) 2026-05-20 10:16:00 -07:00
models feat(benchmark): official multi-arch sysbench, resolved digest, platform metadata (#1158) 2026-08-04 03:39:53 +00:00
services fix(queue): clear terminal jobs before re-dispatch so downloads aren't silently dropped 2026-08-10 17:27:58 -07:00
utils fix(downloads): don't retry a rejected entitlement for four hours (#1205) 2026-08-04 03:40:02 +00:00
validators feat: support gated downloads for self-hosted curated content (#1172) 2026-08-04 03:39:55 +00:00