lucasg/Dependencies · error
[x] Peview binary has not correctly been downloaded.
Error message
[x] Peview binary has not correctly been downloaded.
What it means
PowerShell Write-Error emitted by Get-DependenciesDeps in the deploy script. Get-PeviewBinary downloads a pinned Process Hacker build artifact from the AppVeyor API, verifies its SHA256 against a hardcoded hash, and only then extracts peview.exe into $env:PEVIEW_PATH. If PEVIEW_PATH is empty afterward, the download/verify/extract pipeline failed and the bundled peview.exe will be missing from the output.
Source
Thrown at Deploy-Dependencies.ps1:104
foreach ($ucrtdll in gci $UcrtFolder -File) {
Write-Host "Copy ucrt dll $($ucrtdll.FullName)";
Copy-Item $ucrtdll.FullName -Destination $OutputFolder;
}
}
function Get-DependenciesDeps {
param(
[String] $Binpath,
[String] $OutputFolder
)
# Download external dependencies like peview
$PeBuildVersion = "3.0.2995";
$PeviewBuildHash = "2d6e76f6ff752cfbd595544ae0f967843e0fa2402700418d933d4d5d3ce2b99b";
Get-PeviewBinary -BuildVersion $PeBuildVersion -Hash $PeviewBuildHash;
if (-not $env:PEVIEW_PATH)
{
Write-Error "[x] Peview binary has not correctly been downloaded."
}
# Bundling dbghelp.dll along for undecorating names
Copy-SystemDll -DllName "dbghelp.dll" -OutputFolder $OutputFolder;
# Bundling every msvc redistribuables
$ClrPhLibPath = "$($Binpath)/ClrPhLib.dll";
$ClrPhLibImports = &"$($Binpath)/Dependencies.exe" -json -imports $ClrPhLibPath | ConvertFrom-Json;
foreach($DllImport in $ClrPhLibImports.Imports) {
# vcruntime
if ($DllImport.Name.ToLower().StartsWith("vcruntime"))
{
Copy-SystemDll -DllName $DllImport.Name -OutputFolder $OutputFolder;
}
# msvcView on GitHub (pinned to 1997a40000)
Solutions
- Recompute and update $PeviewBuildHash (and $PeBuildVersion if needed) in Deploy-Dependencies.ps1 to match the current Process Hacker artifact.
- Confirm network/proxy access to ci.appveyor.com and that the build/job/artifact endpoints return 200.
- Ensure 7z.exe is installed and on PATH so the `&7z.exe x ...` extraction step succeeds.
- Run Get-PeviewBinary manually and inspect $env:PEVIEW_PATH and the downloaded zip hash to isolate hash-mismatch vs download failure.
Example fix
# before
Get-PeviewBinary -BuildVersion $PeBuildVersion -Hash $PeviewBuildHash;
if (-not $env:PEVIEW_PATH)
{
Write-Error "[x] Peview binary has not correctly been downloaded."
}
# after - fail fast with the actual reason
Get-PeviewBinary -BuildVersion $PeBuildVersion -Hash $PeviewBuildHash;
if (-not $env:PEVIEW_PATH)
{
$zip = "$($env:TEMP)/tmp/processhacker-build-bin.zip"
$got = if (Test-Path $zip) { (Get-FileHash -Algorithm SHA256 $zip).Hash } else { '<not downloaded>' }
throw "Peview download failed. expected=$PeviewBuildHash got=$got. Update the pinned hash or check network/7z."
} Defensive patterns
Strategy: validation
Validate before calling
Get-PeviewBinary -BuildVersion $PeBuildVersion -Hash $PeviewBuildHash
if (-not $env:PEVIEW_PATH) {
$zip = "$($env:TEMP)/tmp/processhacker-build-bin.zip"
$got = if (Test-Path $zip) { (Get-FileHash -Algorithm SHA256 $zip).Hash } else { 'missing' }
throw "Peview not downloaded. expected=$PeviewBuildHash got=$got"
} Try / catch
try {
Get-PeviewBinary -BuildVersion $PeBuildVersion -Hash $PeviewBuildHash -ErrorAction Stop
} catch [System.Net.WebException] {
Write-Warning "Network failure downloading peview: $($_.Exception.Message)"
} Prevention
- Treat the pinned hash as a version pin: update both $PeBuildVersion and $PeviewBuildHash together.
- Verify 7z.exe is on PATH and that $env:platform maps to 32bit/64bit in the archive.
- Run the download step in isolation and echo the computed hash on failure for fast diagnosis.
When it happens
Trigger: Running Deploy-Dependencies.ps1 / Get-DependenciesDeps when Get-PeviewBinary leaves $env:PEVIEW_PATH unset: the hash check at line 40 fails (artifact changed), Invoke-WebRequest/Invoke-RestMethod fails (network/AppVeyor down), the build version is gone, 7z.exe is missing so extraction fails, or Resolve-Path cannot find the extracted file.
Common situations: Process Hacker published a new build so the pinned $PeviewBuildHash no longer matches; the pinned $PeBuildVersion was removed from AppVeyor; CI runs offline or behind a proxy; 7z.exe is not on PATH; x86/x64 platform mismatch in the archive subfolder.
Related errors
AI-assisted analysis of lucasg/Dependencies@1997a40000 (2026-08-13).
Data as JSON: /api/errors/0bb708209f777564.
Report an issue: GitHub.