Push messages for iOS: "Error Code: 1001; Remote host closed connection during handshake"

474 views Asked by At

I am trying to send push notifications through Appcelerator's Arrow service to my Alloy app. Currently I try to get it to work on iOS, but it fails. I have followed the Appcelerator Tutorials for generating the iOS certificate and for registering my device. I am using the latest Appcelerator Titanium release as of writing which is 5.1.2.GA.

In the notification logs inside the platform, the message looks like this:

56cb19af13d239090f0914aa --- --- Failure Feb 22, 2016 2:22 PM

It has an ID, but no values for iOS and Android, neither for the Devices column. The (real) iOS device I am deploying to is registered for the push channel o***l though.

Checking the reasons for the failure through the API yields this:

{
  "meta": {
    "code": 200,
    "status": "ok",
    "more": false,
    "method_name": "queryPushLogDetails"
  },
  "response": {
    "push_log_details": [
      {
        "_id": "56cb0756e4b0d71f12be298f",
        "msg_id": "328eadef-f048-4b7f-bfff-7f360de11823",
        "push_id": "56cb07504e8d4309050800ab",
        "type": "ios",
        "token": "f2815de63052d8b5965f88124c8***",
        "channel": "o***l",
        "app_id": "5***3",
        "send_status": 2,
        "sent_at": "2016-02-22T13:04:21+0000",
        "updated_at": "2016-02-22T13:04:22+0000",
        "error_message": "Exception Type: APNS; Error Code: 1001; Error Message: General Problem; Catched Exception: Remote host closed connection during handshake",
        "created_at": "2016-02-22T13:04:22+0000",
        "locked_at": "2016-02-22T13:04:23+0000",
        "pem_sent_at": "2016-02-22T13:04:23+0000"
      }
    ]
  }
}

Googling for "error_message": "Exception Type: APNS; Error Code: 1001; Error Message: General Problem; Catched Exception: Remote host closed connection during handshake" returned this post, but my case seems to be different as I can connect to the Apple Sandbox successfully:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert keyStore.pem
CONNECTED(00000003)
depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=US/ST=California/L=Cupertino/O=Apple Inc./CN=gateway.sandbox.push.apple.com
   i:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
 1 s:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
   i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFMzC***U2MxV
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Cupertino/O=Apple Inc./CN=gateway.sandbox.push.apple.com
issuer=/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
---
Acceptable client certificate CA names
/C=US/O=Apple Inc./OU=Apple Certification Authority/CN=Apple Root CA
/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
/C=US/O=Apple Inc./OU=Apple Certification Authority/CN=Apple Application Integration Certification Authority
---
SSL handshake has read 3160 bytes and written 2153 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID:
    Session-ID-ctx:
    Master-Key: F29F1914F74141A29F182AA3B4C4F480B2C2D388E872023774614281E34773E0F856F4A724F7C3AE8F206AF1945C351B
    Key-Arg   : None
    Start Time: 1456152076
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

I have already regenerated the SSL key for the push notifications. Sending the push message through the API is all the same than sending it from within the web interface of the platform.

What else could I try? Is there known issues?

0

There are 0 answers