codeant-ai-for-open-source[bot] commented on code in PR #43081:
URL: https://github.com/apache/superset/pull/43081#discussion_r3762741827
##########
superset/charts/data/api.py:
##########
@@ -646,6 +646,8 @@ def _get_data_response(
return
self.response_422(message=sanitize_error_message(exc.message))
except ChartDataQueryFailedError as exc:
return
self.response_400(message=sanitize_error_message(exc.message))
+ except QueryObjectValidationError as exc:
+ return
self.response_400(message=sanitize_error_message(exc.message))
Review Comment:
**Suggestion:** The new handling only covers `_get_data_response`, but the
`GLOBAL_ASYNC_QUERIES` path calls `command.execute(force_cached=True)` directly
in `_run_async`, where only `ChartDataCacheLoadError` is caught. If
execution-time validation in `get_payload_result()` raises
`QueryObjectValidationError` during the cache lookup, it escapes to Flask and
returns HTTP 500 instead of 400. Add equivalent handling to the async cache-hit
path before scheduling the background job. [incomplete implementation]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ Async chart requests can return HTTP 500 for invalid queries.
- ⚠️ Clients receive server errors instead of validation feedback.
- ⚠️ GLOBAL_ASYNC_QUERIES cache-hit handling remains inconsistent.
```
</details>
[](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=cada535cf7744bc9975d74fedca865ad&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
[](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=cada535cf7744bc9975d74fedca865ad&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/charts/data/api.py
**Line:** 649:650
**Comment:**
*Incomplete Implementation: The new handling only covers
`_get_data_response`, but the `GLOBAL_ASYNC_QUERIES` path calls
`command.execute(force_cached=True)` directly in `_run_async`, where only
`ChartDataCacheLoadError` is caught. If execution-time validation in
`get_payload_result()` raises `QueryObjectValidationError` during the cache
lookup, it escapes to Flask and returns HTTP 500 instead of 400. Add equivalent
handling to the async cache-hit path before scheduling the background job.
Validate the correctness of the flagged issue. If correct, How can I resolve
this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask
user if the user wants to fix the rest of the comments as well. if said yes,
then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43081&comment_hash=f0cf7ca1c5485d2271fc4c67e6b8336df595a3d4630fd7c143f7b7b2c61bd6ed&reaction=like'>👍</a>
| <a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43081&comment_hash=f0cf7ca1c5485d2271fc4c67e6b8336df595a3d4630fd7c143f7b7b2c61bd6ed&reaction=dislike'>👎</a>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]