Visual Studio Code(이하 VS Code)를 쓰다 보면, 간헐적으로 “Resolving shell environment fails” 라는 메시지가 나타날 때가 있다.
터미널에서는 잘 동작하던 개발 환경이 VS Code 안에서는 갑자기 PATH가 다르게 잡히거나, Node/NVM 등이 제대로 인식되지 않는 식이다.
이 글에서는 이 오류가 왜 발생하는지, 그리고 어떻게 해결하면 되는지 간단하고 정확하게 정리해본다.

왜 이런 오류가 발생할까?
VS Code는 두 가지 방식 중 하나로 실행된다.
- 터미널에서 code 명령으로 실행
- 아이콘 클릭 등 GUI에서 실행
문제는 VS Code가 GUI로 실행될 때, 셸 초기화 파일(.bashrc, .zshrc, .profile 등) 을 읽지 않는 경우가 많다는 점이다.
반면, 터미널에서는 이미 셸이 초기화된 상태에서 VS Code가 실행되므로 환경 변수를 그대로 사용할 수 있다.
즉:
- 터미널 → PATH, NVM_BIN, NODE_VERSION 등 환경 설정이 정상
- GUI 실행 → 초기화되지 않아 환경값이 누락
- 그 차이가 커지면 VS Code는 사용자 환경을 “해석(resolve)” 하는 데 실패하고 오류를 띄움
어떤 문제가 나타날까?
- VS Code 터미널에서 Node 버전이 다르게 잡힘
- Go, Rust, Python 등 실행 경로가 뒤틀림
- 빌드 스크립트가 에디터 안에서만 실패
- 확장 기능(ESLint, Prettier 등)이 환경 변수를 못 읽어 동작 불가
개발자의 입장에서는 “터미널에서는 되는데 VS Code에서는 안 돼?” 같은 황당한 상황이 반복된다.
해결 방법
1) 셸 초기화 속도를 빠르게 만들기
셸 설정 파일에 다음과 같은 코드가 많다면 VS Code가 환경을 읽는 데 시간이 오래 걸린다.
- nvm 초기화
- pyenv 초기화
- 무거운 함수/스크립트 로딩
가능한 한 초기화를 가볍게 유지하거나, 조건부 로딩하도록 수정하면 환경 해석 실패 확률이 줄어든다.
2) VS Code를 터미널에서 실행하기
가장 단순하면서 확실한 방법이다.
code .
이렇게 실행하면 VS Code는 이미 초기화된 셸 환경을 그대로 가져온다.
3) VS Code 설정에서 Timeout 늘리기
환경 변수를 읽는 시간이 길어 발생하는 문제라면 타임아웃을 조정할 수 있다.
settings.json 에 다음 옵션을 추가한다.
"application.shellEnvironmentResolutionTimeout": 20000
단위는 밀리초(ms)이므로 위 값은 20초다.
정리
VS Code의 “Resolving shell environment fails” 오류는 대부분 VS Code가 GUI로 실행되면서 셸 환경 변수를 제대로 읽지 못해 발생한다.
셸 초기화 속도 개선, 터미널 실행, 타임아웃 증가 같은 방법으로 쉽게 해결할 수 있다.
개발 환경에서 PATH나 버전 관리 도구가 자주 꼬인다면, 이 문제를 이해하면 불필요한 디버깅 시간을 크게 줄일 수 있다.

댓글 남기기