[429] {"error":{"root_cause":[],"type":"search_phase_execution_exception","reason":"","phase":"fetch
Service
cupixworks-api
Occurrences
1
Status
Fixing
Confidence
90%
Actionability
28%
Cluster ID
f6f29a9f-b426-4066-807a-a8ab97511281
First Seen
2026-04-16 08:32 UTC
Last Seen
2026-04-16 08:32 UTC
Actions
현재 상태 fixing 에서는 실행할 액션이 없습니다.
[429] {"error":{"root_cause":[],"type":"search_phase_execution_exception","reason":"","phase":"fetch
RCA Summary#
GET /api/v1/admin/editings 엔드포인트에서 aggregation을 포함한 Elasticsearch 쿼리가 실행될 때, SearchableController의 MAX_BUCKET_SIZE_OF_AGGREGATIONS = 5000 상수가 aggregation 결과의 최대 개수(bucket 수)를 결정한다. 이 값은 Elasticsearch terms aggregation의 size 파라미터와 composite aggregation의 size 파라미터로 직접 전달되어, 각 aggregation당 최대 5,000개의 고유 값(bucket)을 반환하도록 설정된다. 08:00~08:35 시간대에 이 엔드포인트에 대한 높은 빈도의 폴링(50건 이상)이 발생하면서 Elasticsearch JVM heap 사용량이 7.5GB 한도를 초과했고, reduce_aggs 단계에서 parent circuit breaker가 트리거되어 429 에러가 반환되었다. 이 에러는 BaseRepository#search의 StandardError catch 블록에서 Cupix::Errors::BadGateway(code BG10002)로 변환되어 502 응답으로 클라이언트에 전달되었다. 초기 circuit breaker 발동 이후 in-flight 요청들이 누적되면서 메모리 사용량이 7.9GB까지 상승했고, 다른 repository 쿼리들도 연쇄적으로 실패했다.
Scoring#
Confidence 90% · Actionability 28%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 15 code refs, 4 log queries |
| Code path explicitness | 3/3 | 15 file:line refs |
| Log evidence | 3/3 | section, query, pattern |
| RCA structure | 3/3 | 3/3 sections |
| Revision history | 1/3 | 1 revision(s) |
| Agent execution | 3/3 | success |
Actionability#
| Dimension | Score | Detail |
|---|---|---|
| Fix complexity | 1/5 | critical |
| Affected files | 1/5 | 19 file(s) |
| Single repo | 1/3 | 2 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 0/3 | no test info |
| External dependency | 1/3 | external deps found |
| Data migration | 3/3 | no migration |