POST /estimate returned an opaque 502 (gateway timeout), not a null-floor crash: the ungated Yandex valuation (30s httpx) + geocode/Overpass chain run serially on every estimate. Wraps slow enrichments in asyncio.wait_for budgets (config) so a slow upstream degrades to None instead of exceeding the gateway read timeout. Handler try/except -> logger.exception + 503 so future real errors are visible (GlitchTip) not masked. Explicit Caddy read/write timeout. Tests: null-floor skips IMV/Cian (no 5xx); Yandex timeout degrades. 65 regr pass. NOTE: Caddyfile.tradein-fragment is shared infra — devops review required. Closes #654 |
||
|---|---|---|
| .. | ||
| avito-city-sweep.sh | ||
| backup-tradein-db.sh | ||
| Caddyfile | ||
| Caddyfile.tradein-fragment | ||
| cron-scrape.sh | ||
| import-rosreestr.sh | ||