Cupix::HttpClient missing OpenSSL::X509::StoreError retry
Cupix::HttpClient missing OpenSSL::X509::StoreError retry
What Happened#
tesla (cupixvista, QA/ECE 배포 cupix-tesla-ece-qa, us-west-2) 가 외부/내부 downstream 엔드포인트로 보낸 outbound HTTP 요청이 503 Service Unavailable 을 반환했고, Cupix::HttpClient 의 내장 재시도(최대 3회, exponential backoff)를 모두 소진한 뒤 RestClient::ServiceUnavailable 로 re-raise 되어 Datadog Error Tracking 에 집계되었다. cupixvista-rest_client 는 실제 앱 서비스가 아니라 rest_client gem 에 붙은 APM instrumentation adapter 이름이다. 3개월(2026-05-01 ~ 2026-08-04) 동안 7,569건이 하나의 fingerprint 로 묶여 있으며, 다양한 downstream 대상의 503 이 한 issue 로 합쳐진 것으로 보인다.
Quick Facts#
| Field | Value |
|---|---|
| exception.class | RestClient::ServiceUnavailable |
| exception.message | 503 Service Unavailable |
| top_frame | lib/cupix/http_client.rb (get/post/put/delete/patch 의 raise) |
| runtime | Ruby (Rails monolith, tesla) |
| env | QA / ECE (cupix-tesla-ece-qa, us-west-2) |
deploy SHA 는 로그에서 확인 불가하여 생략.
Affected Teams#
에러가 Error Tracking 에만 존재하고 매칭되는 Datadog 로그가 없어 특정 downstream/도메인으로 범위를 좁힐 수 없다. Cupix::HttpClient 호출부는 다수의 third-party 연동(Procore, PlanGrid, BIM360, Revizto, Salesforce, Slack, Zapier, Workato, Power BI, Gemini)과 내부 microservice(voxel, siteinsights, issue, thumbnail, notification)에 걸쳐 있다.
Timeline#
- 2026-05-01 15:16 KST — 최초 발생 (first_seen). Representative Error 로 pin 된 시점.
- 2026-05-01 ~ 2026-08-04 — 동일 fingerprint 로 7,569건 누적 (여러 downstream 503 이 하나로 그룹화).
- 2026-08-04 13:53 KST — 최근 발생 (last_seen).
- 2026-08-04 — RCA 수행. Datadog 에서 매칭 로그 0건 확인, ET-only issue 로 판정.
Scoring#
Confidence 85% · Actionability 52%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 5 code refs, 7 log queries |
| Code path explicitness | 3/3 | 5 file:line refs |
| Log evidence | 3/3 | section, query, pattern |
| RCA structure | 3/3 | 3/3 sections |
| Revision history | 0/3 | 0 revision(s) |
| Agent execution | 3/3 | success |
Actionability#
| Dimension | Score | Detail |
|---|---|---|
| Fix complexity | 5/5 | trivial |
| Affected files | 1/5 | 10 file(s) |
| Single repo | 1/3 | 4 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 2/3 | test mentioned |
| External dependency | 1/3 | external deps found |
| Data migration | 3/3 | no migration |