fix(analyze): 500 on NULL-geometry parcels (random-parcel crash) #1033
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1033
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/analyze-null-geom-500"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Критфикс: 500 на участках с NULL-геометрией (краш «рандомного участка»).
POST /analyze 500-ил (
TypeError: float(None)) на ~964 строках cad_parcels_geom, у которых есть meta-строка, ноgeom IS NULL: резолв возвращал строку (без NULL-фильтра) → geom_wkt=NULL → ST_Centroid(NULL) → NULL lat/lon →float(centroid_row["lat"])краш (guardif centroid_rowпроверял наличие строки, не NULL-значения). Любой такой «рандомный участок» → 500.Фикс:
AND geom IS NOT NULLво все 3 geom-резолв запроса → NULL-geom участок идёт в #93 graceful fallback (NSPD-fetch → 202), как отсутствующий в БД; fetch подтянет реальную геометрию. + defensive: centroid проверяет именно ЗНАЧЕНИЕ (не наличие строки) перед float().Проверено: badformat→400, not-in-DB→202, валидный→200 (цель 66:41:0702048:27 не затронута). 39 analyze/by-bbox тестов зелёные. Refs #944.