pentacent / keila

Open Source Newsletter Tool.
https://keila.io
GNU Affero General Public License v3.0
1.33k stars 69 forks source link

How to Restart sending campaign? #165

Closed kadekjayak closed 1 year ago

kadekjayak commented 1 year ago

Hello

So, yesterday I've scheduled a sending campaign, but the sending is stuck at 90%, it's not sending to the remaining 19 contacts.

I've try to restart Keila, but it's still not continue the sending.

my question is: is there a way to send the emails to the remaining 19 contacts? or maybe a command line to force sending the campaign to the recipients?

Thanks.

wmnnd commented 1 year ago

Hey, there is currently no way to re-try sending a campaign. Could you share your logs so I can see what the issue might have been?

kadekjayak commented 1 year ago

Hi,

this is the Keila log, we are running it inside a Docker container,

keila_1 | 16:01:37.518 [warn] Description: 'Authenticity is not established by certificate path validation'
keila_1 | Reason: 'Option {verify, verify_peer} and cacertfile/cacerts is missing'
keila_1 |
keila_1 | 16:01:38.531 [warn] Description: 'Authenticity is not established by certificate path validation'
keila_1 | Reason: 'Option {verify, verify_peer} and cacertfile/cacerts is missing'
keila_1 |
keila_1 | 16:01:41.541 [warn] Description: 'Authenticity is not established by certificate path validation'
keila_1 | Reason: 'Option {verify, verify_peer} and cacertfile/cacerts is missing'
keila_1 |
keila_1 | 16:01:44.929 request_id=Fyy2wbUJEa7urMwAADNB [info] GET /c/https%253A%252F%localhost%252F/mr_RQjagyM9/tl_59ZKJAMm/Ny1nREJxcH
keila_1 | 16:01:44.930 [error] #PID<0.27082.0> running KeilaWeb.Endpoint (connection #PID<0.26898.0>, stream id 3) terminated
keila_1 | Server: localhost:80 (http)
keila_1 | Request: GET /c/https%253A%252F%localhost%252F/mr_RQjagyM9/tl_59ZKJAMm/Ny1nREJxcH
keila_1 | ** (exit) an exception was raised:
keila_1 | ** (Plug.Conn.NotSentError) a response was neither set nor sent from the connection
keila_1 | (phoenix 1.6.2) lib/phoenix/endpoint/cowboy2_handler.ex:69: Phoenix.Endpoint.Cowboy2Handler.maybe_send/2
keila_1 | (phoenix 1.6.2) lib/phoenix/endpoint/cowboy2_handler.ex:44: Phoenix.Endpoint.Cowboy2Handler.init/4
keila_1 | (cowboy 2.9.0) /deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2
keila_1 | (cowboy 2.9.0) /deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3
keila_1 | (cowboy 2.9.0) /deps/cowboy/src/cowboy_stream_h.erl:295: :cowboy_stream_h.request_process/3
keila_1 | (stdlib 3.17.1) proc_lib.erl:226: :proc_lib.init_p_do_apply/3

From the logs above, I guess the sending is stopped because there was an error while handling HTTP requests. sending and serving HTTP request is handled by the same process right??

wmnnd commented 1 year ago

This error doesn't really look like it would affect sending out emails. The thing that usually causes trouble when sending campaigns is if a sender wasn't configured properly.

Were you able to resolve the issue in the meantime? If not, please feel free to reopen this issue.

flinthamm commented 1 year ago

I've just had exactly the same thing happen here, running the latest 0.10.0 release from Docker Hub, a campaign starts to send and then at different points, it will stall and the log shows:

`14:10:01.599 [warn] Description: 'Authenticity is not established by certificate path validation' its-keila | Reason: 'Option {verify, verify_peer} and cacertfile/cacerts is missing'


14:10:46.675 [error] #PID<0.3042.0> running KeilaWeb.Endpoint (connection #PID<0.3041.0>, stream id 1) terminated its-keila | Server: hostname.goes.here:80 (http) its-keila | Request: GET /c/https%253A%252F%252Fhostname.goes.here%252F12444555666/mr_vLDq4dqX/tl_vDZ3pWj9/N3VMYU9sZF its-keila | (exit) an exception was raised: its-keila | (Plug.Conn.NotSentError) a response was neither set nor sent from the connection its-keila | (phoenix 1.6.11) lib/phoenix/endpoint/cowboy2_handler.ex:80: Phoenix.Endpoint.Cowboy2Handler.maybe_send/2 its-keila | (phoenix 1.6.11) lib/phoenix/endpoint/cowboy2_handler.ex:55: Phoenix.Endpoint.Cowboy2Handler.init/4 its-keila | (cowboy 2.9.0) /deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2 its-keila | (cowboy 2.9.0) /deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3 its-keila | (cowboy 2.9.0) /deps/cowboy/src/cowboy_stream_h.erl:295: :cowboy_stream_h.request_process/3 its-keila | (stdlib 3.17.2.1) proc_lib.erl:226: :proc_lib.init_p_do_apply/3 its-keila | 14:10:46.677 request_id=FzLUTtB3nqFWrSwAAA3D [info] GET /uploads/cdf5378d-fd31-4140-9768-e5ad6ec3ab28.png its-keila | 14:10:46.678 request_id=FzLUTtB7QjOMLg8AAA3j [info] GET /c/https%253A%252F%252Fhostname.goes.here%252Fdemo%252Ftickets%252Fnew/mr_vLDq4dqX/tl_YQZRRvZ6/dXZkMmk1LX ` The first time it sent 20 emails and after leaving running for 10mins I gave up and tried to cancel. Cancel seemed to work but then when you went back to just the "Stats" for the campaign (edit was no longer an option) it would still show the stalled progress bar and have the "Cancel" option.

I then cloned the campaign, checked all the emails that had sent and removed them from the contacts list and tried again. This time it stalled after sending 9 with the same logs above. Potentially a few of these email addresses may not be deliverable any more but I assume that should not stop delivery of the rest and "Cancel" should mean cancel?

It would be ideal if each contact were marked as sent for the specified campaign, so a retry would be possible.

I've just tried again with 4 emails and they all sent this time and "This campaign has successfully been sent out..." message was reached, despite producing 4 warnings about "Authenticity is not established by certificate path validation" so I guess there is another error not being caught that causes message delivery to get stuck.

wmnnd commented 1 year ago

What sender type are you using for your campaigns?

flinthamm commented 1 year ago

Sorry, SMTP and Office 365 both with and without rate limits set. The first campaign that stuck sending was at 20 and the rate limit was set to 25 per minute. The next 2 campaigns sent had no rate limit at all.

wmnnd commented 1 year ago

The upcoming version (see #173) – probably out next week – should prevent campaigns from being stuck on sending. Instead when there is an issue (i.e. misconfigured sender, sender errors, etc), these problems are logged and the recipient marked as failed. Your campaign stats will update accordingly.

If you still experience issues when sending an SMTP campaign then, please feel free to reopen this ticket or create a new ticket with the updated log information.

I’ve also added a new issue (#174) to add segments for whether contacts have received or interacted with a given campaign. This would allow you to resend a campaign to new contacts or contacts where sending previously failed.