[GH-ISSUE #1427] Web push on iOS PWA with self hosted ntfy doesn't work #1004

Closed
opened 2026-05-07 00:29:29 +02:00 by BreizhHardware · 2 comments

Originally created by @alcroito on GitHub (Aug 19, 2025).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1427

🐞 Describe the bug
I've set up a self hosted ntfy server, installed via docker on a linux host running ubuntu 24.04.
It is running behind a traefik server, with valid lets encrypt certificates on https.

I'd like to have PWA web push (rather than ios push notifications) working on iOS + iPhone via stock Safari.
Unfortunately it doesn't seem to work.

Repro:
I generated keys with docker exec -it ntfy ntfy webpush keys and added them to my docker compose.

I've opened the ntfy https website in Safari, pressed Share -> Pressed Add to homepage to add a PWA icon.
I opened the PWA icon, logged in, force-closed it, opened it again.
I've subscribed to my topic, and then send a test notification from my desktop machine browser.
No web push notification arrives. The server logs show one warning:

WARN Unable to publish web push message (error=illegal base64 data at input byte 0, message_body_size=145, message_event=message, message_id=2O7J81Ucq6iE, message_sender=x.x.x.x, message_time=1755562314, message_user=<u>, tag=webpush, topic=uptime, user_id=<id>, user_name=user, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<ip>, visitor_ip=<ip>, visitor_messages=8, visitor_messages_limit=17280, visitor_messages_remaining=17272, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=56.24316503759999, visitor_seen=2025-08-19T02:11:54.172+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_nRSPev, web_push_subscription_user_id=<id>)

Follow up messages don't trigger any more warnings, until i reboot the docker container.

I get the same behavior if I add a PWA with Safari on a mac machine.

As an aside, I will point out that I set up ios push notifications via app, and that works fine. Only Web push seems to be problematic.

💻 Components impacted

ntfy 2.14.0 (eac523d), runtime go1.24.5, built at 2025-08-05T08:26:20Z
iOS 18.6.1
iOS app 1.3 (4), but shouldn't be relevant

💡 Screenshots and/or logs

Here are the trace logs from the server when sending the message:

ntfy  | {"topic":"uptime","message":"somecontent"}, tag=http, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=2, visitor_messages_limit=17280, visitor_messages_remaining=17278, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 TRACE Received message (http_method=PUT, http_path=/, message_body={
ntfy  |   "id": "LEvaEB0oSk0H",
ntfy  |   "time": 1755563640,
ntfy  |   "expires": 1755606840,
ntfy  |   "event": "message",
ntfy  |   "topic": "uptime",
ntfy  |   "message": "somecontent"
ntfy  | }, message_body_size=11, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_unifiedpush=false, message_user=<myuserid>, tag=publish, topic=uptime, topic_last_access=2025-08-19T02:33:52.802+02:00, topic_subscribers=1, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000098828, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=publish, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000214598, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 DEBUG Forwarding to 1 subscriber(s) (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=publish, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000244178, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 DEBUG Publishing poll request to https://ntfy.sh/30535f660aa3ec416425be6b92edd2accaa68254cca1decb781834453beee93a (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000316696, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 DEBUG Publishing web push message to 1 subscribers (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000746784, visitor_seen=2025-08-19T02:34:00.324+02:00)
ntfy  | 2025/08/19 02:34:00 DEBUG Sending web push message (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000837842, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J)
ntfy  | 2025/08/19 02:34:00 DEBUG Unable to publish web push message, removing endpoint (error=illegal base64 data at input byte 0, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.000131088, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J)
ntfy  | 2025/08/19 02:34:00 WARN Unable to publish web push message (error=illegal base64 data at input byte 0, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.00040777, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J)
ntfy  | 2025/08/19 02:34:00 DEBUG Wrote 1 message(s) in 2.113401ms (tag=message_cache)
ntfy  | 2025/08/19 02:34:00 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=2, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0004552362, visitor_seen=2025-08-19T02:34:00.324+02:00)

🔮 Additional context

My docker compose:

services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    command:
      - serve
    user: "1000:1000"
    volumes:
      - ./ntfy/cache/:/var/cache/ntfy
      - ./ntfy/lib/:/var/lib/ntfy
      - ./ntfy/etc/:/etc/ntfy
    environment:
      - TZ=Europe/Berlin
      - NTFY_BASE_URL=https://ntfy.my.domain.com
      - NTFY_CACHE_FILE=/var/lib/ntfy/cache.db
      - NTFY_AUTH_FILE=/var/lib/ntfy/auth.db
      - NTFY_AUTH_DEFAULT_ACCESS=deny-all
      - NTFY_BEHIND_PROXY=true
      - NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments
      - NTFY_ENABLE_LOGIN=true
      - NTFY_UPSTREAM_BASE_URL=https://ntfy.sh
      - NTFY_WEB_PUSH_FILE=/var/lib/ntfy/webpush.db
      - NTFY_WEB_PUSH_EMAIL_ADDRESS=<myemail>
      - NTFY_WEB_PUSH_PUBLIC_KEY=${PUBLIC_KEY}
      - NTFY_WEB_PUSH_PRIVATE_KEY={PRIVATE_KEY}
      - NTFY_AUTH_USERS=${USERS}
      - NTFY_AUTH_ACCESS=${ACCESS}
      #- NTFY_LOG_LEVEL=trace
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.ntfy-secure.rule=Host(`ntfy.my.domain.com`)"
      - "traefik.http.routers.ntfy-secure.entrypoints=https"
      - "traefik.http.services.ntfy.loadbalancer.server.port=80"
    healthcheck:
      test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
      interval: 60s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - traefik_public
networks:
  traefik_public:
    external: true
$cat .env
USERS='<my-users>'
ACCESS='uptime:uptime:rw'
PUBLIC_KEY=<long-public-key>
PRIVATE_KEY=<shorter-private-key>
Originally created by @alcroito on GitHub (Aug 19, 2025). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1427 :lady_beetle: **Describe the bug** I've set up a self hosted ntfy server, installed via docker on a linux host running ubuntu 24.04. It is running behind a traefik server, with valid lets encrypt certificates on https. I'd like to have PWA web push (rather than ios push notifications) working on iOS + iPhone via stock Safari. Unfortunately it doesn't seem to work. Repro: I generated keys with `docker exec -it ntfy ntfy webpush keys` and added them to my docker compose. I've opened the ntfy https website in Safari, pressed Share -> Pressed Add to homepage to add a PWA icon. I opened the PWA icon, logged in, force-closed it, opened it again. I've subscribed to my topic, and then send a test notification from my desktop machine browser. No web push notification arrives. The server logs show one warning: ``` WARN Unable to publish web push message (error=illegal base64 data at input byte 0, message_body_size=145, message_event=message, message_id=2O7J81Ucq6iE, message_sender=x.x.x.x, message_time=1755562314, message_user=<u>, tag=webpush, topic=uptime, user_id=<id>, user_name=user, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<ip>, visitor_ip=<ip>, visitor_messages=8, visitor_messages_limit=17280, visitor_messages_remaining=17272, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=56.24316503759999, visitor_seen=2025-08-19T02:11:54.172+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_nRSPev, web_push_subscription_user_id=<id>) ``` Follow up messages don't trigger any more warnings, until i reboot the docker container. I get the same behavior if I add a PWA with Safari on a mac machine. As an aside, I will point out that I set up ios push notifications via app, and that works fine. Only Web push seems to be problematic. :computer: **Components impacted** ntfy 2.14.0 (eac523d), runtime go1.24.5, built at 2025-08-05T08:26:20Z iOS 18.6.1 iOS app 1.3 (4), but shouldn't be relevant :bulb: **Screenshots and/or logs** Here are the trace logs from the server when sending the message: ``` ntfy | {"topic":"uptime","message":"somecontent"}, tag=http, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=2, visitor_messages_limit=17280, visitor_messages_remaining=17278, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=60, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 TRACE Received message (http_method=PUT, http_path=/, message_body={ ntfy | "id": "LEvaEB0oSk0H", ntfy | "time": 1755563640, ntfy | "expires": 1755606840, ntfy | "event": "message", ntfy | "topic": "uptime", ntfy | "message": "somecontent" ntfy | }, message_body_size=11, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_unifiedpush=false, message_user=<myuserid>, tag=publish, topic=uptime, topic_last_access=2025-08-19T02:33:52.802+02:00, topic_subscribers=1, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000098828, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=publish, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000214598, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 DEBUG Forwarding to 1 subscriber(s) (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=publish, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000244178, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 DEBUG Publishing poll request to https://ntfy.sh/30535f660aa3ec416425be6b92edd2accaa68254cca1decb781834453beee93a (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000316696, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 DEBUG Publishing web push message to 1 subscribers (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000746784, visitor_seen=2025-08-19T02:34:00.324+02:00) ntfy | 2025/08/19 02:34:00 DEBUG Sending web push message (message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0000837842, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J) ntfy | 2025/08/19 02:34:00 DEBUG Unable to publish web push message, removing endpoint (error=illegal base64 data at input byte 0, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.000131088, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J) ntfy | 2025/08/19 02:34:00 WARN Unable to publish web push message (error=illegal base64 data at input byte 0, message_body_size=11, message_event=message, message_id=LEvaEB0oSk0H, message_sender=<myip>, message_time=1755563640, message_user=<myuserid>, tag=webpush, topic=uptime, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.00040777, visitor_seen=2025-08-19T02:34:00.324+02:00, web_push_subscription_endpoint=https://web.push.apple.com/QDcLBsm8T_NMQSP0oKFWUizcAbaY98ZiX8W0KSj4z6yFYMq_LtWxV7GD74gJQmQhrf8JM7YuLdLjZdpEFWjbkGkNjnumzPJgi7WY8Zhrex5RoueiANQJIieICu_USQQ12bTOWqtvtXktDOYxPIJlUvjt72sVlM-cPhSJ2XKFUO8, web_push_subscription_id=wps_ktVp6H, web_push_subscription_user_id=u_EzG5TIcK9J) ntfy | 2025/08/19 02:34:00 DEBUG Wrote 1 message(s) in 2.113401ms (tag=message_cache) ntfy | 2025/08/19 02:34:00 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=2, user_id=<myuserid>, user_name=pie, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<myip>, visitor_ip=<myip>, visitor_messages=3, visitor_messages_limit=17280, visitor_messages_remaining=17277, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=59.0004552362, visitor_seen=2025-08-19T02:34:00.324+02:00) ``` :crystal_ball: **Additional context** My docker compose: ``` services: ntfy: image: binwiederhier/ntfy container_name: ntfy command: - serve user: "1000:1000" volumes: - ./ntfy/cache/:/var/cache/ntfy - ./ntfy/lib/:/var/lib/ntfy - ./ntfy/etc/:/etc/ntfy environment: - TZ=Europe/Berlin - NTFY_BASE_URL=https://ntfy.my.domain.com - NTFY_CACHE_FILE=/var/lib/ntfy/cache.db - NTFY_AUTH_FILE=/var/lib/ntfy/auth.db - NTFY_AUTH_DEFAULT_ACCESS=deny-all - NTFY_BEHIND_PROXY=true - NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments - NTFY_ENABLE_LOGIN=true - NTFY_UPSTREAM_BASE_URL=https://ntfy.sh - NTFY_WEB_PUSH_FILE=/var/lib/ntfy/webpush.db - NTFY_WEB_PUSH_EMAIL_ADDRESS=<myemail> - NTFY_WEB_PUSH_PUBLIC_KEY=${PUBLIC_KEY} - NTFY_WEB_PUSH_PRIVATE_KEY={PRIVATE_KEY} - NTFY_AUTH_USERS=${USERS} - NTFY_AUTH_ACCESS=${ACCESS} #- NTFY_LOG_LEVEL=trace restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.ntfy-secure.rule=Host(`ntfy.my.domain.com`)" - "traefik.http.routers.ntfy-secure.entrypoints=https" - "traefik.http.services.ntfy.loadbalancer.server.port=80" healthcheck: test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"] interval: 60s timeout: 10s retries: 3 start_period: 40s networks: - traefik_public networks: traefik_public: external: true ``` ``` $cat .env USERS='<my-users>' ACCESS='uptime:uptime:rw' PUBLIC_KEY=<long-public-key> PRIVATE_KEY=<shorter-private-key> ```
BreizhHardware 2026-05-07 00:29:29 +02:00
  • closed this issue
  • added the
    🪲 bug
    label
Author
Owner

@wunter8 commented on GitHub (Aug 19, 2025):

Your private key env variable in your compose file is missing a $

<!-- gh-comment-id:3198951466 --> @wunter8 commented on GitHub (Aug 19, 2025): Your private key env variable in your compose file is missing a `$`
Author
Owner

@alcroito commented on GitHub (Aug 19, 2025):

How embarrassing. That indeed fixes it for iOS + Safari.
Sorry for the noise.

I notice a new warning / error, presumably from my tests with Chrome PWA on a mac, but that might be related to me deleting the PWA after unsuccessful testing.

2025/08/19 04:14:25 WARN Unable to publish web push message (error=internal server error: unable to publish web push message, error_code=50004, http_status=500, message_body_size=4, message_event=message, message_id=12kLuHvF45j5, message_sender=<ip>, message_time=1755569665, message_user=<userid>, tag=webpush, topic=uptime, user_id=<userid>, user_name=<user>, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<ip>, visitor_ip=<ip>, visitor_messages=1, visitor_messages_limit=17280, visitor_messages_remaining=17279, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=54.91195367999999, visitor_seen=2025-08-19T04:14:25.838+02:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/cq58VuvQ58k:APA91bFxQTM937GIQZ0eTJY8GN0CKOcxKrk1kZSlobkB18HK3y5zk84xDr58iLUVV8Iv5ig0shf8Au2IA8uHZUMmY_8H42hOKH283deU0Z7PkemJ4Grwb0SS0rEnLPBQ-feTrS8JXeM4, web_push_subscription_id=wps_lzZrHX, web_push_subscription_user_id=<userid>)
<!-- gh-comment-id:3198990137 --> @alcroito commented on GitHub (Aug 19, 2025): How embarrassing. That indeed fixes it for iOS + Safari. Sorry for the noise. I notice a new warning / error, presumably from my tests with Chrome PWA on a mac, but that might be related to me deleting the PWA after unsuccessful testing. ``` 2025/08/19 04:14:25 WARN Unable to publish web push message (error=internal server error: unable to publish web push message, error_code=50004, http_status=500, message_body_size=4, message_event=message, message_id=12kLuHvF45j5, message_sender=<ip>, message_time=1755569665, message_user=<userid>, tag=webpush, topic=uptime, user_id=<userid>, user_name=<user>, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_id=ip:<ip>, visitor_ip=<ip>, visitor_messages=1, visitor_messages_limit=17280, visitor_messages_remaining=17279, visitor_request_limiter_limit=0.2, visitor_request_limiter_tokens=54.91195367999999, visitor_seen=2025-08-19T04:14:25.838+02:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/cq58VuvQ58k:APA91bFxQTM937GIQZ0eTJY8GN0CKOcxKrk1kZSlobkB18HK3y5zk84xDr58iLUVV8Iv5ig0shf8Au2IA8uHZUMmY_8H42hOKH283deU0Z7PkemJ4Grwb0SS0rEnLPBQ-feTrS8JXeM4, web_push_subscription_id=wps_lzZrHX, web_push_subscription_user_id=<userid>) ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#1004
No description provided.