electron-builder: nsis-web differential update fails

  • Version: 19.48.2
  • Updater Version: 2.17.0
  • Target: Win NSIS-Web (x64 & ia32)

Differential update now always fails, can’t say for sure when it started happening. The fallback full update works.

All I did for this test is change the version number, updater and electron-builder versions were not changed in between.

Checking for update
Found version 1.0.3 (url: Media Presenter Web Setup 1.0.3.exe)
Downloading update from Media Presenter Web Setup 1.0.3.exe
Cannot download differentially, fallback to full download: SyntaxError: C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\_blockMap.yml: Unexpected token � in JSON at position 0
SyntaxError: C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\_blockMap.yml: Unexpected token � in JSON at position 0
    at JSON.parse (<anonymous>)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\jsonfile\index.js:33:18
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\graceful-fs\graceful-fs.js:78:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:504:3)
From previous event:
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\differentialDownloader\SevenZipDifferentialDownloader.js:44:84
From previous event:
    at SevenZipDifferentialDownloader.download (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\differentialDownloader\SevenZipDifferentialDownloader.js:46:11)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:102:36
    at Generator.next (<anonymous>)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:126:33
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\BaseUpdater.js:85:23
    at Generator.next (<anonymous>)
    at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
    at NsisUpdater.executeDownload (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\BaseUpdater.js:95:11)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:84:25
From previous event:
    at NsisUpdater.doDownloadUpdate (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:133:11)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:350:37
    at Generator.next (<anonymous>)
From previous event:
    at NsisUpdater.downloadUpdate (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:355:11)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:324:63
From previous event:
    at NsisUpdater.doCheckForUpdates (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:326:11)
    at C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:275:37
    at Generator.next (<anonymous>)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at NsisUpdater._checkForUpdates (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:280:11)
    at NsisUpdater.checkForUpdates (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:226:39)
    at App.update (C:\Users\johann.rekowski\AppData\Local\Programs\media-presenter\resources\app.asar\index.bundle.min.js:1:2487)
    at Object.onceWrapper (events.js:318:30)
    at emitTwo (events.js:130:20)
    at App.emit (events.js:213:7)
New version 1.0.3 has been downloaded to C:\Users\JOHANN~1.REK\AppData\Local\Temp\up-UpFLHU\Media%20Presenter%20Web%20Setup%201.0.3.exe

My config:

appId: media.presenter
copyright: "© 2016 - 2017 MEGO GmbH"
compression: maximum
npmRebuild: false

files:
  - "**/*"
  - "!{app,build,electron,mobile,theme,videos,util,dist,dist-app/app.bundle.js,dist-app/dependencies/shim.min.js,dist-app/dependencies/classList.min.js,dist-app/dependencies/web-animations.min.js,favicon.ico,index.html,index-aot.html,index-cordova.html,index.js,index-electron.js,index.bundle.js,systemjs.config.js,systemjs-angular-loader.js,package-lock.json}"
  - "!*config*.json"
  - "!**/*.{ts,scss,map,md,csv,wrapped,yml}"
  - "!**/*.{o,hprof,orig,pyc,pyo,rbc}"
  - "!**/._*"
  - "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,thumbs.db,.gitignore,.gitattributes,.editorconfig,.flowconfig,.yarn-metadata.json,.idea,appveyor.yml,.travis.yml,circle.yml,npm-debug.log,.nyc_output,yarn.lock,.yarn-integrity}"

publish:
  provider: generic
  url: "https://[redacted]/${os}"

win:
  verifyUpdateCodeSignature: false
  target:
    - nsis-web

nsisWeb:
  deleteAppDataOnUninstall: true

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 3
  • Comments: 16 (5 by maintainers)

Commits related to this issue

Most upvoted comments

@akashnimare @zhaoterryy I have same issue like you people. Is this fixed?

FYI: I used generic option only Versions: electron : 2.0.2 electron-builder : 20.15.1 electron-updater : 2.21.10

Tested both in window 7 and 10

Configuration in my package.json "build": { "productName": "FluidArchitect", "appId": "app.FluidArchitect", "win": { "target": "nsis-web", "icon": "http://192.168.3.149:8080/resources/appIcon.ico", "publish": { "provider": "generic", "useMultipleRangeRequest": false, "url": "http://na01-tfs02:8080/beta/nsis-web/", "channel": "latest" } }, "nsisWeb": { "artifactName": "${productName}-Setup-${version}.exe", "oneClick": false, "perMachine": true, "allowToChangeInstallationDirectory": true, "runAfterFinish": true, "deleteAppDataOnUninstall": true, "differentialPackage": true, "createDesktopShortcut": true } }

