CustomerError: Can't find required-server-files.json in build output directory
Next.js 빌드는 성공했지만 AWS Amplify가 배포 산출물에서 서버 실행 메타데이터 파일을 찾지 못해 배포가 중단된 상태입니다.
빠른 답변
- 우선 확인할 원인
- 이 오류는 Amplify가 서버 실행 방식의 Next.js 산출물을 기대하지만 지정된 baseDirectory에서 필요한 메타데이터를 찾지 못했음을 뜻합니다. Next.js output 방식, Amplify 프레임워크 유형, buildPath 기준 baseDirectory, 모노리포 appRoot를 같은 기준으로 확인해야 합니다.
- 먼저 확인할 항목
- Next.js 설정의 output 값이 정적 export인지 서버 실행 방식인지 확인합니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우문맥: 바이브 코딩
- 출처 확인일
- 2026-07-29
- 최종 검토
- 2026-07-23
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
현재 증상
- 빌드 성공, 배포 실패
- 서버 실행 파일 누락
먼저 확인할 항목
Next.js 설정의 output 값이 정적 export인지 서버 실행 방식인지 확인합니다.
Amplify에 선택된 프레임워크 유형이 실제 output 방식과 일치하는지 확인합니다.
amplify.yml의 baseDirectory가 buildPath 기준 실제 산출물 경로인지 확인합니다.
appRoot와 AMPLIFY_MONOREPO_APP_ROOT가 동일한 애플리케이션 경로인지 확인합니다.
동일한 빌드 명령을 로컬에서 실행해 .next와 out의 생성 파일을 확인합니다.
피해야 할 조치
주의
- 빌드 성공 메시지만 보고 배포 산출물이 올바르다고 단정하지 않습니다.
- 정적 export와 서버 실행 배포의 산출물 경로를 임의로 혼합하지 않습니다.
환경별 원인과 조치
이 오류는 AWS Amplify Hosting이 지정된 산출물 경로에서 Next.js 서버 실행 메타데이터를 찾지 못했을 때 발생합니다. 빌드 성공과 배포 성공은 같은 상태가 아닙니다.
next build가 끝났더라도 Amplify가 기대하는 위치에 배포 파일이 없으면 배포는 실패합니다.
먼저 구분할 값
| 설정·파일 | 의미 |
|---|---|
output | Next.js가 정적 파일 또는 서버 실행 파일을 만드는 방식 |
buildPath | Amplify가 빌드 명령을 실행하는 기준 위치 |
baseDirectory | Amplify가 배포 파일을 찾는 위치 |
appRoot | 모노리포 안에서 애플리케이션을 식별하는 위치 |
정적 HTML 위치인 out과 Amplify의 Next.js 배포 입력인 .next는 용도가 다를 수 있습니다. 세부 파일 구성은 Next.js 빌드 산출물에서 확인합니다.
모노리포 설정 예시
applications: - appRoot: apps/web frontend: buildPath: / artifacts: baseDirectory: apps/web/.next오류 메시지만 보고 산출물 경로를 바꾸지 않습니다. 실제 baseDirectory와 out의 용도를 확인한 뒤 배포 산출물 체크리스트를 실행합니다.
설정 조합 확인
서버 실행 방식의 Next.js 앱이면 Amplify가 서버 실행 파일이 포함된 .next 산출물을 찾도록 설정해야 합니다. 정적 export를 선택한 앱이면 out을 정적 산출물로 사용하는 방식과 Amplify의 호스팅 유형이 함께 맞아야 합니다. 한 항목만 바꾸기보다 next.config.*, amplify.yml, Amplify 콘솔의 프레임워크 설정, 실제 빌드 로그의 출력 경로를 같은 기준으로 대조하세요.
모노리포에서는 appRoot가 애플리케이션 위치를, buildPath가 명령 실행 기준을, baseDirectory가 결과 탐색 기준을 정합니다. 따라서 apps/web/.next처럼 보이는 경로도 어느 기준에서 해석되는지 확인하지 않으면 같은 오류가 반복될 수 있습니다.
수정 후 확인
변경 후에는 같은 커밋과 같은 빌드 명령으로 다시 빌드하고, 빌드 로그에서 Amplify가 실제로 업로드한 산출물 경로를 확인합니다. 배포가 성공한 뒤에는 한 페이지를 열어 SSR 응답과 정적 자산이 모두 정상인지 확인합니다. 이전 실패 로그와 변경한 값, 재배포 시각을 함께 보관하면 다음 배포에서 같은 경로 혼동을 줄일 수 있습니다.
원인 분포
[Observation] 관측된 사례 기준으로 확인된 원인은 다음 세 유형입니다.
- Next.js의 SSR·SSG 형식과 Amplify의 배포 설정 불일치: SSG 앱의 out 경로 또는 SSR 앱의 .next 경로 설정 문제입니다.
- 모노리포에서 실제 애플리케이션 경로와 Amplify의 appRoot 불일치입니다.
- Nx 모노리포에서 Next.js 의존성 탐지로 Vite 앱을 Next.js SSR로 잘못 판별한 경우입니다.
[Observation] 이 사례 수는 실제 발생 빈도를 의미하지 않습니다.
오진 함정
[Observation] required-server-files.json 누락은 Next.js SSR 산출물 자체의 문제로만 단정할 수 없습니다.
- SSG 앱을 SSR 앱으로 판별했을 가능성이 있습니다.
- Vite 앱이 모노리포 내부의 Next.js 의존성 때문에 Next.js SSR로 판별될 수 있습니다.
- 모노리포에서는 빌드가 성공했더라도 Amplify의 appRoot와 실제 .next 산출물 경로가 다르면 배포가 실패할 수 있습니다.
[Hypothesis] 오류 파일의 존재 여부를 확인하기 전에 프레임워크 판별 결과와 애플리케이션 루트 경로를 먼저 대조하면 오진을 줄일 수 있습니다.
환경 매트릭스
| 환경 | 관찰된 증상 | 근본원인 | 수정 | 결과 |
|---|---|---|---|---|
| Next.js 정적 생성 앱 | 배포 후 required-server-files.json 누락 | Amplify의 SSR·SSG 판별과 설정 불일치 | SSG는 out 경로를 사용하고, SSR은 output: 'export' 제거 및 baseDirectory를 .next로 설정 | 배포 안정화가 보고됨 |
| Next.js 14·next-pwa 모노리포 | required-server-files.json 누락 | appRoot와 실제 앱 경로 불일치 | Monorepo 활성화, appRoot를 workspaces/dashboard로 지정, 해당 경로에서 next build 및 .next 사용 | 해결됨 |
| Next.js·Vite Nx 모노리포 | Vite 앱에서 동일한 파일 누락 오류 | Next.js 의존성 탐지에 따른 SSR 오판 | Vite 앱 최초 배포 전에 next를 devDependencies로 이동 | 정상 동작 확인 |
진단 순서
[Hypothesis] 다음 순서로 확인하는 것이 세 사례의 원인과 직접 연결됩니다.
- 배포 대상이 Next.js SSG, Next.js SSR, Vite 중 무엇인지 확인합니다.
- Amplify가 선택한 프레임워크가 실제 애플리케이션과 일치하는지 확인합니다.
- Next.js라면 output: 'export' 사용 여부에 따라 out 또는 .next가 배포 기준 경로인지 확인합니다.
- 모노리포라면 appRoot가 실제 앱 디렉터리와 일치하는지 확인하고, 해당 경로에서 next build가 실행되는지 확인합니다.
- Vite 앱에 Next.js 의존성이 함께 있는 경우 프레임워크 오판 가능성을 확인하고, 사례에서 사용한 의존성 위치 조정을 검토합니다.
수정 후 다시 확인
Amplify Next.js 배포 산출물 확인
재배포 전에는 Next.js output 방식, 실제 생성 디렉터리, Amplify 프레임워크 유형, buildPath 기준 baseDirectory, appRoot 환경 변수를 같은 배포 방식에 맞춰 확인해야 합니다.
전체 확인 항목 보기참고 자료
확인 범위: amplify-nextjs-output-directory, static-and-server-deployment-settings · 확인일: 2026-07-22
확인 범위: app-root, build-path, base-directory · 확인일: 2026-07-22
확인 범위: AWS Amplify에서 Next.js 정적 생성 앱의 배포 과정 중 required-server-files.json 누락 오류가 발생했습니다., Amplify의 SSR·SSG 형식 판별과 배포 설정이 맞지 않는 상황이 원인으로 보고되었습니다., SSG에서는 out 경로를 사용하고 SSR에서는 output: 'export'를 제거한 뒤 baseDirectory를 .next로 설정하여 해결했습니다. · 확인일: 2026-07-29
확인 범위: Next.js 14와 next-pwa를 사용하는 애플리케이션에서 Amplify 배포 중 required-server-files.json 누락 오류가 발생했습니다., 모노리포의 workspace 루트 의존성과 실제 애플리케이션 경로가 Amplify의 appRoot 설정과 일치하지 않았습니다., Monorepo 옵션을 활성화하고 appRoot를 workspaces/dashboard로 지정하며 해당 경로의 .next 산출물과 next build를 사용하여 해결했습니다. · 확인일: 2026-07-29
확인 범위: Next.js와 Vite 앱이 함께 있는 Nx 모노리포에서 Vite 앱 배포 중 Amplify가 Next.js SSR로 잘못 판별하여 동일한 파일 누락 오류가 발생했습니다., 첫 배포에서 Next.js 의존성 탐지가 프레임워크 판별에 영향을 준 것으로 보고되었습니다., Vite 앱 최초 배포 전에 next를 devDependencies로 옮긴 뒤 정상 동작을 확인했습니다. · 확인일: 2026-07-29