Skip to content

Fix legacy dataset manifest binding and retry loop - #77

Merged
hjcud merged 1 commit into
developfrom
feature/76-legacy-manifest-binding
Aug 9, 2026
Merged

Fix legacy dataset manifest binding and retry loop#77
hjcud merged 1 commit into
developfrom
feature/76-legacy-manifest-binding

Conversation

@hjcud

@hjcud hjcud commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

What failed

INT03 run dcc110d7-6cb2-3909-bb9f-623b21ac90bf selected AVAILABLE manifest 7f7113c9-3b02-4098-97ec-0baa07e2b3b0. Its eight deployed object keys use the legacy loader path segment manifest_id=<UUID>, while PostgresDatasetManifestSource accepted only the newer dataset=<UUID> convention. The resulting ConfigurationError escaped the handler and the worker retried the same deterministic input five times.

Fix

  • accept canonical dataset=<UUID> keys only when every object binds one identical logical dataset;
  • accept legacy manifest_id=<UUID> keys only when every object binds the requested manifest;
  • reject mixed, missing, invalid, duplicate, or mismatched bindings fail-closed;
  • classify catalog readiness failures as JobNotSatisfiable(REQUIRED_INPUT_UNAVAILABLE), which the existing handler publishes as a non-retryable terminal FAILED result;
  • preserve the canonical logical dataset ID for new-format keys;
  • add a regression using the exact eight-shard Development key shape.

Verification

  • python -m pytest -p no:cacheprovider tests/test_production.py -k dataset_manifest_source -q — 6 passed
  • python -m pytest -p no:cacheprovider — 1245 passed, 3 skipped, 168 deselected
  • python -m ruff check src tests — passed
  • python -m mypy — passed
  • git diff --check — passed

No schema, contract, DLQ, worker, ASG, or database mutations are included.

Closes #76

@hjcud
hjcud merged commit ee979bc into develop Aug 9, 2026
9 checks passed
@hjcud
hjcud deleted the feature/76-legacy-manifest-binding branch August 9, 2026 04:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix legacy dataset manifest binding and terminal failure classification

1 participant