External / infra
Faraday::TimeoutError
Net::ReadTimeout with #<TCPSocket:(closed)>
In one line
The data-warehouse token request made during SAML login timed out; this is a rare, transient failure of an external service.
Checked against the code
What happened
- Login calls grant_dw_access_token, which does a bare Faraday.post to the data warehouse /oauth/token.
- That call has no explicit timeout and no rescue, so a slow data warehouse raises Faraday::TimeoutError (Net::ReadTimeout).
- Only 2 events in 50 days for 2 users, so this is an occasional slow response, not a permanent bug.
- The user sees a 500 instead of being logged in or redirected to the error page.
What to do next
- Code fix In app/controllers/v1/saml_sessions_controller.rb, grant_dw_access_token: set explicit open_timeout/timeout (e.g. 5s and 10s) on the Faraday.post request, and rescue Faraday::TimeoutError and Faraday::ConnectionFailed, returning nil so login still succeeds without the DW token.
- Check Check the data warehouse service's latency and logs around 2026-11-10 19:21 UTC and 2026-09-21 13:45 UTC for slowness.
Queries are shown, never run. Check them before using them on production.
Ask a follow-up
Continues the same session, so it still remembers the error and the code it read.
Analysed 1 h ago · claude-sonnet-5-5 · $0.03