[Error: spawn EPERM]
itsallrelative opened this issue · 4 comments
I was attempting to use the stripe node module to do payments within my app, and ran into an error. It works fine on IOS simulator, but doesn't work on the actual iphone. I think it has something to do with trying to call the user agent, and then it blows up. Here is the full error from xcode:
Stack:[{"_fileName":"child_process.js","_functionName":"errnoException","_lineNumber":"1016","_columnNumber":"11","_msg":" at errnoException@child_process.js:1016:11"},{"_fileName":"child_process.js","_functionName":"ChildProcess.prototype.spawn","_lineNumber":"964","_columnNumber":"1","_msg":" at ChildProcess.prototype.spawn@child_process.js:964:1"},{"_fileName":"child_process.js","_functionName":"exports.spawn","_lineNumber":"743","_columnNumber":"1","_msg":" at exports.spawn@child_process.js:743:1"},{"_fileName":"child_process.js","_functionName":"exports.execFile","_lineNumber":"626","_columnNumber":"15","_msg":" at exports.execFile@child_process.js:626:15"},{"_fileName":"child_process.js","_functionName":"exports.exec","_lineNumber":"593","_columnNumber":"10","_msg":" at exports.exec@child_process.js:593:10"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/stripe.js","_functionName":"Stripe.prototype.getClientUserAgent","_lineNumber":"143","_columnNumber":"5","_msg":" at Stripe.prototype.getClientUserAgent@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/stripe.js:143:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeResource.js","_functionName":"StripeResource.prototype._request","_lineNumber":"204","_columnNumber":"5","_msg":" at StripeResource.prototype._request@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeResource.js:204:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeMethod.js","_functionName":"stripeMethod/<","_lineNumber":"77","_columnNumber":"5","_msg":" at stripeMethod/<@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeMethod.js:77:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/app.js","_functionName":"","_lineNumber":"47","_columnNumber":"1","_msg":" at @/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/app.js:47:1"}]
2015-10-14 14:14:08.664 Ninja Scan[4356:553562] Resetting plugins due to page load.
2015-10-14 14:14:10.859 Ninja Scan[4356:553562] Finished load of: file:///var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja%20Scan.app/www/index.html#/home
create customer called
2015-10-14 14:14:40.645 Ninja Scan[4356:553684] Error!: spawn EPERM
Stack:[{"_fileName":"child_process.js","_functionName":"errnoException","_lineNumber":"1016","_columnNumber":"11","_msg":" at errnoException@child_process.js:1016:11"},{"_fileName":"child_process.js","_functionName":"ChildProcess.prototype.spawn","_lineNumber":"964","_columnNumber":"1","_msg":" at ChildProcess.prototype.spawn@child_process.js:964:1"},{"_fileName":"child_process.js","_functionName":"exports.spawn","_lineNumber":"743","_columnNumber":"1","_msg":" at exports.spawn@child_process.js:743:1"},{"_fileName":"child_process.js","_functionName":"exports.execFile","_lineNumber":"626","_columnNumber":"15","_msg":" at exports.execFile@child_process.js:626:15"},{"_fileName":"child_process.js","_functionName":"exports.exec","_lineNumber":"593","_columnNumber":"10","_msg":" at exports.exec@child_process.js:593:10"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/stripe.js","_functionName":"Stripe.prototype.getClientUserAgent","_lineNumber":"143","_columnNumber":"5","_msg":" at Stripe.prototype.getClientUserAgent@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/stripe.js:143:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeResource.js","_functionName":"StripeResource.prototype._request","_lineNumber":"204","_columnNumber":"5","_msg":" at StripeResource.prototype._request@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeResource.js:204:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeMethod.js","_functionName":"stripeMethod/<","_lineNumber":"77","_columnNumber":"5","_msg":" at stripeMethod/<@/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/node_modules/stripe/lib/StripeMethod.js:77:5"},{"_fileName":"/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/app.js","_functionName":"","_lineNumber":"47","_columnNumber":"1","_msg":" at @/private/var/mobile/Containers/Bundle/Application/E94FD699-5854-4CF3-A872-90F5799A8642/Ninja Scan.app/www/jxcore/app.js:47:1"}]
and it is failing on the following code within the stripe module:
getClientUserAgent: function(cb) {
if (Stripe.USER_AGENT_SERIALIZED) {
return cb(Stripe.USER_AGENT_SERIALIZED);
}
exec('uname -a', function(err, uname) {
Stripe.USER_AGENT.uname = uname || 'UNKNOWN';
Stripe.USER_AGENT_SERIALIZED = JSON.stringify(Stripe.USER_AGENT);
cb(Stripe.USER_AGENT_SERIALIZED);
});
},
iOS
device doesn't support child processes.
Forgive me, but I'm a web developer by trade, so IOS things are new to me. Could you explain further?
@tomandhisjones Your code executes methods from node's child_process module: exec('uname -a')
, which in turn calls spawn()
, etc. @obastemur meant, that those methods cannot work on iOS (Apple mobile devices) due to permission restrictions.
Ok, I'll have to come up with another way then. Thanks for the quick response guys, and I appreciate jxcore