nextcloud / talk-ios

📱😀 Video & audio calls through Nextcloud on iOS
GNU General Public License v3.0
147 stars 87 forks source link

Not getting notifications on 1 account in the talk app #1491

Closed kderholt closed 4 months ago

kderholt commented 7 months ago

Steps to reproduce

I don't know how I can reproduce this.

Expected behaviour

All users (through social login - google) should default get notifications in the nextcloud talk app.

Actual behaviour

On ONE particular user, the app never subscribes to notifications.

Device information

Device: iPhone X/iPad Y/… iPhone 13 mini iPhone 15 pro

iOS version: 10/… 17.2.1

Talk version: 11.1.1 17.1.4

Server information

27.1.5

Nextcloud version: (see admin overview page: /index.php/settings/admin/overview) 27.1.5

Talk version: (see apps admin page: /index.php/settings/apps) 17.1.4

Custom Signaling server configured: yes/no and version (see talk admin settings: /index.php/settings/admin/talk#signaling_server) No Custom TURN server configured: yes/no (see talk admin settings: /index.php/settings/admin/talk#turn_server) No Custom STUN server configured: yes/no (see talk admin settings: /index.php/settings/admin/talk#stun_server) No

The setup is farily standard: social login with google.

1 of the accounts will not subscribe to notifications.

I have tried:

image

What would be my next steps?

Ivansss commented 7 months ago

Hi @kderholt

Could you please share the error message you see when you run php ./occ notification:test-push --talk?

Are there any differences between that particular account and the others (e.g. special characters in userId)?

Could you also please check the logs of the Nextcloud Talk iOS app? You can find the logs in the Files app (the native iOS app, not the Nextcloud app) -> On my iPhone -> Nextcloud Talk. Do you see something like: Error while subscribing to Push Notification server or Error while subscribing to NC server

kderholt commented 7 months ago

Hello

The nextcloud log shows this:

2024-01-21 11:21:26.8980 (com.apple.main-thread): Subscribed to NC server successfully.
2024-01-21 11:21:26.9480 (com.apple.main-thread): Error while subscribing to Push Notification server.

If I try to run the notificaitons talk test:

su -s /bin/bash -c 'php ./occ notification:test-push --talk xxx

Signed encrypted push subject
Deleting device because it is unknown by the push server: XXXXXX==
Push notification sent, but 1 failed

I have 2 nextcloud running paralell. on the other one the only change is that i use mariadb while on the one not working i run postgres. (the usersid is equal on both servers (I use social login on both with google))

SystemKeeper commented 7 months ago

@kderholt Version 18.0.2 should be available shortly in the App Store. Can you please try again with that version and share the log entries? They should include details about the error.

kderholtvisma commented 6 months ago

@kderholt Version 18.0.2 should be available shortly in the App Store. Can you please try again with that version and share the log entries? They should include details about the error.

Just downloaded and tested. This is the message from the logs

2024-01-28 11:39:03.9620 (com.apple.main-thread): Error while subscribing to Push Notification server. 
Error: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo={NSLocalizedDescription=Request failed: bad request (400), 
NSErrorFailingURLKey=https://push-notifications.nextcloud.com/devices, com.alamofire.serialization.response.error.data={length = 1, bytes = 0x0a}, com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x283c8cf80> { URL: https://push-notifications.nextcloud.com/devices } { Status Code: 400, Headers {
    Connection =     (
        "keep-alive"
    );
    "Content-Length" =     (
        1
    );
    "Content-Type" =     (
        "text/plain; charset=utf-8"
    );
    Date =     (
        "Sun, 28 Jan 2024 10:39:03 GMT"
    );
    Server =     (
        nginx
    );
    "X-Content-Type-Options" =     (
        nosniff
    );
} }} 
SystemKeeper commented 6 months ago

Just checking, that one account that has this issue, does it work when logging in on a different device? Or the other way round, do other accounts fail on this particular device?

kderholtvisma commented 6 months ago

Just checking, that one account that has this issue, does it work when logging in on a different device? Or the other way round, do other accounts fail on this particular device?

I've tried this on iphone 13 mini and iPhone 15 pro

The account is added by using the social login. (Username is google-xxxxxxxx)

I have a paralell instance with the same social login where this is working flawless (same Google login)

The only difference is that I use mariadb on the working one and postgresql on the non working. But other Google users works on both setups. This is also with the same phones (iPhone 15 pro and iPhone 13 mini)

kderholt commented 6 months ago

Any update?

SystemKeeper commented 6 months ago

We have just release 18.0.3 Build3 to TestFlight which adds some more debug logging for the situation you're seeing. At this point we are a bit unsure on what's really happening with that account. Please install the TestFlight build (https://testflight.apple.com/join/cxzyr1eO) and reproduce the problem. Then send us the debug log. You can find my email address at the top of this file: https://github.com/nextcloud/talk-ios/blob/master/NextcloudTalk/AvatarButton.swift

kderholt commented 6 months ago

We have just release 18.0.3 Build3 to TestFlight which adds some more debug logging for the situation you're seeing. At this point we are a bit unsure on what's really happening with that account.

Please install the TestFlight build (https://testflight.apple.com/join/cxzyr1eO) and reproduce the problem. Then send us the debug log. You can find my email address at the top of this file: https://github.com/nextcloud/talk-ios/blob/master/NextcloudTalk/AvatarButton.swift

Thank you!

New logs sent

SystemKeeper commented 4 months ago

This was due to a mismatch in the stored private and public key for that user. It can be checked via occ user:keys:verify. Closing this here now as it is not an issue of talk-iOS.