Feature #15318

[API] Include X-Request-Id value in every RailsAPI error message

Added by Ward Vandewege 3 months ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Start date:
07/10/2019
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
1.0

Description

Background:
  • Some SDKs (including Python) send an X-Request-Id value with each API request, but the calling application doesn't necessarily report it to the user.
  • Controller adds an X-Request-Id value to each request if the caller didn't supply one -- so every RailsAPI request has an X-Request-Id value.
  • Each RailsAPI error response has an "error token" value generated by RailsAPI, which is meant to help correlate client-reported errors with RailsAPI server logs. However, the calling application doesn't necessarily report this to the user along with the error message.

Improvement: Every RailsAPI error response should include the current X-Request-Id value in the message text.

This way, even tools that only display the error message itself without response metadata -- e.g., arvados-cwl-runner -- will convey the request ID to the user, and ops can use that error report to grep RailsAPI, controller, and nginx logs for related entries.


Subtasks

Task #15388: Review 15318-ReqIds-on-api-errorsResolvedPeter Amstutz

Associated revisions

Revision b36138dd
Added by Lucas Di Pentima about 1 month ago

Merge branch '15318-ReqIds-on-api-errors'
Closes #15318

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <>

History

#1 Updated by Tom Clegg 2 months ago

  • Description updated (diff)
  • Subject changed from [API] expose requestID when Rails throws an error that is reported to a client. This should expose requestID when a-c-r errors out. to [API] Include X-Request-Id value in every RailsAPI error message

#2 Updated by Tom Morris 2 months ago

  • Story points set to 1.0

#3 Updated by Tom Morris 2 months ago

  • Target version changed from To Be Groomed to Arvados Future Sprints

#4 Updated by Tom Morris 2 months ago

  • Target version changed from Arvados Future Sprints to 2019-07-03 Sprint

#5 Updated by Lucas Di Pentima 2 months ago

  • Assigned To set to Lucas Di Pentima

#6 Updated by Lucas Di Pentima about 2 months ago

  • Target version changed from 2019-07-03 Sprint to 2019-07-17 Sprint

#7 Updated by Lucas Di Pentima about 1 month ago

  • Status changed from New to In Progress

#8 Updated by Lucas Di Pentima about 1 month ago

Updates at ae3c4f3be - branch 15318-ReqIds-on-api-errors
Test run: https://ci.curoverse.com/job/developer-run-tests/1379/

  • Adds X-Request-Id's value at the end of every error message.
  • Tests updated

#9 Updated by Lucas Di Pentima about 1 month ago

Updates at c45edd611
Test run: https://ci.curoverse.com/job/developer-run-tests/1380/
WB Integration tests retry: https://ci.curoverse.com/job/developer-run-tests-apps-workbench-integration/1438/

Updated some go component tests to match error message with trailing request ids.

#10 Updated by Peter Amstutz about 1 month ago

Lucas Di Pentima wrote:

Updates at c45edd611
Test run: https://ci.curoverse.com/job/developer-run-tests/1380/
WB Integration tests retry: https://ci.curoverse.com/job/developer-run-tests-apps-workbench-integration/1438/

Updated some go component tests to match error message with trailing request ids.

This LGTM

#11 Updated by Lucas Di Pentima about 1 month ago

  • Status changed from In Progress to Resolved

Also available in: Atom PDF