[GH-ISSUE #1081] ntfy sub --from-config won't receive messages until self-hosted ntfy server (Docker) is restarted or stopped #759

Closed
opened 2026-05-07 00:27:14 +02:00 by BreizhHardware · 7 comments

Originally created by @afunworm on GitHub (Apr 2, 2024).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1081

This is the discovery I made follow some attempts for #1076.

🐞 Describe the bug

Demonstration videos below
Let's call Server the machine hosting the ntfy server through Docker.
Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI.
Let's call the topic clitest.

On machine A, run ntfy sub --from-config.
Using any method, publish a message to clitest. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen until the Docker container on Server is stopped.

This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server.

💻 Components impacted

ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine.

💡 Screenshots and/or logs
Testing with self-hosted server: https://streamable.com/7fx5f2
Testing with ntfy.sh: https://streamable.com/7s4oy7

Originally created by @afunworm on GitHub (Apr 2, 2024). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1081 This is the discovery I made follow some attempts for #1076. :lady_beetle: **Describe the bug** <!-- A clear and concise description of the problem. --> **Demonstration videos below** Let's call Server the machine hosting the ntfy server through Docker. Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI. Let's call the topic `clitest`. On machine A, run `ntfy sub --from-config`. Using any method, publish a message to `clitest`. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen *until* the Docker container on Server is stopped. This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server. :computer: **Components impacted** <!-- ntfy server, Android app, iOS app, web app --> ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine. :bulb: **Screenshots and/or logs** Testing with self-hosted server: https://streamable.com/7fx5f2 Testing with ntfy.sh: https://streamable.com/7s4oy7
BreizhHardware 2026-05-07 00:27:14 +02:00
  • closed this issue
  • added the
    🪲 bug
    label
Author
Owner

@afunworm commented on GitHub (Apr 2, 2024):

This is the discovery I made follow some attempts for #1076.

🐞 Describe the bug

Demonstration videos below Let's call Server the machine hosting the ntfy server through Docker. Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI. Let's call the topic clitest.

On machine A, run ntfy sub --from-config. Using any method, publish a message to clitest. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen until the Docker container on Server is stopped.

This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server.

💻 Components impacted

ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine.

💡 Screenshots and/or logs Testing with self-hosted server: https://streamable.com/7fx5f2 Testing with ntfy.sh: https://streamable.com/7s4oy7

I did some more digging and it seems like it has to do with the server. I wrote a small script to subscribe to SSE from a topic from a self-hosted server, it wouldn't work. When I switched back to ntfy.sh, it works. Here's the script.

const EventSource = require("eventsource");

const evtSource = new EventSource(
        /* This self-hosted server won't work */
	"https://ntfy.byh.uy/clitest/sse?auth=<auth_token_goes_here>"

        /* But the official server will work flawlessly */
	// "https://ntfy.sh/clitest/sse?auth=<auth_token_goes_here>"
);

evtSource.onmessage = function (e) {
	let data = JSON.parse(e.data);
	console.log(data);
};

Funny enough, just like the original post, as soon as I did the docker compose stop, the messages got sent to the EventSource.

Here is the debug log, the first line shows as soon as I run the subscription script:

ntfy  | 2024/04/02 11:12:07 DEBUG HTTP request started (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:07.599-07:00)
ntfy  | 2024/04/02 11:12:07 DEBUG HTTP stream connection opened (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000020449, visitor_seen=2024-04-02T11:12:07.599-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=PUT, http_path=/, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Received message (http_method=PUT, http_path=/, message_body_size=13, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_unifiedpush=false, message_user=u_BXra1tErVW, tag=publish, topic=clitest, topic_last_access=2024-04-02T11:12:07.599-07:00, topic_subscribers=1, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000019113, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000037809, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Forwarding to 1 subscriber(s) (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.00010935, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Publishing web push message to 1 subscribers (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000296146, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Sending web push message (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000362709, visitor_seen=2024-04-02T11:12:12.421-07:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/fq53wfR-2CE:APA91bGOOgJKdb0aEg9ZtO6BXXk-371jA4TmLjuiMdmldmkY23ml7L0xp5lemV92cULTsXEXU1BiSx6BP3Oaq4H9gJBk0PryrhycrEsaL7tpiUA_DiQRI0YeqNIrdNWYdp8mMaiz3xR1, web_push_subscription_id=wps_Ux7fNG, web_push_subscription_user_id=u_BXra1tErVW)
ntfy  | 2024/04/02 11:12:12 DEBUG Wrote 1 message(s) in 13.992575ms (tag=message_cache)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=14, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.014059064, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193573368, visitor_seen=2024-04-02T11:12:12.615-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193708699, visitor_seen=2024-04-02T11:12:12.615-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/ntfy.png, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196051307, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196994071, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/ntfy.png, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197114801, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197160906, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:23 DEBUG HTTP stream connection closed (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:23 DEBUG HTTP request finished (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, time_taken_ms=15869, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00)

With that said, it seems like the stream isn't working properly. Is there anything I can do to diagnose this?

<!-- gh-comment-id:2032716163 --> @afunworm commented on GitHub (Apr 2, 2024): > This is the discovery I made follow some attempts for #1076. > > 🐞 **Describe the bug** > > **Demonstration videos below** Let's call Server the machine hosting the ntfy server through Docker. Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI. Let's call the topic `clitest`. > > On machine A, run `ntfy sub --from-config`. Using any method, publish a message to `clitest`. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen _until_ the Docker container on Server is stopped. > > This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server. > > 💻 **Components impacted** > > ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine. > > 💡 **Screenshots and/or logs** Testing with self-hosted server: https://streamable.com/7fx5f2 Testing with ntfy.sh: https://streamable.com/7s4oy7 I did some more digging and it seems like it has to do with the server. I wrote a small script to subscribe to SSE from a topic from a self-hosted server, it wouldn't work. When I switched back to ntfy.sh, it works. Here's the script. ```js const EventSource = require("eventsource"); const evtSource = new EventSource( /* This self-hosted server won't work */ "https://ntfy.byh.uy/clitest/sse?auth=<auth_token_goes_here>" /* But the official server will work flawlessly */ // "https://ntfy.sh/clitest/sse?auth=<auth_token_goes_here>" ); evtSource.onmessage = function (e) { let data = JSON.parse(e.data); console.log(data); }; ``` Funny enough, just like the original post, as soon as I did the `docker compose stop`, the messages got sent to the EventSource. Here is the debug log, the first line shows as soon as I run the subscription script: ``` ntfy | 2024/04/02 11:12:07 DEBUG HTTP request started (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:07.599-07:00) ntfy | 2024/04/02 11:12:07 DEBUG HTTP stream connection opened (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000020449, visitor_seen=2024-04-02T11:12:07.599-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=PUT, http_path=/, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG Received message (http_method=PUT, http_path=/, message_body_size=13, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_unifiedpush=false, message_user=u_BXra1tErVW, tag=publish, topic=clitest, topic_last_access=2024-04-02T11:12:07.599-07:00, topic_subscribers=1, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000019113, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000037809, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG Forwarding to 1 subscriber(s) (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.00010935, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG Publishing web push message to 1 subscribers (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000296146, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG Sending web push message (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000362709, visitor_seen=2024-04-02T11:12:12.421-07:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/fq53wfR-2CE:APA91bGOOgJKdb0aEg9ZtO6BXXk-371jA4TmLjuiMdmldmkY23ml7L0xp5lemV92cULTsXEXU1BiSx6BP3Oaq4H9gJBk0PryrhycrEsaL7tpiUA_DiQRI0YeqNIrdNWYdp8mMaiz3xR1, web_push_subscription_id=wps_Ux7fNG, web_push_subscription_user_id=u_BXra1tErVW) ntfy | 2024/04/02 11:12:12 DEBUG Wrote 1 message(s) in 13.992575ms (tag=message_cache) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=14, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.014059064, visitor_seen=2024-04-02T11:12:12.421-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193573368, visitor_seen=2024-04-02T11:12:12.615-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193708699, visitor_seen=2024-04-02T11:12:12.615-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/ntfy.png, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196051307, visitor_seen=2024-04-02T11:12:12.618-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196994071, visitor_seen=2024-04-02T11:12:12.618-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/ntfy.png, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197114801, visitor_seen=2024-04-02T11:12:12.618-07:00) ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197160906, visitor_seen=2024-04-02T11:12:12.618-07:00) ntfy | 2024/04/02 11:12:23 DEBUG HTTP stream connection closed (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00) ntfy | 2024/04/02 11:12:23 DEBUG HTTP request finished (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, time_taken_ms=15869, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00) ``` With that said, it seems like the stream isn't working properly. Is there anything I can do to diagnose this?
Author
Owner

@afunworm commented on GitHub (Apr 2, 2024):

This is the discovery I made follow some attempts for #1076.
🐞 Describe the bug
Demonstration videos below Let's call Server the machine hosting the ntfy server through Docker. Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI. Let's call the topic clitest.
On machine A, run ntfy sub --from-config. Using any method, publish a message to clitest. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen until the Docker container on Server is stopped.
This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server.
💻 Components impacted
ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine.
💡 Screenshots and/or logs Testing with self-hosted server: https://streamable.com/7fx5f2 Testing with ntfy.sh: https://streamable.com/7s4oy7

I did some more digging and it seems like it has to do with the server. I wrote a small script to subscribe to SSE from a topic from a self-hosted server, it wouldn't work. When I switched back to ntfy.sh, it works. Here's the script.

const EventSource = require("eventsource");

const evtSource = new EventSource(
        /* This self-hosted server won't work */
	"https://ntfy.byh.uy/clitest/sse?auth=<auth_token_goes_here>"

        /* But the official server will work flawlessly */
	// "https://ntfy.sh/clitest/sse?auth=<auth_token_goes_here>"
);

evtSource.onmessage = function (e) {
	let data = JSON.parse(e.data);
	console.log(data);
};

Funny enough, just like the original post, as soon as I did the docker compose stop, the messages got sent to the EventSource.

Here is the debug log, the first line shows as soon as I run the subscription script:

ntfy  | 2024/04/02 11:12:07 DEBUG HTTP request started (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:07.599-07:00)
ntfy  | 2024/04/02 11:12:07 DEBUG HTTP stream connection opened (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000020449, visitor_seen=2024-04-02T11:12:07.599-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=PUT, http_path=/, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Received message (http_method=PUT, http_path=/, message_body_size=13, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_unifiedpush=false, message_user=u_BXra1tErVW, tag=publish, topic=clitest, topic_last_access=2024-04-02T11:12:07.599-07:00, topic_subscribers=1, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000019113, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000037809, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Forwarding to 1 subscriber(s) (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.00010935, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Publishing web push message to 1 subscribers (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000296146, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG Sending web push message (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000362709, visitor_seen=2024-04-02T11:12:12.421-07:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/fq53wfR-2CE:APA91bGOOgJKdb0aEg9ZtO6BXXk-371jA4TmLjuiMdmldmkY23ml7L0xp5lemV92cULTsXEXU1BiSx6BP3Oaq4H9gJBk0PryrhycrEsaL7tpiUA_DiQRI0YeqNIrdNWYdp8mMaiz3xR1, web_push_subscription_id=wps_Ux7fNG, web_push_subscription_user_id=u_BXra1tErVW)
ntfy  | 2024/04/02 11:12:12 DEBUG Wrote 1 message(s) in 13.992575ms (tag=message_cache)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=14, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.014059064, visitor_seen=2024-04-02T11:12:12.421-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193573368, visitor_seen=2024-04-02T11:12:12.615-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193708699, visitor_seen=2024-04-02T11:12:12.615-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/ntfy.png, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196051307, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196994071, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/ntfy.png, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197114801, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197160906, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:23 DEBUG HTTP stream connection closed (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00)
ntfy  | 2024/04/02 11:12:23 DEBUG HTTP request finished (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, time_taken_ms=15869, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00)

With that said, it seems like the stream isn't working properly. Is there anything I can do to diagnose this?

I finally made it work, by doing 2 things. However, I still don't know why these settings affect the streaming. For anyone who runs into the same problem in the future:

  1. Disable HTTPS redirect. I am using Nginx Proxy Manager, so I disabled it there.
  2. When subscribe to the topic, either by setting default-host or by writing your own script, use http instead of https.

This means it could be something wrong with the SSL settings on the server. However, all my other apps run perfectly, so I can't exactly narrow down what's wrong with the setup.

In the end, NTFY is still such an amazing piece of software. I'll be supporting it for a long time.

<!-- gh-comment-id:2032754588 --> @afunworm commented on GitHub (Apr 2, 2024): > > This is the discovery I made follow some attempts for #1076. > > 🐞 **Describe the bug** > > **Demonstration videos below** Let's call Server the machine hosting the ntfy server through Docker. Let's call Client the machine hosting ntfy through Docker, but is only used for the docker CLI. Let's call the topic `clitest`. > > On machine A, run `ntfy sub --from-config`. Using any method, publish a message to `clitest`. Supposedly, Client should output the receipt of the message sent to Server. However, this doesn't happen _until_ the Docker container on Server is stopped. > > This won't happen when using to the official https://ntfy.sh server instead of the self-hosted ntfy server. > > 💻 **Components impacted** > > ntfy CLI or ntfy Server. Both run on Ubuntu 22.04, through Docker Engine. > > 💡 **Screenshots and/or logs** Testing with self-hosted server: https://streamable.com/7fx5f2 Testing with ntfy.sh: https://streamable.com/7s4oy7 > > I did some more digging and it seems like it has to do with the server. I wrote a small script to subscribe to SSE from a topic from a self-hosted server, it wouldn't work. When I switched back to ntfy.sh, it works. Here's the script. > > ```js > const EventSource = require("eventsource"); > > const evtSource = new EventSource( > /* This self-hosted server won't work */ > "https://ntfy.byh.uy/clitest/sse?auth=<auth_token_goes_here>" > > /* But the official server will work flawlessly */ > // "https://ntfy.sh/clitest/sse?auth=<auth_token_goes_here>" > ); > > evtSource.onmessage = function (e) { > let data = JSON.parse(e.data); > console.log(data); > }; > ``` > > Funny enough, just like the original post, as soon as I did the `docker compose stop`, the messages got sent to the EventSource. > > Here is the debug log, the first line shows as soon as I run the subscription script: > > ``` > ntfy | 2024/04/02 11:12:07 DEBUG HTTP request started (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:07.599-07:00) > ntfy | 2024/04/02 11:12:07 DEBUG HTTP stream connection opened (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000020449, visitor_seen=2024-04-02T11:12:07.599-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=PUT, http_path=/, tag=http, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=0, visitor_messages_limit=86400, visitor_messages_remaining=86400, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG Received message (http_method=PUT, http_path=/, message_body_size=13, message_call=, message_delayed=false, message_email=, message_event=message, message_firebase=true, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_unifiedpush=false, message_user=u_BXra1tErVW, tag=publish, topic=clitest, topic_last_access=2024-04-02T11:12:07.599-07:00, topic_subscribers=1, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000019113, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG Adding message to cache (http_method=PUT, http_path=/, message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000037809, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG Forwarding to 1 subscriber(s) (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=publish, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.00010935, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG Publishing web push message to 1 subscribers (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000296146, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG Sending web push message (message_body_size=13, message_event=message, message_id=4YbBLHy1ixaH, message_sender=172.24.0.1, message_time=1712081532, message_user=u_BXra1tErVW, tag=webpush, topic=clitest, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.000362709, visitor_seen=2024-04-02T11:12:12.421-07:00, web_push_subscription_endpoint=https://fcm.googleapis.com/fcm/send/fq53wfR-2CE:APA91bGOOgJKdb0aEg9ZtO6BXXk-371jA4TmLjuiMdmldmkY23ml7L0xp5lemV92cULTsXEXU1BiSx6BP3Oaq4H9gJBk0PryrhycrEsaL7tpiUA_DiQRI0YeqNIrdNWYdp8mMaiz3xR1, web_push_subscription_id=wps_Ux7fNG, web_push_subscription_user_id=u_BXra1tErVW) > ntfy | 2024/04/02 11:12:12 DEBUG Wrote 1 message(s) in 13.992575ms (tag=message_cache) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=PUT, http_path=/, tag=http, time_taken_ms=14, user_id=u_BXra1tErVW, user_name=afunworm, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.014059064, visitor_seen=2024-04-02T11:12:12.421-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193573368, visitor_seen=2024-04-02T11:12:12.615-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/media/ding-fa473cef.mp3, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.193708699, visitor_seen=2024-04-02T11:12:12.615-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/ntfy.png, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196051307, visitor_seen=2024-04-02T11:12:12.618-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request started (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.196994071, visitor_seen=2024-04-02T11:12:12.618-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/ntfy.png, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197114801, visitor_seen=2024-04-02T11:12:12.618-07:00) > ntfy | 2024/04/02 11:12:12 DEBUG HTTP request finished (http_method=GET, http_path=/static/images/mask-icon.svg, tag=http, time_taken_ms=0, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=299.197160906, visitor_seen=2024-04-02T11:12:12.618-07:00) > ntfy | 2024/04/02 11:12:23 DEBUG HTTP stream connection closed (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=subscribe, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00) > ntfy | 2024/04/02 11:12:23 DEBUG HTTP request finished (http_method=GET, http_path=/clitest/sse?auth=QmVhcmVyIHRrX3B3eXUybTloYnpwZGhwYnE3NHYxeXQ5bDBvaXA1, tag=http, time_taken_ms=15869, visitor_auth_limiter_limit=0.016666666666666666, visitor_auth_limiter_tokens=30, visitor_emails=0, visitor_emails_limit=288, visitor_emails_remaining=288, visitor_id=ip:172.24.0.1, visitor_ip=172.24.0.1, visitor_messages=1, visitor_messages_limit=86400, visitor_messages_remaining=86399, visitor_request_limiter_limit=1, visitor_request_limiter_tokens=300, visitor_seen=2024-04-02T11:12:12.618-07:00) > ``` > > With that said, it seems like the stream isn't working properly. Is there anything I can do to diagnose this? I finally made it work, by doing 2 things. However, I still don't know why these settings affect the streaming. For anyone who runs into the same problem in the future: 1. Disable HTTPS redirect. I am using Nginx Proxy Manager, so I disabled it there. 2. When subscribe to the topic, either by setting `default-host` or by writing your own script, use `http` instead of `https`. This means it could be something wrong with the SSL settings on the server. However, all my other apps run perfectly, so I can't exactly narrow down what's wrong with the setup. In the end, NTFY is still such an amazing piece of software. I'll be supporting it for a long time.
Author
Owner

@wunter8 commented on GitHub (Apr 4, 2024):

I was able to test this tonight. I have one container running ntfy serve, another container running ntfy sub --from-config, and a third container running ntfy pub. Everything worked fine for me (e.g., ntfy sub ran the correct command without me needing to kill the server container first).

So maybe there is a problem with nginx proxy manager? Or like you said, something with SSL/TLS?

<!-- gh-comment-id:2036102701 --> @wunter8 commented on GitHub (Apr 4, 2024): I was able to test this tonight. I have one container running `ntfy serve`, another container running `ntfy sub --from-config`, and a third container running `ntfy pub`. Everything worked fine for me (e.g., ntfy sub ran the correct command without me needing to kill the server container first). So maybe there is a problem with nginx proxy manager? Or like you said, something with SSL/TLS?
Author
Owner

@wunter8 commented on GitHub (Apr 14, 2024):

Did you determine the source of the problem?

<!-- gh-comment-id:2053812368 --> @wunter8 commented on GitHub (Apr 14, 2024): Did you determine the source of the problem?
Author
Owner

@afunworm commented on GitHub (Apr 18, 2024):

Did you determine the source of the problem?

I didn't. I just settled to use http and called it a day. If you are not able to replicate it, it feels like it's more of my responsibility. Nginx Proxy Manager shows no error either.

<!-- gh-comment-id:2065375035 --> @afunworm commented on GitHub (Apr 18, 2024): > Did you determine the source of the problem? I didn't. I just settled to use `http` and called it a day. If you are not able to replicate it, it feels like it's more of my responsibility. Nginx Proxy Manager shows no error either.
Author
Owner

@theatischbein commented on GitHub (Jun 11, 2024):

I had the same problem and find a solution and wanted to share this here if anyone else stumble upon this error!

My ntfy server is behind a nginx reverse proxy and was missing configurations.
I followed https://docs.ntfy.sh/config/#behind-a-proxy-tls-etc and added:

    proxy_http_version 1.1;

    proxy_buffering off;
    proxy_request_buffering off;
    proxy_redirect off;

    proxy_connect_timeout 3m;
    proxy_send_timeout 3m;
    proxy_read_timeout 3m;

    client_max_body_size 0; # Stream request body to backend

Afterwards everything works fine!

<!-- gh-comment-id:2160276855 --> @theatischbein commented on GitHub (Jun 11, 2024): I had the same problem and find a solution and wanted to share this here if anyone else stumble upon this error! My ntfy server is behind a nginx reverse proxy and was missing configurations. I followed https://docs.ntfy.sh/config/#behind-a-proxy-tls-etc and added: ``` proxy_http_version 1.1; proxy_buffering off; proxy_request_buffering off; proxy_redirect off; proxy_connect_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; client_max_body_size 0; # Stream request body to backend ``` Afterwards everything works fine!
Author
Owner

@kosli commented on GitHub (Feb 19, 2025):

thanks @theatischbein you made my day!

@binwiederhier the sample nginx conf more secure is missing the options mentioned above.
https://docs.ntfy.sh/config/#nginxapache2caddy

<!-- gh-comment-id:2667210725 --> @kosli commented on GitHub (Feb 19, 2025): thanks @theatischbein you made my day! @binwiederhier the sample nginx conf **more secure** is missing the options mentioned above. https://docs.ntfy.sh/config/#nginxapache2caddy
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#759
No description provided.