parse-community / parse-server-push-adapter

A push notification adapter for Parse Server
https://parseplatform.org
MIT License
85 stars 100 forks source link

parse-server-push-adapter APNS 'Error: header too long' #125

Closed achimkoellner closed 5 years ago

achimkoellner commented 5 years ago

After removing our .p12-certificates from out git repository and moving them to an S3 bucket we initially download the certificates on server-start (which works). When sending a push notification with parse-server-push-adapter we now get the following error.

Anybody an idea what headers are meant? Is this maybe related to a corrupt p12-binary file? the certificate files I download from S3 look identical to me and are binary-encoded.


ERR! parse-server-push-adapter APNS Error: header too long
ERR! parse-server-push-adapter APNS     at Object.createSecureContext (_tls_common.js:158:19)
ERR! parse-server-push-adapter APNS     at Object.exports.connect (_tls_wrap.js:1062:48)
ERR! parse-server-push-adapter APNS     at Endpoint.connect [as _connect] (/myapp/node_modules/apn/lib/protocol/endpoint.js:87:37)
ERR! parse-server-push-adapter APNS     at new Endpoint (/myapp/node_modules/apn/lib/protocol/endpoint.js:44:10)
ERR! parse-server-push-adapter APNS     at EndpointManager.createEndpoint (/myapp/node_modules/apn/lib/protocol/endpointManager.js:51:22)
ERR! parse-server-push-adapter APNS     at EndpointManager.getStream (/myapp/node_modules/apn/lib/protocol/endpointManager.js:32:12)
ERR! parse-server-push-adapter APNS     at resolve (/myapp/node_modules/apn/lib/client.js:121:43)
ERR! parse-server-push-adapter APNS     at new Promise (<anonymous>)
ERR! parse-server-push-adapter APNS     at Client.getStream (/myapp/node_modules/apn/lib/client.js:120:12)
ERR! parse-server-push-adapter APNS     at Client.write (/myapp/node_modules/apn/lib/client.js:41:17)
ERR! parse-server-push-adapter APNS     at Promise.all.recipients.map.token (/myapp/node_modules/apn/lib/provider.js:29:62)
ERR! parse-server-push-adapter APNS     at Array.map (<anonymous>)
ERR! parse-server-push-adapter APNS     at Provider.send (/myapp/node_modules/apn/lib/provider.js:29:36)
ERR! parse-server-push-adapter APNS     at APNS.sendThroughProvider (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:170:27)
ERR! parse-server-push-adapter APNS     at APNS.send (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:156:28)
ERR! parse-server-push-adapter APNS     at _loop (/myapp/node_modules/@parse/push-adapter/lib/ParsePushAdapter.js:117:38)
ERR! parse-server-push-adapter APNS  APNS error transmitting to device %s with error %s 7ea2ba9a23a2f4553481ed13ed592f9d18d12f7bb64aff1c4d7850a70a8a24c1 { Error: header too long
ERR! parse-server-push-adapter APNS     at Object.createSecureContext (_tls_common.js:158:19)
ERR! parse-server-push-adapter APNS     at Object.exports.connect (_tls_wrap.js:1062:48)
ERR! parse-server-push-adapter APNS     at Endpoint.connect [as _connect] (/myapp/node_modules/apn/lib/protocol/endpoint.js:87:37)
ERR! parse-server-push-adapter APNS     at new Endpoint (/myapp/node_modules/apn/lib/protocol/endpoint.js:44:10)
ERR! parse-server-push-adapter APNS     at EndpointManager.createEndpoint (/myapp/node_modules/apn/lib/protocol/endpointManager.js:51:22)
ERR! parse-server-push-adapter APNS     at EndpointManager.getStream (/myapp/node_modules/apn/lib/protocol/endpointManager.js:32:12)
ERR! parse-server-push-adapter APNS     at resolve (/myapp/node_modules/apn/lib/client.js:121:43)
ERR! parse-server-push-adapter APNS     at new Promise (<anonymous>)
ERR! parse-server-push-adapter APNS     at Client.getStream (/myapp/node_modules/apn/lib/client.js:120:12)
ERR! parse-server-push-adapter APNS     at Client.write (/myapp/node_modules/apn/lib/client.js:41:17)
ERR! parse-server-push-adapter APNS     at Promise.all.recipients.map.token (/myapp/node_modules/apn/lib/provider.js:29:62)
ERR! parse-server-push-adapter APNS     at Array.map (<anonymous>)
ERR! parse-server-push-adapter APNS     at Provider.send (/myapp/node_modules/apn/lib/provider.js:29:36)
ERR! parse-server-push-adapter APNS     at APNS.sendThroughProvider (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:170:27)
ERR! parse-server-push-adapter APNS     at APNS.send (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:156:28)
ERR! parse-server-push-adapter APNS     at _loop (/myapp/node_modules/@parse/push-adapter/lib/ParsePushAdapter.js:117:38)
ERR! parse-server-push-adapter APNS   stack: 'Error: header too long\n    at Object.createSecureContext (_tls_common.js:158:19)\n    at Object.exports.connect (_tls_wrap.js:1062:48)\n    at Endpoint.connect [as _connect] (/myapp/node_modules/apn/lib/protocol/endpoint.js:87:37)\n    at new Endpoint (/myapp/node_modules/apn/lib/protocol/endpoint.js:44:10)\n    at EndpointManager.createEndpoint (/myapp/node_modules/apn/lib/protocol/endpointManager.js:51:22)\n    at EndpointManager.getStream (/myapp/node_modules/apn/lib/protocol/endpointManager.js:32:12)\n    at resolve (/myapp/node_modules/apn/lib/client.js:121:43)\n    at new Promise (<anonymous>)\n    at Client.getStream (/myapp/node_modules/apn/lib/client.js:120:12)\n    at Client.write (/myapp/node_modules/apn/lib/client.js:41:17)\n    at Promise.all.recipients.map.token (/myapp/node_modules/apn/lib/provider.js:29:62)\n    at Array.map (<anonymous>)\n    at Provider.send (/myapp/node_modules/apn/lib/provider.js:29:36)\n    at APNS.sendThroughProvider (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:170:27)\n    at APNS.send (/myapp/node_modules/@parse/push-adapter/lib/APNS.js:156:28)\n    at _loop (/myapp/node_modules/@parse/push-adapter/lib/ParsePushAdapter.js:117:38)' }
achimkoellner commented 5 years ago

The problem was that the .p12 certificates were not correctly encoded (binary) before written to the local file system.