Skip to content

Push notifications not working #22

Description

@chartungpatmos

I can't get push notifications to work.

In Safari, nothing related to push notifications is working. If I toggle the "Enable push notifications on this device" switch, the "Currently notifying x device(s)" count doesn't increment, and when I refresh the page, the toggle is off again. If I click "Send Test Notification", regardless of whether "Enable push notifications on this device" is on or off, nothing happens (no "Cannot send test notification as push notifications are not enabled on this device" warning and no /api/v3/plugins/web-push/test request in the network tab of the dev tools). There's also no "ServiceWorker registration succeeded" message in the console, but there aren't any error messages either.

In Chrome, the service worker registers successfully, and I can enable push notifications, but I can't send/receive them. If I click on "Send Test Notification", I get an error message in the console: Failed to load resource: net::ERR_CONNECTION_CLOSED /api/v3/plugins/web-push/test:1. If I send myself a chat message from another account, I get an in-app notification, but no push notification and no error message.

I'm also seeing this error on the server:

2025-04-09T18:46:53.799Z [4567/124] - error: POST /api/v3/plugins/web-push/test
invalid csrf token

However, that error only appears once, and I've attempted to send several notifications, so I'm guessing it's not the root of the issue.

Activity

  1. julianlam commented on Apr 9, 2025

    @julianlam
    Member

    HTTPS enabled?

  2. chartungpatmos commented on Apr 9, 2025

    @chartungpatmos
    Author

    HTTPS enabled?

    Yes

  3. julianlam commented on Apr 14, 2025

    @julianlam
    Member

    The invalid csrf token error is an odd one. Are you using a production site with an url that is not localhost, for example? I know some browsers don't allow push notification subscriptions from invalid domains.

    What is the url value in your config.json?

  4. chartungpatmos commented on Apr 14, 2025

    @chartungpatmos
    Author

    We are not using localhost for testing push notifications, but we're also not using a production site (we are still in the development process, so there is no production site yet). I can't share the full URL of the site we're using, but it ends in .dev if that's relevent.

  5. julianlam commented on Apr 14, 2025

    @julianlam
    Member

    For what it's worth, localhost does work. It's what I developed the plugin against.

    Can you please test it on community.nodebb.org? See if it works there? That'll rule out your PC as a factor.

    I also know some hardened android versions will not allow browser based push notifs

  6. chartungpatmos commented on Apr 14, 2025

    @chartungpatmos
    Author

    The test notification on community.nodebb.org failed with a similar error: Failed to load resource: the server responded with a status of 504 () test:1
    I'm guessing it's the same error but a different error message because your Cloudflare settings are different from ours.

    Localhost gives me a different error message:

    ServiceWorker registration failed:  SecurityError: Failed to register a ServiceWorker for scope ('https://localhost:4567/') with script ('https://localhost:4567/service-worker.js'): An SSL certificate error occurred when fetching the script.
    

    My work laptop is a Mac. I just tested on my personal (Windows) laptop and my Android, and on those machines notifications are working properly for community.nodebb.org and for our dev site. On iPhone, both Safari and Chrome are having the same issue I had with Safari on Mac.

  7. julianlam commented on Apr 14, 2025

    @julianlam
    Member

    Thanks, so this could be an issue with Apple devices, which is disappointing because Apple support for cloud messaging is literally the reason I made this plugin.

    More likely than not there's something that this plugin is doing wrong that causes registration failures for Apple devices. The downside is I do not own an apple device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions