ES /docs

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 만 흡수하고 ENT4000throw ec 로 재전파되어 BaseService.handlingMessageErrors 까지 도달해 error 레벨로 로깅되며 Error Tracking noise 가 된다. ENT4000 을 동일하게 흡수하면 예외 전파·error 로깅 자체가 사라진다.
  • Lines: ~120-129 (catch 절 내 if (code === 'ARG10002') 한 줄)

Acceptance Criteria#

  • floorplan-service.ts catch 절이 ARG10002ENT4000 두 코드를 모두 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). 기존 테스트로 회귀 확인.