CPUtils#fetchWithRetry per-attempt timeout too low — 1000ms
Service
cupixworks-api
Occurrences
270
Status
Dismissed
Confidence
85%
Actionability
36%
Cluster ID
8f074b3f-e19c-43f6-a290-f6fb15ef4743
First Seen
2026-07-03 08:43 UTC
Last Seen
2026-08-04 22:20 UTC
Actions
현재 상태 dismissed 에서는 실행할 액션이 없습니다.
CPUtils#fetchWithRetry per-attempt timeout too low — 1000ms
What Happened#
2026-07-03 17:43:31 KST 프로덕션 cupixworks-api (us-west-2)에서 pub/sub subscriber가 facility_permission 이벤트 처리 중 notification-service의 PUT /api/v1/subscriptions 와 POST /api/recipes/v2를 호출했으나 모두 API Gateway 403을 받았다. 동시간대 notification-service Lambda authorizer 로그에서 Fetch attempt 1/3 ~ 3/3 failed: This operation was aborted가 관측되며, 최종적으로 Error authorizing: This operation was aborted가 남아 authorizer가 isAuthorized: false를 리턴했다. 같은 authorizer timeout 패턴은 최근 24 시간 동안 notification-service에서 반복적으로 관측된다.
Quick Facts#
| Field | Value |
|---|---|
| exception.class | RestClient::Forbidden (RestClient::ExceptionWithResponse 서브클래스) |
| exception.message | Forbidden (API Gateway 응답 본문 원문) |
| top_frame | lib/cupix/notification_service.rb:89 (subscribe rescue) |
| runtime | Ruby on Rails, tesla monolith |
| deploy | production-us-west-2-20260703T0821Z0-13e7c827-cupixworks |
| env | production, region:us-west-2 |
| host | ip-10-1-19-190.us-west-2.compute.internal (pid 14912) |
| downstream | notification-service (Lambda + API Gateway HTTP API v2) |
| tesla request_id | 735d1c43-3382-4ba9-8033-c2d59b416e84 |
| authorizer request_id | 0009e416-68a5-40cc-bc9b-6d7a5625ee88 |
| facility_key | p412bz |
Affected Teams#
| Team / Domain | Error Count | Impact |
|---|---|---|
cupixworks-api (Cupix::NotificationService) |
4 (1 subscribe + 3 recipe) | Facility p412bz의 accessor user 알림 구독 및 3 종 이메일 레시피(record_preview_ready, record_processing_completed, facility_new_project) 생성 실패 |
| notification-service (authorizer) | 200+ (14 d) | Tesla /api/v1/me fetch timeout으로 authorizer가 유효한 토큰을 거절, 다수 요청이 403으로 종료 |
Timeline#
- 2026-07-03 17:43:27 KST — notification-service authorizer
fetchWithRetry1 회차 abort (0009e416Fetch attempt 1/3 failed: This operation was aborted) - 2026-07-03 17:43:29 KST — retry 2 회차 abort
- 2026-07-03 17:43:30.211 KST — retry 3 회차 최종 실패, authorizer catch 블록이
Error authorizing: This operation was aborted로깅 후{ isAuthorized: false }반환 → API Gateway가 403 응답 생성 - 2026-07-03 17:43:31.099 KST — cupixworks-api
Cupix::NotificationService#create_user_recipe× 3 실패 (recipe_name=record_preview_ready,record_processing_completed,facility_new_project),error_response: {"message":"Forbidden"} - 2026-07-03 17:43:31.100 KST — cupixworks-api
Cupix::NotificationService#subscribe실패, rescue 블록에서e.response를 로그 message로 남김 → cluster fingerprint 대상 로그
Scoring#
Confidence 85% · Actionability 36%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 14 code refs, 8 log queries |
| Code path explicitness | 3/3 | 14 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 | 1/5 | critical |
| Affected files | 1/5 | 20 file(s) |
| Single repo | 1/3 | 4 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 0/3 | no test info |
| External dependency | 3/3 | no external deps |
| Data migration | 3/3 | no migration |