[solved] No push notifications - device does not register to push proxy (?)

Hi,

I have been using Nextcloud (shared hosting) for a few years and I have kept the server and the clients up to date. I have never been abel to get the push notifications to the Android clients (Nextcloud and Talk) to work on my server, whereas they do flawlessly when I use the demo.nextcloud.com test server.
To me, this points to an issue with my server rather than with my device. I read a lot of similar threads here and on github, but I cannot get any push notification on the Android clients.

Nextcloud (server) version : 18.0.2
Nextcloud Talk (server) version : 8.0.7
Nextcloud Notification (server) : 2.6.0
Server IP address: 146.88.234.47

Device : Xiaomi Redmi Note 8 Pro, Android 10
Nextcloud (android) : 3.11.0, from Google Play Store
Nextcloud Talk (android) : 8.0.8, from Google Play Store

I have tried clearing cache and data on the Android device apps, uninstalling and reinstalling a few times the apps, unabling and disabling 2FA authentication, using admin and non-admin accounts, without success. Again, using demo.nextcloud.com I get push notifications on this device e.g. when I receive a federated-shared document, without having to tweak anything e.g. battery management or notification parameters.

I guess the culprit is the device registration process. When I start from scratch (i.e. after deleting the entries in oc_notifications_pushtokens table, I see some hints in the server logs indicating that my device has correctly registered to my server:
[07/Apr/2020:13:39:39 +0200] “POST /ocs/v2.php/apps/notifications/api/v2/push?format=json&pushTokenHash=ed36(…)2eff&devicePublicKey=-----BEGIN%20PUBLIC%20KEY-----%0AMIIBIjANB(…)0A0QIDAQAB%0A-----END%20PUBLIC%20KEY-----%0A&proxyServer=https%3A%2F%2Fpush-notifications.nextcloud.com HTTP/1.1” 201 1027 “-” “Mozilla/5.0 (Android) Nextcloud-android/3.11.0”

Neihter the logs in the administration nor nextcloud.log show entries in the timeframe of device registration and push notification triggering.

According to the documentation I found about the push notifications subsrcibing process (https://github.com/nextcloud/notifications/blob/5a2d3607952bad675e4057620a9c7de8a7f84f0b/docs/push-v3.md), it looks like the 201 response means that the Push token has been correctly created, and needs to be sent to the Proxy. Indeed, a new entry in oc_notifications_pushtokens has been created.

So it looks like the next step (subscribing at the Push Proxy) might be the one that fails, but due to my limited technical knowledge I cannot test whether it is the case or not. Is there a way to check somewhere if the device is able to correctly communicate with the Push Proxy? Is it possible that there is a kind of blacklist preventing my server and the Push proxy to properly communicate?

Finally, in the Nextcloud Android App, when I click on “Notifications”, a message is displayed at the bottom reading “Push notifications currently not available”

Thank you for reading this lengthy post, hopefully someone will be able to shed some light on my issue. I appreciate your input :slight_smile:

Cyril

2 Likes

So it does not seem that this thread got much attention, but since I have found a workaround and there are several other threads related to issues with push notifications for Nextcloud and Talk Android applications, here are a few more steps:

  • I installed another instance of Nextcloud on the same shared server, created two users -> notifications worked (!)
  • I created a new test user on my first instance, and once registered on my device, the push notifications are working perfectly on my smartphone (!!)

So, at least in my case, I have been able to rule out the smartphone and its battery saving options, the nextcloud / talk / android apps versions, and the server configuration. It looks like my account was the issue, maybe because it was too old, maybe because I have used it accross several years, versions and smartphones? I guess I’ll never know, but hopefully this can help if someone has a similar issue in the future.

2 Likes

Hi,
Did you got more info about your problem? Mine seems to be really close to yours.
I get notifications for Talk, but absolutely none for the Nextcloud app. I don’ t some info about similar problems, except yours.
And when I go (on my android-smartphone) in the notifications menu, Notifications are loaded (I can read them, but a message tells me notifications aren’t available. It seems that I’ve some wrong configuration, but don’t know where to search…

Hi,

I have the same problem. Notifications appears on computer browser but doesn’t works on mobile device. They are visibles in notifications list of the details app but doesn’t make ring the phone.

I have this problem for all users. Announcements are activated for all.

occ announcement:push-test say that there are no-devices.

I use LDAP users. Could it be a problem?

I don’t use LDAP and had the same situation. I can confirm that the problem was with the user. I have created a new user and it works fine for it. Now the problem is: how to fix the original user without migrating it to the new one. But this is another story…

1 Like

Did anyone here figure this out? I’m having the same issue with Nextcloud 24.0.3 and Nextcloud-Android 3.20.3.

After checking every thread on this topic, I am in the same situation as you. I can completely replicate your steps and I have the exact same problem. It is linked to my account. However, I do not want to delete it, since it would be a huge pain to set everything up again. So what did you end up doing? Did you really delete your account and set up a new one?

This is a defining feature. Push notifications need to work flawlessly OUT OF THE BOX without any monkeying around.

I know I am late but here is the solution:

  1. Delete keypair of “old” user without working push located in nc_data/appdata_xxx/identityproof/user-y/
  2. Run occ notification:test-push user-y to delete devices unknown by the push server
  3. Reopen Nextcloud App on device to start a new push registration process (a new keypair will be created in appdata_xxx for this user)
  4. Run occ notification:test-push user-y again and be happy about the received test push :slight_smile:

Additional info:

I went through the code and saw that a user’s private key used by push proxy is written in appdata. The method that reads the key from the file generates a new one if no key is present. There were 2 PR that changed the key creation which probably caused that push doesn’t work anymore.

Used sources:

1 Like

guess what! Still borked!

This topic was automatically closed after 16 hours. New replies are no longer allowed.