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>
   
   [![Fix in 
Cursor](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-cursor-flat.svg)](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)
 [![Fix in VSCode 
Claude](https://new-codeant-butcket.s3.us-west-1.amazonaws.com/badges/fix-in-vscode-claude-flat.svg)](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]

Reply via email to