Vercel런타임
Vercel 함수 타임아웃 — FUNCTION_INVOCATION_TIMEOUT
504: GATEWAY_TIMEOUT / FUNCTION_INVOCATION_TIMEOUT
한 줄 해결: 서버리스 함수가 실행 시간 한도를 넘겨 종료된 것으로, 작업을 줄이거나 maxDuration을 늘리거나 백그라운드/스트리밍으로 전환합니다.
이런 증상일 때
API 라우트·서버 함수 호출이 504로 끊기고 로그에 타임아웃이 찍힙니다. 외부 API 지연, 무거운 연산, 큰 응답에서 발생합니다.
원인
- 함수 실행이 플랜·설정상 허용된 최대 시간을 초과
- 외부 API/DB 응답 지연을 기다리며 함수가 길게 점유
- 대용량 처리·동기 루프로 실행 시간이 늘어남
해결 방법
1
maxDuration 상향
라우트별로 허용 실행 시간을 설정합니다(플랜 한도 내).
export const maxDuration = 60 // 초2
작업 분할·비동기화
오래 걸리는 작업은 큐/백그라운드 작업으로 빼고 즉시 응답합니다. 결과는 폴링/웹훅으로 전달합니다.
3
스트리밍 응답
LLM 응답처럼 긴 작업은 스트리밍으로 부분 전송해 게이트웨이 타임아웃을 피합니다.
💡 예방: 외부 호출에 타임아웃·재시도를 걸고, 무거운 작업은 함수 밖(큐·크론)으로 분리하세요.
Verceltimeout서버리스maxDuration504