Electron-packager: Cannot unzip on Windows if user directory contains whitespace

Created on 11 Feb 2020  ·  12Comments  ·  Source: electron/electron-packager

Preflight Checklist

  • [x] I have read the contribution documentation for this project.
  • [x] I agree to follow the code of conduct that this project follows, as appropriate.
  • [x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Issue Details

  • Electron Packager Version:

    • 14.2.1

  • Electron Version:

    • v8.0.0

  • Operating System:

    • Windows 10 (1903)

  • Last Known Working Electron Packager version::

    • unknown

Expected Behavior

electron-packager should work

Actual Behavior

electron-packager terminates with

[Error: ENOENT: no such file or directory, rename 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\electron.exe' -> 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\VIPFY.exe'] {      
  errno: -4058,
  code: 'ENOENT',
  syscall: 'rename',
  path: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\electron.exe',
  dest: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\VIPFY.exe'
}

To Reproduce

Use a user directory with whitespace, or alternatively set APPDATALOCAL environment variable to a directory with whitespace

For example in Powershell:

$env:LOCALAPPDATA = "C:\test\folder with whitespace\"
# ensure this folder exists
electron-packager . #or any electron-packager call that normally works

Additional Information

Relevant console output:

electron-packager Creating C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +16ms
  electron-packager Extracting C:\Users\Jannis Froese\AppData\Local\electron\Cache\httpsgithub.comelectronelectronreleasesdownloadv8.0.0-beta.4electron-v8.0.0-beta.4-win32-x64.zip\electron-v8.0.0-beta.4-win32-x64.zip to C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +2ms
  electron-packager Ignored paths based on the out param: [ 'C:\\Users\\Jannis Froese\\Source\\vipfy-desktop\\out' ] +0ms

Error: ENOENT: no such file or directory, rename 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\electron.exe' -> 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\VIPFY.exe'] {      
  errno: -4058,
  code: 'ENOENT',
  syscall: 'rename',
  path: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\electron.exe',
  dest: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\VIPFY.exe'
}

Manually running cross-zip-cli with the exact paths as shown in the debug output extracts the zip file correctly

blocked bug windows

All 12 comments

👋 Thanks for opening your first issue here! If you have a question about using Electron Packager, read the support docs. If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. Development and issue triage is community-driven, so please be patient and we will get back to you as soon as we can.

To help make it easier for us to investigate your issue, please follow the contributing guidelines.

Can you paste the full console output?

Sure

PS C:\VIPFY\vipfy-desktop> $env:DEBUG = "electron-packager"
PS C:\VIPFY\vipfy-desktop> npm run package

> [email protected] package C:\VIPFY\vipfy-desktop
> electron-forge package

√ Checking your system
√ Compiling Main Process Code
√ Compiling Renderer Template
  electron-packager Electron Packager 14.2.1
  electron-packager Node v12.7.0
  electron-packager Host Operating system: win32 10.0.18362 (x64) +0ms
  electron-packager Packager Options: {"asar":true,"overwrite":true,"icon":"iconTransparent","appCopyright":"©2020 VIPFY GmbH","osxSign":{"platform":"darwin","type":"distribution","identity":"Developer ID Application: VIPFY GmbH (RD6VS27844)"},"dir":"C:\\VIPFY\\vipfy-desktop","arch":"x64","platform":"win32","afterCopy":[null],"afterExtract":[null],"afterPrune":[null],"out":"C:\\VIPFY\\vipfy-desktop\\out","electronVersion":"8.0.0-beta.7","quiet":true} +1ms
  electron-packager Target Platforms: win32 +1ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring application name from productName in C:\VIPFY\vipfy-desktop\package.json +0ms
  electron-packager Inferring appVersion from version in C:\VIPFY\vipfy-desktop\package.json +0ms
  electron-packager Inferring win32metadata.CompanyName from author in C:\VIPFY\vipfy-desktop\package.json +0ms
  electron-packager Application name: VIPFY +11ms
  electron-packager Target Electron version: 8.0.0-beta.7 +0ms
  electron-packager Downloading Electron with options {"platform":"win32","arch":"x64","version":"8.0.0-beta.7","artifactName":"electron"} +0ms
  electron-packager Removing C:\VIPFY\vipfy-desktop\out\VIPFY-win32-x64 due to setting overwrite: true +20ms
