fix: return 400 instead of 502 for invalid search filters (#5482)
This commit is contained in:
@@ -451,6 +451,10 @@ def search_memories(search_req: SearchRequest, _auth=Depends(verify_auth)):
|
|||||||
if search_req.explain is not None:
|
if search_req.explain is not None:
|
||||||
params["explain"] = search_req.explain
|
params["explain"] = search_req.explain
|
||||||
return get_memory_instance().search(query=search_req.query, filters=filters, **params)
|
return get_memory_instance().search(query=search_req.query, filters=filters, **params)
|
||||||
|
except ValueError as e:
|
||||||
|
raise HTTPException(status_code=400, detail=str(e))
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception:
|
except Exception:
|
||||||
raise upstream_error()
|
raise upstream_error()
|
||||||
|
|
||||||
|
|||||||
@@ -682,3 +682,22 @@ class TestSearchEntityIdMapping:
|
|||||||
_, kwargs = mock_memory.search.call_args
|
_, kwargs = mock_memory.search.call_args
|
||||||
assert kwargs["filters"]["user_id"] == "u1"
|
assert kwargs["filters"]["user_id"] == "u1"
|
||||||
assert kwargs["filters"]["category"] == "food"
|
assert kwargs["filters"]["category"] == "food"
|
||||||
|
|
||||||
|
|
||||||
|
class TestSearchValidationErrors:
|
||||||
|
"""Verify that ValueError from Memory.search() returns 400, not 502."""
|
||||||
|
|
||||||
|
def test_empty_filters_returns_400(self, client, mock_memory):
|
||||||
|
mock_memory.search.side_effect = ValueError(
|
||||||
|
"filters must contain at least one of: user_id, agent_id, run_id"
|
||||||
|
)
|
||||||
|
resp = client.post("/search", json={"query": "food", "filters": {}})
|
||||||
|
assert resp.status_code == 400
|
||||||
|
assert "filters must contain" in resp.json()["detail"]
|
||||||
|
|
||||||
|
def test_no_identifiers_returns_400(self, client, mock_memory):
|
||||||
|
mock_memory.search.side_effect = ValueError(
|
||||||
|
"filters must contain at least one of: user_id, agent_id, run_id"
|
||||||
|
)
|
||||||
|
resp = client.post("/search", json={"query": "food"})
|
||||||
|
assert resp.status_code == 400
|
||||||
|
|||||||
Reference in New Issue
Block a user