
해결 방법
나와 같은 문제인지 로그를 보고 해결하길 바란다.
필자의 문제는 NVIDIA App의 UpdateFramework가 사용하는 다운로드 상태 캐시가 꼬인 상태였다.
1. NVIDIA App 관련 프로세스
Stop-Process -Name "NVIDIA App" -Force -ErrorAction SilentlyContinue
Stop-Process -Name "NVIDIA Overlay" -Force -ErrorAction SilentlyContinue
Stop-Process -Name "NVIDIA Share" -Force -ErrorAction SilentlyContinue
2. 다운로드 상태 캐시 백업 후 초기화
$path = "C:\ProgramData\NVIDIA Corporation\NVIDIA App\UpdateFramework"
Rename-Item "$path\status" "status_backup_$(Get-Date -Format yyyyMMdd_HHmmss)"
New-Item -ItemType Directory "$path\status" | Out-Null
기존 status 폴더는 삭제하지 않고 이름만 바꿔 백업했다.
3. 컴퓨터 재부팅
재부팅 후 NVIDIA App을 다시 실행하고 드라이버 다운로드를 시도했다. 정상 다운로드가 징행됐다.
문제를 어떻게 찾아갔는가
(아래 작성된 실행 명령어는 전부 powershell로 진행했다)
1. NVIDIA App 로그 수집
NVIDIA 공식 로그 수집기 NvApp_LogCollector.bat를 실행했다.
NVIDIA App 내부에서 정확히 어느 단계에서 실패하는지 UI만으로는 알 수 없었기 때문이다.
그래서 다운로드 버튼을 누른 시간대의 로그를 직접 추적하기로 했다.
아래 링크의 Attachments에서 다운로드 가능하다.bat 파일을 실행하자.
NVIDIA Support
If you are experiencing issues related to NVIDIA app and you are working with an NVIDIA Customer Care agent, an agent may request that you collect NVIDIA app logs from your PC. For general NVIDIA app feedback and suggestions, you may send feedback throug
nvidia.custhelp.com
수집된 로그 위치는 아래로 잡았다. bat파일을 설치하면 여기디렉토리로 log들이 잡힌다.
C:\NvAppLogs
여러 폴더의 로그를 한 번에 보기 위해 PowerShell로 하나의 파일로 합쳤다. 필자가 다 읽은 자신이 없었을 뿐더러 txt를 합치고 AI한테 분석을 시키기 위함이였다.
$logRoot = "C:\NvAppLogs"
$outputFile = "C:\NvAppLogs\nvidia_log_report.txt"
"===== NVIDIA LOG REPORT =====" | Set-Content $outputFile -Encoding utf8
Get-ChildItem $logRoot -Recurse -File |
Where-Object {
$_.FullName -ne $outputFile -and
$_.Extension -in ".log", ".txt", ".json"
} |
Sort-Object LastWriteTime |
ForEach-Object {
Add-Content $outputFile "`r`n=================================================="
Add-Content $outputFile "FILE: $($_.FullName)"
Add-Content $outputFile "LAST WRITE: $($_.LastWriteTime)"
Add-Content $outputFile "=================================================="
Get-Content $_.FullName -ErrorAction SilentlyContinue |
Add-Content $outputFile
}
로그 분석
1. 먼저 실패 시간대를 기준으로 봄
드라이버 다운로드를 시도한 시간이 약 20:35 ~ 20:37이었기 때문에 그 시간대 로그를 중심으로 봤다.
특히 아래 키워드를 찾았다.
error
failed
download
curl
http
persist
state
checksum
처음부터 모든 ERROR를 다 중요하게 본 것은 아니다.
NVIDIA 로그에는 기능 초기화나 메시지 버스 관련 오류도 많이 있기 때문에 실제 드라이버 다운로드 작업과 같은 taskId, 같은 시간대인지를 중요하게 봤다
2. 다운로드 taskId를 기준으로 흐름 추적
드라이버 다운로드 taskId
75afcbb9529396e488669efc98733526
이 taskId를 기준으로
- 다운로드 시작
- 진행률
- 네트워크 재시도
- 상태 저장
- 다운로드 종료
- 검증
- 후처리
순서로 로그를 따라갔다.
로그에서 중요하게 본 것
1. CURL 56 네트워크 오류
Got error from CURL - Failure when receiving data from the peer.
curl error code - 56
http response code - 206
처음에는 네트워크 문제 때문에 다운로드가 실패하는 것 아닌가 의심했다. NVIDIA 연결에 실패했다는 메시지가 UI 상으로 보였기 떄문이다.
그런데 로그를 계속 따라가 보니 NVIDIA App이 자동 재시도를 수행했고 실제 파일은 끝까지 받아졌다.
percentComplete : 100
downloadedBytes : 793206000
totalBytes : 793206000
또한 이 파일이 잘못 받아졌을 경우를 고려해서 checksum로그를 찾아봤다.
checksumType:sha256,
The computed checksum of downloaded artifact is -
b331345ed127bf9bd25a90582da5c11658a1c7808611d418db25a911b0a5447c
and checksum downloaded from CDN
b331345ed127bf9bd25a90582da5c11658a1c7808611d418db25a911b0a5447c
NVIDIA app에서 같은 값이라고 로그에 남겼었다.
네트워크 끊김은 실제로 있었지만 최종 실패 원인은 아니었다.
2. 상태 파일 관련 로그
다운로드 시작 직후 다음 로그가 반복됐다.
Cannot open file
C:\ProgramData\NVIDIA Corporation\NVIDIA App\UpdateFramework\status\grd\download-thread-....json
Error details - No such file or directory
이 로그만 보면 파일이 없어서 문제처럼 보이지만 바로 뒤에
returning empty array, so that new file can be created
라고 되어 있었다.
즉 기존 상태 파일이 없는 것 자체는 정상적으로 처리 가능한 상황이었다.
그래서 이 메시지만으로 원인이라고 판단하지 않았다.
3. 결정적인 로그: persistence 저장 실패
Failed to persist download status ... Error code - 12
이 로그가 다운로드 진행 중 계속 반복됐다.
이어지는 로그가 더 중요했다.
Download persistence has gone in bad state.
Download for download task-... failed with following state-12,
so post processing is not triggered.
여기서 문제 범위를 확실히 좁혔다.
실제 드라이버 파일은 내려받아졌지만
NVIDIA App이 다운로드 진행 상태를 저장하지 못함 → 내부적으로 state=12 실패 처리 → 후처리 실행 안 함 → UI에서는 다운로드 실패처럼 보임
이라는 흐름이었다.
권한 문제인지 확인한 과정
1. status / grd 폴더 존재 확인
명령어
Test-Path "$path\status"
Test-Path "$path\status\grd"
로그에 No such file or directory가 있었기 때문에 실제 폴더가 없는지 먼저 확인했다.
결과 :
True
True
폴더 자체는 존재했다.
2. ACL과 소유권 확인
명령어
Get-Acl "$path"
Get-Acl "$path\status"
Get-Acl "$path\status\grd"
3. 직접 파일 쓰기 테스트
PowerShell로 status와 grd 경로에 직접 테스트 파일을 생성했다.
ACL 출력이 정상이어도 실제 파일 생성이 실패할 수 있기 때문에 실제 쓰기 동작까지 확인하려고 했다.
결과적으로 PowerShell에서는 파일 생성이 가능했다.
따라서
Windows 사용자 계정 자체가 해당 폴더에 쓰지 못하는 문제는 아니었다.
최종 해결 판단
여기까지 확인한 결과:
- 파일 다운로드 자체는 정상
- SHA-256 정상
- 폴더 존재
- ACL 정상
- 직접 쓰기 가능
- 그런데 NVIDIA UpdateFramework만 상태 저장 실패
따라서 가장 가능성 높은 문제를
UpdateFramework의 기존 다운로드 상태 캐시 또는 실행 중인 백그라운드 서비스 내부 상태가 꼬인 것
으로 판단했다.
그래서 status를 삭제하지 않고 백업한 뒤 새로 만들었다.
Rename-Item "$path\status" "status_backup_$(Get-Date -Format yyyyMMdd_HHmmss)"
New-Item -ItemType Directory "$path\status" | Out-Null
처음에는 새 status 폴더 안에 아무것도 생성되지 않았다.
이때 NVIDIA App UI 프로세스만 종료했기 때문에 백그라운드 서비스가 기존 상태를 계속 들고 있을 가능성이 있었다.
그래서 최종적으로 PC를 재부팅했다.

정상적으로 동작하는걸 확인했다.