Propagate ARAX's status code instead of dropping it - #151
Merged
Conversation
The ARAX worker logged the status code of the ARAX service's response and
then threw it away: a non-2xx body was parsed and saved as if it were a
TRAPI response, and anything that raised on the way (including .json() on
an HTML error page) was swallowed into a non-TRAPI {"status": "error"}
blob that the workflow reported as a successful query. Nothing downstream
-- the span, the query's logs, the response the caller gets -- was left
with a status code to report.
Failures now raise ARAXServiceError carrying ARAX's own status code, which
puts it on the task span as arax.status_code, in the query's logs via
run_task_lifecycle, and in a TRAPI response whose status/description say
what happened; run_task_lifecycle then routes the query to finish_query
with an ERROR status, matching the same fix already made in
arax_pathfinder. Failures with no response at all -- connect errors and
timeouts -- report 502 and 504 rather than a made-up code of their own.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BmsMzWR6tNbDM2uSxh47n8
Codecov Report❌ Patch coverage is
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ARAX worker logged the status code of the ARAX service's response and then threw it away: a non-2xx body was parsed and saved as if it were a TRAPI response, and anything that raised on the way (including .json() on an HTML error page) was swallowed into a non-TRAPI {"status": "error"} blob that the workflow reported as a successful query. Nothing downstream -- the span, the query's logs, the response the caller gets -- was left with a status code to report.
Failures now raise ARAXServiceError carrying ARAX's own status code, which puts it on the task span as arax.status_code, in the query's logs via run_task_lifecycle, and in a TRAPI response whose status/description say what happened; run_task_lifecycle then routes the query to finish_query with an ERROR status, matching the same fix already made in arax_pathfinder. Failures with no response at all -- connect errors and timeouts -- report 502 and 504 rather than a made-up code of their own.
Claude-Session: https://claude.ai/code/session_01BmsMzWR6tNbDM2uSxh47n8