Proxy Saving and UX Fixes (#4467)

This commit is contained in:
Marc Kelechava
2026-01-15 13:26:26 -08:00
committed by GitHub
parent 5e23c580e7
commit be3128e47d
6 changed files with 21 additions and 7 deletions

View File

@@ -109,6 +109,11 @@ def _deserialize_proxy_location(value: str | None) -> ProxyLocationInput:
if value.startswith("{"):
try:
data = json.loads(value)
# Handle malformed subdivision (e.g., boolean instead of string)
subdivision = data.get("subdivision")
if subdivision is not None and not isinstance(subdivision, str):
LOG.warning("Malformed subdivision in proxy_location", db_value=value, subdivision=subdivision)
data["subdivision"] = None
result = GeoTarget.model_validate(data)
LOG.info(
"Deserialized proxy_location as GeoTarget",
@@ -116,8 +121,8 @@ def _deserialize_proxy_location(value: str | None) -> ProxyLocationInput:
result=str(result),
)
return result
except (json.JSONDecodeError, ValueError):
pass
except (json.JSONDecodeError, ValueError) as e:
LOG.warning("Failed to parse proxy_location as GeoTarget", db_value=value, error=str(e))
# Try as ProxyLocation enum
try: