BaseService::handlingMessageErrors | sqsMessage - {"MessageId":"9f075323-20ba-4345-b43f-dec825086dd8
Fix Plan: BaseService::handlingMessageErrors | 403 ENT4000 "Floorplan not found"
Changes#
cupixworks: applications/agents/packages/cupix-tesla-floorplan-agent/src/floorplan-service.ts#
- What:
createCPFloorplanByFloorplanId의.catch절에서 흡수(정상 skip) 대상 error code 에ENT4000를 추가한다. 현재if (code === 'ARG10002') return undefined;를if (code === 'ARG10002' || code === 'ENT4000') return undefined;로 확장한다. - Why: floorplan 이 SQS 큐잉 후 처리 직전에 trash(soft-delete) 되면 tesla
GET /api/v1/floorplans/{id}가403 ENT4000 Cupix::Errors::NotFound "Floorplan not found"를 반환한다 (base_repository.rb:351-356: 활성 scope nil + trash 존재 →ENT4000, 완전 부재 →ARG10002, 둘 다Cupix::Errors::NotFound). agent 관점에서 두 코드 모두 "더 이상 처리할 floorplan 이 없음" 으로 의미가 동일하다. 현재ARG10002만 흡수하고ENT4000는throw ec로 재전파되어BaseService.handlingMessageErrors까지 도달해error레벨로 로깅되며 Error Tracking noise 가 된다.ENT4000을 동일하게 흡수하면 예외 전파·error 로깅 자체가 사라진다. - Lines: ~120-129 (catch 절 내
if (code === 'ARG10002')한 줄)
Acceptance Criteria#
-
floorplan-service.tscatch 절이ARG10002와ENT4000두 코드를 모두return undefined로 흡수한다. -
throw ec는 그 외 code 에 대해서만 실행된다 (다른 error 는 여전히 전파). -
warn로그(createCPFloorplanByFloorplanId | end - reason: %s) 는 그대로 유지 — skip 여부와 무관하게 사유는 남긴다. -
base-service.ts의 logging/error-handling 경로는 변경하지 않는다 (representative 공란은 로그포맷 문제일 뿐 원인 아님). - eslint 통과 (changed file).
Tests#
- 기존 테스트:
cupix-tesla-floorplan-agent패키지 테스트 (있는 경우) 통과. - 신규 테스트: 별도 spec 미추가 (조건절 한 줄 확장, TRIVIAL). 기존 테스트로 회귀 확인.