Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

publish fails after upgrade of @electron-forge/publisher-electron-release-server #239

Closed
yvo-niedrich opened this issue May 15, 2020 · 2 comments · May be fixed by electron/forge#2220
Closed
Labels

Comments

@yvo-niedrich
Copy link

yvo-niedrich commented May 15, 2020

I upgraded my electron-forge environment from 6.0.0-beta.50 to 6.0.0-beta.51. The changelog lists

publisher-electron-release-server: throw an exception for 4xx/5xx HTTP status codes (#1538) (f223fc8f)

All of a sudden my release environment (Jenkins using Docker to build a Windows & Linux application) fails:

- Checking your system
✔ Checking your system
- Resolving Forge Config
✔ Resolving Forge Config
We need to package your application before we can make it
- Preparing to Package Application for arch: x64
✔ Preparing to Package Application for arch: x64
- Preparing native dependencies
✔ Preparing native dependencies
- Packaging Application
✔ Packaging Application
Making for the following targets: squirrel
- Making for target: squirrel - On platform: win32 - For arch: x64
✔ Making for target: squirrel - On platform: win32 - For arch: x64
- Resolving publish target: @electron-forge/publisher-electron-release-server
✔ Resolving publish target: @electron-forge/publisher-electron-release-server
- Uploading Artifacts 0/3
✖ Uploading Artifacts 0/3
An unhandled error has occurred inside Forge:
ERS publish failed with status code: 400 (https://electron.xxxx.com/api/asset)
Error: ERS publish failed with status code: 400 (https://electron.xxxx.com/api/asset)
    at fetchAndCheckStatus (/project/dist/kiosk-electron/node_modules/@electron-forge/publisher-electron-release-server/src/PublisherERS.ts:28:9)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at /project/dist/kiosk-electron/node_modules/@electron-forge/publisher-electron-release-server/src/PublisherERS.ts:132:11
    at async Promise.all (index 0)
    at /project/dist/kiosk-electron/node_modules/@electron-forge/publisher-electron-release-server/src/PublisherERS.ts:113:9

To get to the bottom of the 400 I enabled verbose logging on the electron-release-server and got the following:

Creating asset with name RELEASES
Sending 400 ("Bad Request") response:
 Error (E_VALIDATION) :: 1 attribute is invalid
    at WLValidationError.WLError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLError.js:25:15)
    at new WLValidationError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLValidationError.js:19:28)
    at _afterValidating (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:53:23)
    at allValidationsChecked (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:265:12)
    at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:52:16
    at Object.async.forEachOf.async.eachOf (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:236:30)
    at Object.async.forEach.async.each (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:209:22)
    at module.exports.Validator.validate (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:144:9)
    at /usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:42:25
    at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:718:13
    at Immediate.iterate [as _onImmediate] (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:262:13)
    at processImmediate (internal/timers.js:456:21)
    at process.topLevelDomainCallback (domain.js:137:15) {
  invalidAttributes: { filetype: [ [Object] ] },
  model: 'Asset',
  _e: Error
      at WLValidationError.WLError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLError.js:25:15)
      at new WLValidationError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLValidationError.js:19:28)
      at _afterValidating (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:53:23)
      at allValidationsChecked (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:265:12)
      at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:52:16
      at Object.async.forEachOf.async.eachOf (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:236:30)
      at Object.async.forEach.async.each (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:209:22)
      at module.exports.Validator.validate (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:144:9)
      at /usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:42:25
      at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:718:13
      at Immediate.iterate [as _onImmediate] (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:262:13)
      at processImmediate (internal/timers.js:456:21)
      at process.topLevelDomainCallback (domain.js:137:15),
  rawStack: '    at WLValidationError.WLError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLError.js:25:15)\n' +
    '    at new WLValidationError (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/error/WLValidationError.js:19:28)\n' +
    '    at _afterValidating (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:53:23)\n' +
    '    at allValidationsChecked (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:265:12)\n' +
    '    at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:52:16\n' +
    '    at Object.async.forEachOf.async.eachOf (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:236:30)\n' +
    '    at Object.async.forEach.async.each (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:209:22)\n' +
    '    at module.exports.Validator.validate (/usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/core/validations.js:144:9)\n' +
    '    at /usr/local/share/electron-release-server/node_modules/waterline/lib/waterline/query/validate.js:42:25\n' +
    '    at /usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:718:13\n' +
    '    at Immediate.iterate [as _onImmediate] (/usr/local/share/electron-release-server/node_modules/waterline/node_modules/async/lib/async.js:262:13)\n' +
    '    at processImmediate (internal/timers.js:456:21)\n' +
    '    at process.topLevelDomainCallback (domain.js:137:15)',
  reason: '1 attribute is invalid',
  code: 'E_VALIDATION',
  status: 400,
  details: 'Invalid attributes sent to Asset:\n' +
    ' • filetype\n' +
    `   • "required" validation rule failed for input: ''\n` +
    'Specifically, it threw an error.  Details:\n' +
    ' undefined\n'
}

Unfortunately I can't figure out what exactly is amiss here. Using the same version of electron-forge on my local environment (macOS) I can publish the .dmg without issues.

Can someone point me in the direction of the cause for this issue?


Update: Was able to recreate on my local environment (using docker and DEBUG=electron-forge:*):

  electron-forge:publish:ers attempting to authenticate to ERS +0ms
  electron-forge:async-ora Process Started: Uploading Artifacts 0/3 +640ms
  electron-forge:publish:ers attempting to upload asset: /project/out/make/squirrel.windows/x64/RELEASES +640ms
  electron-forge:publish:ers asset at path: /project/out/make/squirrel.windows/x64/Safety Kiosk-0.4.0-beta.2 Setup.exe already exists on server +7ms
  electron-forge:async-ora Process Renamed: Uploading Artifacts 0/3  -->  Uploading Artifacts 1/3 +9ms
  electron-forge:publish:ers asset at path: /project/out/make/squirrel.windows/x64/engageehs.electron.skipper-0.4.0-beta2-full.nupkg already exists on server +1ms
  electron-forge:async-ora Process Renamed: Uploading Artifacts 1/3  -->  Uploading Artifacts 2/3 +0ms
  electron-forge:async-ora Process Failed: Uploading Artifacts 2/3 -- after 226ms +217ms

An unhandled error has occurred inside Forge:
ERS publish failed with status code: 400 (https://electron.xxxx.com/api/asset) -
Error: ERS publish failed with status code: 400 (https://electron.xxxx.com/api/asset) -
    at fetchAndCheckStatus (/project/node_modules/@electron-forge/publisher-electron-release-server/dist/PublisherERS.js:40:9)
    at process.body (internal/process/task_queues.js:97:5)
    at /project/node_modules/@electron-forge/publisher-electron-release-server/src/PublisherERS.ts:134:13
    at async Promise.all (index 0)
    at /project/node_modules/@electron-forge/publisher-electron-release-server/src/PublisherERS.ts:115:13

Unfortunately the body of the 400-Response is empty. How can see why electron-release-server is responding with a Bad Request?

@maciejtoporowicz
Copy link

I'm getting the same issue. I downgraded @electron-forge/publisher-electron-release-server to 6.0.0-beta.50 as a quick workaround.

@stale
Copy link

stale bot commented Aug 9, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants