]> littlesong.place Git - littlesongplace.git/commitdiff
Only delete notification subs for HTTP 410
authorChris Fulljames <christianfulljames@gmail.com>
Sat, 2 Aug 2025 21:26:53 +0000 (17:26 -0400)
committerChris Fulljames <christianfulljames@gmail.com>
Sat, 23 Aug 2025 11:30:17 +0000 (07:30 -0400)
src/littlesongplace/push_notifications.py

index dd4aa735230208038b28680392d2bd46a20f5ca4..53cf1346b46a3b56ba29d370b6330fbd7c754a3b 100644 (file)
@@ -199,9 +199,12 @@ def _do_push(app, userids, title, body, url, setting):
                     sent_notifications += 1
                 except pywebpush.WebPushException as ex:
                     # Failed to send notification, delete this subscription
-                    app.logger.warning(f"Deleting dead push subscription: {subid} - {ex}")
-                    db.query("DELETE FROM users_push_subscriptions WHERE subid = ?", [subid])
-                    db.commit()
+                    if (ex.response is not None) and (ex.response.status_code == 410):
+                        app.logger.warning(f"Deleting dead push subscription: {subid} - {ex}")
+                        db.query("DELETE FROM users_push_subscriptions WHERE subid = ?", [subid])
+                        db.commit()
+                    else:
+                        app.logger.warning(f"Failed to send push subscription: {subid} - {ex}")
 
         if sent_notifications > 0:
             app.logger.info(f"Pushed {sent_notifications} notifications")