| Preparing to Package Application for arch: x64  electron-packager Creating C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +47ms
  electron-packager Extracting C:\Users\Jannis Froese\AppData\Local\electron\Cache\httpsgithub.comelectronelectronreleasesdownloadv8.0.0-beta.7electron-v8.0.0-beta.7-win32-x64.zip\electron-v8.0.0-beta.7-win32-x64.zip to C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +1ms
\ Preparing to Package Application for arch: x64  electron-packager Initializing app in C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64 from C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template template +0ms
  electron-packager Ignored paths based on the out param: [ 'C:\\VIPFY\\vipfy-desktop\\out' ] +0ms
√ Preparing to Package Application for arch: x64
√ Preparing native dependencies
- Packaging Application  electron-packager Running asar with the options {} +404ms
/ Packaging Application  electron-packager Renaming electron.exe to VIPFY.exe in C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64 +483ms

An unhandled rejection has occurred inside Forge:
[Error: ENOENT: no such file or directory, rename 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\electron.exe' -> 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\VIPFY.exe'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'rename',
  path: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\electron.exe',
  dest: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\VIPFY.exe'
}

Electron Forge was terminated. Location:
{}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] package: `electron-forge package`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] package script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Jannis~1\AppData\Roaming\npm-cache\_logs\2020-02-11T15_54_45_944Z-debug.log
PS C:\VIPFY\vipfy-desktop>