Here is one more observation When there is only one user(Administrator) it’s working absolutely fine.

But if I we have two users like Administrator and Madhu Kudala, If you are logged in as Madhu Kudala and Installed the app with Run as Administrator or Normally. Then it has problem Error: EPERM: operation not permitted, open C:\Program Files\xxx\package.7z

If you guys find any solution(Programmatically) please help me to fix this.

Thank you.

@develar can you re-open this issue? I’m getting the same error on electron-updater - 2.18.2 and electron-builder - 19.53.6

[2018-02-28 00:32:40:0830] [info] Checking for update
[2018-02-28 00:32:50:0221] [info] Found version 1.8.2 (url: zulip-web-setup-1.8.2.exe)
[2018-02-28 00:32:50:0223] [info] Downloading update from zulip-web-setup-1.8.2.exe
[2018-02-28 00:33:05:0023] [error] Cannot download differentially, fallback to full download: Error: EPERM: operation not permitted, open 'C:\Program Files\Zulip\package.7z'
    at C:\Program Files\Zulip\resources\app.asar\node_modules\builder-util-runtime\src\blockMapApi.ts:22:20
    at Generator.next (<anonymous>)
From previous event:
    at readEmbeddedBlockMapData (C:\Program Files\Zulip\resources\app.asar\node_modules\builder-util-runtime\out\blockMapApi.js:39:21)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\differentialDownloader\FileWithEmbeddedBlockMapDifferentialDownloader.ts:11:44
    at Generator.next (<anonymous>)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
    at FileWithEmbeddedBlockMapDifferentialDownloader.download (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\differentialDownloader\FileWithEmbeddedBlockMapDifferentialDownloader.js:37:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\NsisUpdater.ts:177:10
    at Generator.next (<anonymous>)
From previous event:
    at NsisUpdater.differentialDownloadWebPackage (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:232:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\NsisUpdater.ts:53:24
    at Generator.next (<anonymous>)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:118:33
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\BaseUpdater.ts:46:13
    at Generator.next (<anonymous>)
    at FSReqWrap.oncomplete (fs.js:114:15)
From previous event:
    at NsisUpdater.executeDownload (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\BaseUpdater.js:98:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\NsisUpdater.ts:37:16
From previous event:
    at NsisUpdater.doDownloadUpdate (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\NsisUpdater.js:125:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\AppUpdater.ts:331:25
    at Generator.next (<anonymous>)
From previous event:
    at NsisUpdater.downloadUpdate (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:366:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\AppUpdater.ts:307:49
From previous event:
    at NsisUpdater.doCheckForUpdates (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:337:11)
    at C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\AppUpdater.ts:255:25
    at Generator.next (<anonymous>)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
    at NsisUpdater._checkForUpdates (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\out\AppUpdater.js:291:11)
    at NsisUpdater.checkForUpdates (C:\Program Files\Zulip\resources\app.asar\node_modules\electron-updater\src\AppUpdater.ts:204:35)
    at appUpdater (C:\Program Files\Zulip\resources\app.asar\main\autoupdater.js:48:14)
    at WebContents.page.once (C:\Program Files\Zulip\resources\app.asar\main\index.js:165:3)
    at Object.onceWrapper (events.js:293:19)
    at emitTwo (events.js:106:13)
    at WebContents.emit (events.js:194:7)
[2018-02-28 00:34:00:0677] [info] New version 1.8.2 has been downloaded to C:\Users\USERNAME\AppData\Local\Temp\up-K4ogsi\zulip-web-setup-1.8.2.exe
[2018-02-28 00:34:16:0618] [info] Install on explicit quitAndInstall
[2018-02-28 00:34:16:0618] [info] Install: isSilent: false, isRunAfter: true
[2018-02-28 00:34:16:0674] [info] Access denied or UNKNOWN error code on spawn, will be executed again using elevate
[2018-02-28 00:34:32:0890] [info] Checking for update
[2018-02-28 00:34:39:0297] [info] Update for version 1.8.2 is not available (latest version: 1.8.2, downgrade is disallowed.
[2018-02-28 18:50:00:0827] [info] Checking for update
[2018-02-28 18:50:07:0162] [info] Update for version 1.8.2 is not available (latest version: 1.8.2, downgrade is disallowed.

Here is the code for auto-update and config file. https://github.com/zulip/zulip-electron/blob/master/package.json https://github.com/zulip/zulip-electron/blob/master/app/main/autoupdater.js