bcrypt is breaking my meteor application, how do I fix it?

Wes Modes picture Wes Modes · Mar 30, 2015 · Viewed 7.4k times · Source

I wasn't sure if this should be a stackoverflow or serverfault question.

I installed Meteor's accounts-password module and it worked locally, but broke my app when deployed to the server. Here's the scoop:

I'm running the latest Meteor 1.0.5 locally on OSX (OS just fully updated) Building with --architecture os.linux.x86_64 Deploying to Ubuntu 14.04.2 LTS x86_64 (just updated) Running nodejs v0.12.1 (freshly built) Serving app with nginx v1.4.0

And still getting:

/home/secrethistory/bundle/programs/server/node_modules/fibers/future.js:245
                                            throw(ex);
                                                  ^
Error: Module did not self-register.
    at Error (native)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at bindings (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)

Any tips or places to look next?

Answer

fcobcn picture fcobcn · Mar 30, 2015

The bcrypt module is platform dependant (as fibers), so you need to remove the package after decompressing the bundle in your server:

rm -R path/to/bcrypt

then install it again:

npm install bcrypt