BLAST Database Availability Guard¶
Motivation¶
BLAST submits could reach the elastic-blast submit step even when the selected database prefix was not present in the workload Storage blast-db container. The run then failed late in the Submit Job timeline with a raw ElasticBLAST "database not found" error.
User-facing change¶
Submit pre-flight now checks that the selected BLAST database has usable files in Storage. The worker repeats the same check during Prepare Run, before any ElasticBLAST submit command is streamed, and fails the job with a clear database_unavailable phase when the database is missing.
API/IaC diff summary¶
- Added Storage-backed BLAST database availability validation for submit pre-flight and the Celery submit task.
- Added timeline mapping for
database_unavailableso the failure belongs to Prepare Run instead of Submit Job. - No IaC changes.
Validation evidence¶
uv run pytest -q api/tests/test_blast_database_availability.py api/tests/test_blast_tasks.py -k 'database_availability or helpers_are_reexported'cd web && npm run test -- src/components/BlastStepTimeline/stepState.test.tscd web && npm run build