피드로 돌아가기
Dev.toBackend
원문 읽기
HTTP 200 OK의 침묵하는 실패 해결 및 Execution Timeout 최적화
n8n: Fix HTTP Request Node Returning Success With No Data (+ Execution Timeout Guide)
AI 요약
Context
HTTP status code 기반의 단순 성공 판정으로 인해 Response Body가 비어있거나 내부 에러가 포함된 경우에도 Workflow가 성공으로 처리되는 문제 발생. 또한 기본 30초의 Execution Timeout 설정으로 인한 대용량 데이터 처리 및 느린 API 호출 시의 강제 종료 병목 존재.
Technical Solution
- HTTP Request 노드 직후 Code 노드를 배치하여 Response Body의 유효성을 강제 검증하는 Validation Layer 설계
- Object.keys().length 및 Array.isArray()를 통한 데이터 존재 여부 확인으로 Empty Response에 따른 Downstream 노드의 연쇄 실패 방지
- Response Body 내의 error 필드나 success: false 플래그를 명시적으로 체크하여 비즈니스 로직 레벨의 에러를 Exception으로 전환
- Workflow Settings 및 .env 파일의 EXECUTIONS_TIMEOUT 설정을 통한 프로세스 생존 주기 확장
- Split In Batches 노드와 Wait 노드를 조합하여 API Rate Limit 대응 및 무한 루프 방지를 통한 리소스 효율화
실천 포인트
- HTTP 200 응답이라도 Body의 데이터 구조를 검증하는 Guard Clause를 반드시 추가할 것 - 배치 처리 시 10~50개 단위의 작은 Batch Size를 유지하여 Timeout 리스크를 분산할 것 - Self-hosted 환경에서는 환경 변수 EXECUTIONS_TIMEOUT 설정을 통해 인프라 수준의 제한 시간을 동기화할 것