[AI 시스템 아카이브 #27] Make 시나리오 토글이 자꾸 꺼지는 이유

AI 시스템 아카이브 · #27 · 자동화 로그

Make 시나리오 토글이 자꾸 꺼지는 이유

Make 시나리오 토글을 켜둬도 일정 시간이 지나면 자꾸 꺼졌다. 발송 도구가 포스트맨이든 뭐든 상관없이 계속 있던 문제다. 원인을 하나씩 지워가며 찾은 기록이다.

지금까지 블로그 발행은 포스트맨으로 했다. 클로드가 글을 JSON으로 만들면, 그 JSON을 포스트맨에 붙여넣고 Send를 눌렀다. 그러면 Make 웹훅이 받아서 라우터로 나눠 노션 DB와 블로거에 동시에 넣었다.

그런데 그때도 풀리지 않은 문제가 하나 있었다. Make 시나리오의 토글이 자꾸 꺼지는 것이다. 토글이 꺼져 있으면 데이터를 못 받는다. 그래서 보낼 때마다 매번 Make에 들어가 토글을 켜고 Run once로 받을 준비를 시킨 뒤에야 발송했다. 포스트맨 때부터 계속 그랬다.

증상 — 켜둬도 시간이 지나면 꺼진다

단순히 한 번 켜두면 될 줄 알았다. 그런데 토글을 켜고 저장해도, 일정 시간이 지나면 다시 꺼져 있었다. 새로고침 직후엔 켜져 있다가, 나갔다 들어오면 OFF였다. 30분을 아무것도 안 보내고 그냥 뒀는데도 다시 보니 꺼져 있었다. 보내지도 않았는데 혼자 꺼지는 것처럼 보였다.

토글 초기 상태ON (저장됨)
시간 경과 후OFF
새 발송 여부없음 (30분 방치)
그래도또 꺼짐

헛다리 — 설정은 원인이 아니었다

처음엔 저장이 안 되는 줄 알았다. 스케줄 설정(Immediately), 분당 실행 횟수, 우클릭 메뉴를 차례로 다 열어봤다. 전부 정상이었다. 원인은 거기 없었다. 토글이라는 결과만 보고 그 주변 설정을 뒤진 게 며칠을 잡아먹었다.

로그가 가리킨 곳

봐야 할 곳은 따로 있었다. 실행 기록(History)의 에러 메시지다. 그걸 열고서야 원인이 글자로 보였다.

Scenario deactivated by Make
에러
400 / 자동 비활성화 FAIL
Fix the error or clear the queue. The reason is: [400] Invalid multi_select option, commas not allowed: test, auto
단서
"clear the queue"
처리 중 에러가 났으니 고치거나 큐를 비우라는 말이다. 새 데이터가 들어와서가 아니라, 큐에 이미 남아 있던 데이터를 처리하려다 났다는 뜻이다. 여기서 "안 보냈는데 왜?"가 풀렸다.

진짜 원인 — 큐에 박힌 데이터 한 건

토글이 혼자 꺼진 게 아니었다. 앞서 테스트하며 보낸 데이터 중 한 건이 처리되지 못하고 큐(대기열)에 남아 있었다. 그 데이터의 tags가 "test, auto", 쉼표로 묶인 문자열이었다.

Notion의 tags 속성은 다중 선택(multi-select)이다. 항목을 각각 받아야 하는데, 쉼표가 든 통문자열을 옵션 하나로 읽고 거부한다. 그 거부가 곧 에러다. 그리고 Make는 처리되지 않는 에러가 반복되면 시나리오를 자동으로 비활성화한다.

그래서 이런 루프가 돌고 있었다.

토글이 꺼지던 루프
01
큐에 쉼표 데이터 한 건이 남아 있음
처리 실패한 채로 대기열에 박혀 있었다.
02
토글을 켬
Make가 "처리 안 된 게 있네" 하고 그 데이터를 집어 Notion에 넣으려 한다.
03
multi_select 쉼표 에러 400
쉼표 문자열이 거부된다. 처리 실패.
04
시나리오 자동 비활성화 OFF
Make가 토글을 끈다. 다시 켜면 같은 데이터를 또 처리하려다 또 꺼진다. 새로 안 보내도 이 루프가 돈다.

"보내지도 않았는데 혼자 꺼진다"와 "쉼표 데이터가 원인이다"는 둘 다 사실이었다. 큐에 남은 데이터라는 연결고리가 둘을 잇는다.

해결 — 형식과 큐, 둘 다

FIX 1 — 형식

tags를 쉼표 문자열이 아니라 배열로 보낸다. "tags": ["test", "auto"]

이러면 Notion이 항목을 각각 받는다. 새로 들어오는 데이터는 에러가 안 난다.

FIX 2 — 큐 비우기

이미 큐에 박힌 데이터는 형식을 고쳐도 그대로 남아 있다. 시나리오의 INCOMPLETE EXECUTIONS 탭에서 비운다(clear the queue). 그래야 토글을 켜도 처리할 게 없어 안 꺼진다.

큐를 비우고 토글을 켠 뒤, 아무것도 안 보내고 다시 시간을 뒀다. 이번엔 꺼지지 않았다. 막던 데이터가 사라지니 루프가 끊겼다.

토글이 혼자 꺼질 때,
토글은 원인이 아니라 결과다.
큐에 남은 데이터 한 건이 계속 죽이고 있을 수 있다.

아직 단정하지 않는 것

예전엔 쉼표 문자열로 보내도 들어갔던 기억이 있다. 같은 형식인데 왜 이번에만 에러가 났는지는 확실치 않다. 모듈 매핑이 바뀌었는지, 예전엔 태그가 비어서 그냥 넘어간 건지 아직 확인 못 했다. 그래서 "쉼표가 직접 원인"이라고까지는 단정하지 않는다. 확실한 건 하나다. 배열로 보내고 큐를 비우니 멈췄다.

덕분에 사라진 단계

토글이 안 꺼지니, 보낼 때마다 Make에 들어가 토글을 켜고 Run once를 누르던 과정이 통째로 사라졌다. 발송 준비를 위해 Make를 열 일이 없어졌다.

여기에 더해 이번에 발송 도구도 바꿨다. 포스트맨은 브라우저를 열어 거기 붙여넣어야 했는데, JSON을 넣고 버튼만 누르면 발송되는 HTML 파일을 만들어 바탕화면에 깔아뒀다. 클로드가 JSON을 주면 바로 그 발송기에 넣고 보낸다. 토글이 잡히고 도구도 간단해지니, 발행 한 건에 드는 손이 확실히 줄었다.

전 — 발송 한 건
후 — 발송 한 건
Make 열기 → 토글 확인
발송기에 JSON 붙여넣기
꺼져 있으면 켜기 → Run once
보내기 클릭
그제서야 발송

덧 — 고쳤더니 또 다른 벽

형식과 큐를 잡으니 토글은 유지됐다. 그런데 같은 글을 빠르게 여러 번 보내니 이번엔 다른 에러가 나왔다. 429, 속도 제한이다. 한 번에 한 건씩, 간격을 두고 보내면 안 난다. 일단 여기까지가 지금 확인된 범위다.

TAKEAWAY · #27

토글이 혼자 꺼지면
설정이 아니라 큐를 봐라.

  • 포스트맨 때부터 토글이 자꾸 꺼져서, 보낼 때마다 Make를 열어 켜야 했다
  • 토글을 켜둬도 시간이 지나면 다시 OFF. 안 보냈는데 혼자 꺼지는 것처럼 보였다
  • 스케줄·설정은 원인이 아니었다. 답은 실행 기록 에러에 있었다: clear the queue
  • 범인은 큐에 박힌 쉼표 데이터 한 건. 켤 때마다 그걸 처리하려다 자동 비활성화됐다
  • 해결은 둘 다 필요했다. tags를 배열로 + INCOMPLETE EXECUTIONS 비우기
  • 연달아 보내면 429 속도 제한이 난다. 한 건씩 간격을 두면 피해진다
이전 글 · AI 시스템 아카이브 #26
애드센스, 색인 안 돼도 신청해도 될까
색인 2개 상태에서 애드센스를 먼저 신청한 기록

댓글