문제 해결
발송 결과가 예상과 다를 때 보는 페이지입니다. 증상별로 확인할 것을 먼저 보고, 원인이 되는 동작 방식은 아래에서 확인하세요. API 쪽 원인은 개발팀과 함께 API 연동 가이드를 확인하세요.
증상별 확인
Section titled “증상별 확인”메시지가 저장되지 않는 경우
Section titled “메시지가 저장되지 않는 경우”저장이 거부되는 경우 표를 차례로 확인하세요.
값이 빈칸으로 발송된 경우
Section titled “값이 빈칸으로 발송된 경우”- 메시지에 쓴 필드명이 응답과 정확히 같은지 (대소문자 포함)
- POST로 JSON을 받는 API라면
:content_type application/json을 적었는지 - 주소에 넣은 값이 특수문자 때문에 깨지지 않았는지 (
url_encode) - 주소를 복사해 붙일 때 보이지 않는 공백이 섞이지 않았는지
- 장애 차단 중이었는지
- API가 JSON 헤더 · 2xx 응답 · 2초 · 1MB 조건을 지키는지 (개발팀 확인)
수신자 발송이 실패로 기록된 경우
Section titled “수신자 발송이 실패로 기록된 경우”- 인증 정보의 이름 · 방식 · 허용 도메인이 호출 주소와 맞는지
{% abort_message %}가 실행됐는지 (실패 사유 ‘개인화 문법 중단’)- 발송 시점에 Liquid 렌더 오류가 났는지
고객사 서버에 요청이 아예 오지 않은 경우
Section titled “고객사 서버에 요청이 아예 오지 않은 경우”- 장애 차단 중이었는지
- 주소가 외부에서 접근 가능한지, 표준 포트(80 · 443)인지
:headers가 JSON 객체 형식인지- 메시지가 실제로 발송됐는지 (저장 거부 · 발송 실패가 아닌지)
방화벽에서 막히는 경우 (403 등)
Section titled “방화벽에서 막히는 경우 (403 등)”- 플레어레인 발신 IP를 허용 목록에 추가했는지
User-Agent: FlareLane-ConnectedContent/1.0요청을 막고 있지 않은지
API 호출이 예상보다 많거나 적은 경우
Section titled “API 호출이 예상보다 많거나 적은 경우”- 지시문 수만큼 호출됩니다. 필드마다 따로 셉니다.
- 처리 중 오류로 재처리되면 같은 수신자에게 다시 호출될 수 있습니다.
- 응답 재사용(캐시)으로 호출이 줄어들 수 있습니다. 재사용 기준은 응답 재사용 설정하기를 확인하세요.
호출이 실패하면
Section titled “호출이 실패하면”대부분은 빈칸으로 발송되지만, 그 수신자에게 아예 발송되지 않는 경우도 있습니다.
| 상황 | 결과 |
|---|---|
| API 호출 실패 (2초 초과, 2xx가 아닌 응답, 1MB 초과, JSON 형식 오류, 접근할 수 없는 주소, 장애 차단 중) | 빈칸으로 두고 발송 |
| 인증 정보가 없거나 방식 · 허용 도메인이 맞지 않음 | 그 수신자 발송 실패 문자 · 카카오 실패 사유: ‘커넥티드 콘텐츠 인증 정보 오류’ |
{% abort_message %} 실행 | 그 수신자에게 발송하지 않음 · 발송 실패로 집계, 과금 없음 문자 · 카카오 실패 사유: ‘개인화 문법 중단’ |
| 발송 시점의 Liquid 렌더 오류 | 그 수신자 발송 실패 |
API가 계속 실패하면 플레어레인은 그 API 서버를 잠시 호출하지 않고 빈칸으로 발송합니다. 장애 중인 서버의 회복을 돕고, 발송이 호출마다 2초씩 늦어지는 걸 막기 위해서입니다. default:로 대체 문구를 적어두면 대비할 수 있습니다.
| 구분 | 내용 |
|---|---|
| 판단 단위 | 프로젝트와 API 서버(도메인)별로 따로 판단합니다 |
| 차단 조건 | 1분 동안 실패가 100건을 넘고, 실패율이 90%를 넘을 때 |
| 실패로 세는 것 | 2초 초과 · 연결 실패, 408 · 429 · 502 · 503 · 504 · 529 응답 404 · 500 같은 다른 오류는 서버가 살아 있다는 뜻이라 세지 않습니다 |
| 차단 시간 | 1분 |
| 재개 | 1분 뒤 시험 호출 3건이 모두 성공하면 재개, 실패하면 다시 1분 차단 |