ICEpush
  1. ICEpush
  2. PUSH-302

Cloud Push not delivered over cell or LTE connection

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Bridge-it 1.0
    • Fix Version/s: 4.0
    • Component/s: Push Server
    • Labels:
      None
    • Environment:
      ICEpush Service, iOS

      Description

      When testing the BridgeIt Cloud Push demo on the cell LTE network, the Cloud Push was not delivered. It was delivered over wifi, however.

        Activity

        Hide
        Ted Goddard added a comment -

        A test of Cloud Push this morning did work. I will retest under different network conditions.

        Show
        Ted Goddard added a comment - A test of Cloud Push this morning did work. I will retest under different network conditions.
        Hide
        Ted Goddard added a comment -

        It does not appear to be related to network conditions:

        This works, and is using the simple push service on labs:

        http://labs.icesoft.com/bridgeit/cloud-push.html

        Whereas the public demo does not deliver the cloud push over LTE.

        Show
        Ted Goddard added a comment - It does not appear to be related to network conditions: This works, and is using the simple push service on labs: http://labs.icesoft.com/bridgeit/cloud-push.html Whereas the public demo does not deliver the cloud push over LTE.
        Hide
        Ted Goddard added a comment -

        Jack, can you try the public http://bridgeit.mobi/demo/cloud-push.html on iPhone over wifi and cell and look for any difference in logging? The labs demo is set up to use an internal build of the BridgeIt App, so Cloud Push will not work for you with that demo unless you have the binary.

        Show
        Ted Goddard added a comment - Jack, can you try the public http://bridgeit.mobi/demo/cloud-push.html on iPhone over wifi and cell and look for any difference in logging? The labs demo is set up to use an internal build of the BridgeIt App, so Cloud Push will not work for you with that demo unless you have the binary.
        Hide
        Ken Fyten added a comment -

        My original observation was that cloud push was working on wifi on my iPhone 5, iOS 7.0.4. Then I disabled wifi and used 3G, cloud push would not work at all over numerous attempts. I then enabled LTE and cloud push worked fine. After disabling LTE and returning to 3G, cloud push continued to work fine.

        Show
        Ken Fyten added a comment - My original observation was that cloud push was working on wifi on my iPhone 5, iOS 7.0.4. Then I disabled wifi and used 3G, cloud push would not work at all over numerous attempts. I then enabled LTE and cloud push worked fine. After disabling LTE and returning to 3G, cloud push continued to work fine.
        Hide
        Ted Goddard added a comment -

        Verified that the iOS deviceToken is identical for both LTE and WiFi.

        This issue may occur not because of any inherent difference between LTE/3G/WiFi, but because of switching between these modes, which may result in a short-term mismatch with the adaptive heartbeat. My testing today showed Cloud Push working over WiFi, LTE, and 3G, so I will test again from other locations.

        My previous test that showed labs working but not the public demo was a test error: labs and the public demo have different APNS certificates, so cannot work simultaneously.

        Jack, please report on your testing under different network conditions.

        Show
        Ted Goddard added a comment - Verified that the iOS deviceToken is identical for both LTE and WiFi. This issue may occur not because of any inherent difference between LTE/3G/WiFi, but because of switching between these modes, which may result in a short-term mismatch with the adaptive heartbeat. My testing today showed Cloud Push working over WiFi, LTE, and 3G, so I will test again from other locations. My previous test that showed labs working but not the public demo was a test error: labs and the public demo have different APNS certificates, so cannot work simultaneously. Jack, please report on your testing under different network conditions.
        Hide
        Ken Fyten added a comment -

        Subsequent attempts to reproduce this failure have been unsuccessful. Even switching connection types while a push event is pending has worked fine in each case.
        I think this can be marked Cannot Reproduce.

        Show
        Ken Fyten added a comment - Subsequent attempts to reproduce this failure have been unsuccessful. Even switching connection types while a push event is pending has worked fine in each case. I think this can be marked Cannot Reproduce.
        Hide
        Jack Van Ooststroom added a comment -

        As this is running more stable now in our development environment we should try to reproduce this again within the 4.0 release time frame.

        Show
        Jack Van Ooststroom added a comment - As this is running more stable now in our development environment we should try to reproduce this again within the 4.0 release time frame.
        Hide
        Ken Fyten added a comment -

        Testing on my iPhone 5 w/ iOS 7.1.2 shows that cloudPush functions normally when the device is switched (after the push is requested) between wifi, 3G, and LTE connections.

        I also tested putting the phone into airplane mode once the cloudPush was requested. The push event didn't appear to arrive once the phone was put back online a few minutes later, although, according to the Apple docs, it should:

        If APNs attempts to deliver a notification but the device is offline, the notification is stored for a limited period of time, and delivered to the device when it becomes available.

        Note that a subsequent test did work successfully.

        Show
        Ken Fyten added a comment - Testing on my iPhone 5 w/ iOS 7.1.2 shows that cloudPush functions normally when the device is switched (after the push is requested) between wifi, 3G, and LTE connections. I also tested putting the phone into airplane mode once the cloudPush was requested. The push event didn't appear to arrive once the phone was put back online a few minutes later, although, according to the Apple docs, it should: If APNs attempts to deliver a notification but the device is offline, the notification is stored for a limited period of time, and delivered to the device when it becomes available. Note that a subsequent test did work successfully.
        Hide
        Jack Van Ooststroom added a comment -

        I tested this as well on my iPhone 5 switching between Wi-Fi, 3G and 4G (LTE). I didn't see any problems. However, switching to Airplane Mode and back failed multiple times for me.

        Show
        Jack Van Ooststroom added a comment - I tested this as well on my iPhone 5 switching between Wi-Fi, 3G and 4G (LTE). I didn't see any problems. However, switching to Airplane Mode and back failed multiple times for me.
        Hide
        Ken Fyten added a comment -

        Liana reports that cloudPush notifications are not being received to her Android 4.4 device. I have verified she is following the correct steps, and none cloudPushes are working fine for her. Ted has replicated the failure and is investigating.

        Show
        Ken Fyten added a comment - Liana reports that cloudPush notifications are not being received to her Android 4.4 device. I have verified she is following the correct steps, and none cloudPushes are working fine for her. Ted has replicated the failure and is investigating.
        Hide
        Ted Goddard added a comment -

        Even regular push is not delivered to the Nexus 7 tablet in my testing. Unfortunately, the device is not recognized for debugging, so further investigation will need to be performed with different cables and workstation.

        Show
        Ted Goddard added a comment - Even regular push is not delivered to the Nexus 7 tablet in my testing. Unfortunately, the device is not recognized for debugging, so further investigation will need to be performed with different cables and workstation.
        Hide
        Ted Goddard added a comment -

        Apparently I forgot to clear the browser cache during my earlier testing (this was quickly revealed by the "parametr is not defined" error in the console now displayed with the working cable).

        Ajax Push is now verified working.

        Cloud Push did not succeed.

        Show
        Ted Goddard added a comment - Apparently I forgot to clear the browser cache during my earlier testing (this was quickly revealed by the "parametr is not defined" error in the console now displayed with the working cable). Ajax Push is now verified working. Cloud Push did not succeed.
        Hide
        Ted Goddard added a comment -

        The ice.notifyback parameter is included in the listen.icepush POST.

        Show
        Ted Goddard added a comment - The ice.notifyback parameter is included in the listen.icepush POST.
        Hide
        Ted Goddard added a comment -

        bridgeit.mobi/demo cloud push is also not functional, although Ajax Push is working on the Nexus 7.

        Show
        Ted Goddard added a comment - bridgeit.mobi/demo cloud push is also not functional, although Ajax Push is working on the Nexus 7.
        Hide
        Ted Goddard added a comment -

        Updating Chrome, uninstalling and installing BridgeIt, and rebooting the device still do not show a successful cloud push delivery.

        Changing to airplane mode also did not result in Cloud Push delivery, but this test is complicated by the fact that neither the Ajax Push nor the Cloud Push can be delivered while in airplane mode.

        Show
        Ted Goddard added a comment - Updating Chrome, uninstalling and installing BridgeIt, and rebooting the device still do not show a successful cloud push delivery. Changing to airplane mode also did not result in Cloud Push delivery, but this test is complicated by the fact that neither the Ajax Push nor the Cloud Push can be delivered while in airplane mode.
        Hide
        Ted Goddard added a comment -

        The tomcat log indicates that the GCM provider does not have the current credentials. These are being verified.

        Aug 25, 2014 5:34:27 PM com.icesoft.icepush.GcmNotificationProvider$SendMessage run
        WARNING: Authorization key is invalid.

        Show
        Ted Goddard added a comment - The tomcat log indicates that the GCM provider does not have the current credentials. These are being verified. Aug 25, 2014 5:34:27 PM com.icesoft.icepush.GcmNotificationProvider$SendMessage run WARNING: Authorization key is invalid.
        Hide
        Jack Van Ooststroom added a comment -

        In regards to the scenario where the Cloud Push is not received when coming out of Airplane Mode, the following executes nicely (taken from APNSNotificationProvider):

        SSLSocket apnsSocket = (SSLSocket) sslFactory.createSocket(HOST, PORT);
        OutputStream sout = apnsSocket.getOutputStream();
        sout.write(apnsNotification);
        sout.flush();
        sout.close();

        And we're even counting it as a successful Cloud Push in regards to the Metrics Service. Is there something specific in the APNS API that we need to add when writing to APNS to ensure the notification is still send once the targeted device comes out of Airplane Mode?

        Show
        Jack Van Ooststroom added a comment - In regards to the scenario where the Cloud Push is not received when coming out of Airplane Mode, the following executes nicely (taken from APNSNotificationProvider): SSLSocket apnsSocket = (SSLSocket) sslFactory.createSocket(HOST, PORT); OutputStream sout = apnsSocket.getOutputStream(); sout.write(apnsNotification); sout.flush(); sout.close(); And we're even counting it as a successful Cloud Push in regards to the Metrics Service. Is there something specific in the APNS API that we need to add when writing to APNS to ensure the notification is still send once the targeted device comes out of Airplane Mode?
        Hide
        Ted Goddard added a comment -

        There may be a BridgeIt App bug (for instance, if the delayed notification is delivered as a different type of notification) but the fact that this works transiently indicates that Apple may not be delivering the notification successfully to the disconnected device. Observing the log on the iPhone would provide additional details.

        Show
        Ted Goddard added a comment - There may be a BridgeIt App bug (for instance, if the delayed notification is delivered as a different type of notification) but the fact that this works transiently indicates that Apple may not be delivering the notification successfully to the disconnected device. Observing the log on the iPhone would provide additional details.
        Hide
        Ken Fyten added a comment -

        cloudPush is now working.

        Note the sporadic issue with Android has been captured in PUSH-332 for future reference.

        Show
        Ken Fyten added a comment - cloudPush is now working. Note the sporadic issue with Android has been captured in PUSH-332 for future reference.

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: