Mup deploy fails verification due to embedded backslash in path

I’m deploying a Meteor app that works fine on my Windows 10 desktop but the verification step of mup deploy to Ubuntu is failing. The following is in the logs:

> [192.241.229.15]npm ERR! npm  v3.10.10
> [192.241.229.15]npm ERR! path /bundle/bundle/programs/server/npm/node_modules/sshpk/bin\sshpk-conv
> [192.241.229.15]npm ERR! code ENOENT
> [192.241.229.15]npm ERR! errno -2
> [192.241.229.15]npm ERR! syscall chmod
> [192.241.229.15]
> [192.241.229.15]npm ERR! enoent ENOENT: no such file or directory, chmod '/bundle/bundle/programs/server/npm/node_modules/sshpk/bin\sshpk-conv'
> [192.241.229.15]npm ERR! enoent ENOENT: no such file or directory, chmod '/bundle/bundle/programs/server/npm/node_modules/sshpk/bin\sshpk-conv'

The problem appears to be the embedded backslash character before sshpk-conv. I don’t know where that backslash is coming from (mup or npm?). But I do know that sshpk is required by http-signature which is required by request. All 3 are in the meteor bundle as well as in the global namespace on the target host.

Anyone know where that path name is constructed? I thought it might be a bug in the package.json of either request or http-signature but I can’t see anything wrong.

This has apparently been an on-going problem. See https://github.com/meteor/meteor/issues/7401. The workaround is to edit the package.json file in myapp/node_modules/sshpk. Find the “bin” section and replace “\” with “/”. Save the file and do another mup deploy. Worked for me.

Thats why I dont use MUP, I wrote my own little deployment script.

Good luck lol :wink:

@SkyRooms Could you please share your deploy script if you don’t mind. Thanks