2.3 KiB
2.3 KiB
M9 Build Blockers and Recovery
Database connection failure
Symptoms:
- backend cannot connect to PostgreSQL,
- migrations fail,
- PostGIS extension missing.
Recovery:
- Check Docker Compose service names.
- Check environment variables.
- Confirm database is reachable from backend container or local process.
- Run a minimal connection test.
- Do not replace PostGIS with SQLite except for explicitly isolated unit tests.
PostGIS geometry error
Symptoms:
- invalid geometry,
- SRID missing,
- geometry column cannot be created.
Recovery:
- Store all app geometry in EPSG:4326 unless a processing-specific CRS is required.
- Validate GeoJSON before persistence.
- Use Shapely for geometry validation.
- Use PostGIS geometry column for persistent area/reference features.
- Document any CRS transformation.
Frontend API mismatch
Symptoms:
- UI expects raw data but API returns envelope,
- errors not shown,
- undefined data states.
Recovery:
- Update frontend API client, not individual components.
- Normalize envelope handling centrally.
- Ensure every component handles loading, empty, error and ready states.
Dependency installation failure
Symptoms:
- GDAL/Rasterio install errors,
- PyTorch package issue,
- platform binary mismatch.
Recovery:
- Do not remove the feature from docs.
- Add dependency note to
docs/DEPENDENCY_LOCK_PLAN.md. - Implement interfaces and tests around pure-Python parts first.
- Defer heavy binary package execution if needed, but leave adapter boundaries.
External data unavailable
Symptoms:
- WFS unavailable,
- Sentinel catalog unavailable,
- credentials missing.
Recovery:
- Use demo fixtures.
- Keep adapter disabled but present.
- Return explicit
external_service_unavailablestatus. - Do not fake that live data was fetched.
AI model unavailable
Symptoms:
- YOLO weights missing,
- SAM unavailable,
- GPU unavailable.
Recovery:
- Build model registry and adapter interface.
- Add CPU-safe mock inference only if marked as demo mode.
- Keep output schema identical to real inference.
- Do not present demo inference as production inference.
Test failures
Recovery:
- Fix tests if implementation is wrong.
- Fix implementation if test reflects contract.
- Update specs only if they are clearly inconsistent.
- Document unresolved failures in execution log.