Can you run with DEBUG="electron-packager,electron-forge:*" and paste that output (mostly so that the Forge progress output isn't in the middle of the Packager output)?

PS C:\VIPFY\vipfy-desktop> $env:DEBUG = "electron-packager,electron-forge:*"
PS C:\VIPFY\vipfy-desktop> npm run package

> [email protected] package C:\VIPFY\vipfy-desktop
> electron-forge package

WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:async-ora Process Started: Checking your system +0ms
  electron-forge:check-system checking system, create ~/.skip-forge-system-check to stop doing this +0ms
  electron-forge:async-ora Process Succeeded: Checking your system -- after 222ms +223ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:async-ora Process Started: Preparing to Package Application for arch: x64 +0ms
  electron-forge:project-resolver searching for project in: C:\VIPFY\vipfy-desktop +0ms
  electron-forge:project-resolver electron-forge compatible package.json found in C:\VIPFY\vipfy-desktop\package.json +2ms
  electron-forge:require-search searching [
  '@electron-forge/plugin-webpack',
  'C:\\VIPFY\\vipfy-desktop\\@electron-forge\\plugin-webpack',
  'C:\\VIPFY\\vipfy-desktop\\node_modules\\@electron-forge\\plugin-webpack'
] relative to C:\VIPFY\vipfy-desktop +0ms
  electron-forge:require-search testing @electron-forge/plugin-webpack +2ms
  electron-forge:plugin:webpack hooking process events +0ms
  electron-forge:async-ora Process Started: Compiling Main Process Code +1s
  electron-forge:async-ora Process Succeeded: Compiling Main Process Code -- after 3.3s +3s
  electron-forge:async-ora Process Started: Compiling Renderer Template +0ms
  electron-forge:async-ora Process Succeeded: Compiling Renderer Template -- after 16.7s +17s
  electron-forge:packager packaging with options {
  asar: true,
  overwrite: true,
  icon: 'iconTransparent',
  appCopyright: '©2020 VIPFY GmbH',
  osxSign: {
    platform: 'darwin',
    type: 'distribution',
    identity: 'Developer ID Application: VIPFY GmbH (RD6VS27844)'
  },
  ignore: [Function],
  dir: 'C:\\VIPFY\\vipfy-desktop',
  arch: 'x64',
  platform: 'win32',
  afterCopy: [ [AsyncFunction] ],
  afterExtract: [ [AsyncFunction] ],
  afterPrune: [ [AsyncFunction] ],
  out: 'C:\\VIPFY\\vipfy-desktop\\out',
  electronVersion: '8.0.0-beta.7',
  quiet: true
} +0ms
  electron-packager Electron Packager 14.2.1
  electron-packager Node v12.7.0
  electron-packager Host Operating system: win32 10.0.18362 (x64) +0ms
  electron-packager Packager Options: {"asar":true,"overwrite":true,"icon":"iconTransparent","appCopyright":"©2020 VIPFY GmbH","osxSign":{"platform":"darwin","type":"distribution","identity":"Developer ID Application: VIPFY GmbH (RD6VS27844)"},"dir":"C:\\VIPFY\\vipfy-desktop","arch":"x64","platform":"win32","afterCopy":[null],"afterExtract":[null],"afterPrune":[null],"out":"C:\\VIPFY\\vipfy-desktop\\out","electronVersion":"8.0.0-beta.7","quiet":true} +2ms
  electron-packager Target Platforms: win32 +2ms
  electron-packager Target Architectures: x64 +1ms
  electron-packager Inferring application name from productName in C:\VIPFY\vipfy-desktop\package.json +0ms
  electron-packager Inferring appVersion from version in C:\VIPFY\vipfy-desktop\package.json +1ms
  electron-packager Inferring win32metadata.CompanyName from author in C:\VIPFY\vipfy-desktop\package.json +0ms
  electron-packager Application name: VIPFY +24ms
  electron-packager Target Electron version: 8.0.0-beta.7 +0ms
  electron-packager Downloading Electron with options {"platform":"win32","arch":"x64","version":"8.0.0-beta.7","artifactName":"electron"} +0ms
  electron-packager Creating C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +15ms
  electron-packager Extracting C:\Users\Jannis Froese\AppData\Local\electron\Cache\httpsgithub.comelectronelectronreleasesdownloadv8.0.0-beta.7electron-v8.0.0-beta.7-win32-x64.zip\electron-v8.0.0-beta.7-win32-x64.zip to C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template +16ms
  electron-packager Initializing app in C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64 from C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64-template template +0ms
  electron-packager Ignored paths based on the out param: [ 'C:\\VIPFY\\vipfy-desktop\\out' ] +0ms
  electron-forge:async-ora Process Succeeded: Preparing to Package Application for arch: x64 -- after 22.5s +1s
  electron-forge:async-ora Process Started: Preparing native dependencies +3ms
  electron-forge:async-ora Process Succeeded: Preparing native dependencies -- after 16ms +16ms
  electron-forge:async-ora Process Started: Packaging Application +9ms
  electron-packager Running asar with the options {} +727ms
  electron-packager Renaming electron.exe to VIPFY.exe in C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64 +508ms

An unhandled rejection has occurred inside Forge:
[Error: ENOENT: no such file or directory, rename 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\electron.exe' -> 'C:\Users\JANNIS~1\AppData\Local\Temp\electron-packager\win32-x64\VIPFY-win32-x64\VIPFY.exe'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'rename',
  path: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\electron.exe',
  dest: 'C:\\Users\\JANNIS~1\\AppData\\Local\\Temp\\electron-packager\\win32-x64\\VIPFY-win32-x64\\VIPFY.exe'
}

Electron Forge was terminated. Location:
{}
  electron-forge:plugin:webpack handling process exit with: { cleanup: true } +22s
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] package: `electron-forge package`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] package script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Jannis~1\AppData\Roaming\npm-cache\_logs\2020-02-11T16_59_31_784Z-debug.log
PS C:\VIPFY\vipfy-desktop>

For the record, cross-zip-cli uses a different version of cross-zip than Electron Packager. The version that Packager uses has different command execution code on Windows.

I changed my account user name to something without a space and i am still recieving an error. do i need to restart the entire process for packager to have it update?

@D6NK This is still an issue if the app name has a space in it though.

I've pinned @electron-forge/maker-zip to version 6.0.0-beta.47 to workaround this issue for now.

I can confirm that this is still an issue as of now, whether it's the account user name that has a white space in it or the app name.

i managed to make/build my electron app with this procedure

I update temporarily one environment variable on my windows 10

set LOCALAPPDATA=C:\Users\My username\AppData\Local
become
set LOCALAPPDATA=C:\Users\My%20username\AppData\Local
Was this page helpful?
0 / 5 - 0 ratings