buttondown / roadmap

Buttondown's public roadmap
51 stars 0 forks source link

"Send archived email" fails silently (despite green success message) on old(?) subscribers #760

Open james-baker opened 2 years ago

james-baker commented 2 years ago

Defect discovered and isolated in the context of other issues #759 and #761

Expected: "Send archived email" works on all subscribers, all issues, regardless of past history Actual: The feature fails on (working theory) "subscribers who were subscribed when the issue originally went out", despite working on newly-subscribed subscribers.

Expected: "Send archived email" should not result in green toast success message if it didn't really send Actual: I always see that green toast even in the failure case

Expected: After attempting to send an archive email to a subscriber, an "Attempted to send" event should be present in the Events of that subscriber Actual: Nothing appears in the Events, leading me to believe that it failed before even trying to send

"Send draft" (to selected recipient) does succeed in delivering to the subscriber/address on which "Send archived email" failed.

james-baker commented 2 years ago

Continuing to debug... Huh, my secondary newsletter that I thought was working can deliver an email to my custom domain, but not to a different domain. ... Does that mean it's only partly working because of the existing MX records handling that domain's regular inbound/outbound mail? Huh, the Events log doesn't even show an "Attempted to send..." when I "Send archived mail" to a gmail account, what does that mean?

james-baker commented 2 years ago

When I put in a domain (back to the 1st/big newsletter) and get that "Buttondown's having trouble checking your domain" toast, the https://buttondown.email/api/emails/service/verify-sending-dns-records request has a body of ""Domain not registered: intentionalsociety.org"" inside the 400 response. Sooo, that seems like an independent reliability defect.

james-baker commented 2 years ago

If I manually put in the URL https://buttondown.email/settings/sending-domain, that seems to work a lot more reliably than the ajax request.

Oddly, "pic._domainkey.intentionalsociety.org" has changed to "mailo._domainkey.intentionalsociety.org" now.

Next I'm going to try fully complying with the big newsletter's requested DNS and see if that fixes the little newsletter's delivery. Result: Well... delivering an archived email to that gmail address worked from the big newsletter, but not the small newsletter. <headdesk> And I really don't want to mass-mail everybody for testing purposes. Possibly... possibly could the "Send archived email" functionality silently fail (despite green "Sent email" toast) 100% if that subscriber was already subscribed for the initial sending of that issue?? (I've sent the same archive issue twice successfully to a new working test account, so it's not a simple state bit flip.)

At this point I have green "Great! You're all set up to send from this domain." showing on all 3 newsletters. Whenever Buttondown knows that it attempted to send an email, I receive it (gmail or zoho mail) and SPF/DKIM/DMARC all passes. MAYBE everything is working everywhere, except for a bug in Send-archived-email? Ah, yes, hmm, the behavior is still the same when I revert to sending via Buttondown: new zoho custom domain account gets it, old gmail address doesn't get it or register anything at all in Events.

jmduke commented 2 years ago

I think the core thing you're running into (with regards to different domain information for the same domain) is valid and definitely janky — filed that here. Just so I can follow the thread on the other bits; which is the username of your "biggest/1st" newsletter?

james-baker commented 2 years ago

username "intentionalsociety" for the 1st/biggest, the one which was recommended the MX records and SPF. I think that's the only one I've seen 400s on the verify-sending-dns-records requests.

james-baker commented 2 years ago

Trying to get to a place where I feel safe sending a newsletter (I deliberately picked an upgrade date where I had a couple days of slack), I'm going to try some "send draft" testing to compare against the send-archived-email failures.

Result: Yes, I'm receiving emails from the "send draft" code path, from multiple newsletters, at both gmail and intentionalsociety.org addresses.

Since #761 now handles the DNS-differences issue, I'll rename this issue to represent the "Send Archived Email" defect which led me to think my other configuration was wrong.