惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
博客园 - 叶小钗
F
Fortinet All Blogs
GbyAI
GbyAI
Martin Fowler
Martin Fowler
博客园 - 聂微东
I
InfoQ
B
Blog
IT之家
IT之家
美团技术团队
L
LangChain Blog
小众软件
小众软件
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
Last Week in AI
Last Week in AI
A
About on SuperTechFans
博客园 - Franky
P
Proofpoint News Feed
罗磊的独立博客
月光博客
月光博客
V
Visual Studio Blog
MyScale Blog
MyScale Blog

Buttondown's blog

Email could have been X.400 times better The physicists who convinced Fermilab to send Brazil's emails Better in-app previews Analytics 3.0 Subscriber ID variables Comments! Send latest premium action Automation filtering Free API subscribers Surveys in automations Reply to replies Labels for RSS feeds How Jeremy Singer-Vine curates curious datasets for readers 2023 (and what's next) Email vs web content Sort by engagement Better gift subscriptions How Andy Dehnart built a career reviewing television New email template Email-based automations Opt-in reply tracking Automatic alt text More social network integrations Sort by metadata Overlarge image warnings Automation tag actions Pause emails mid-flight Search tags and automations Gift via automations Subscriber-driving emails
Public postmortem: tracked links unavailable
Matias Artopoulos Kozak · 2026-06-03 · via Buttondown's blog

TL;DR

On May 8th, our tracking domains (buttondown-0000.com through buttondown-0009.com) experienced downtime from around 20:30 to 21:42 UTC, which caused the links in emails from newsletters with tracking enabled to be unavailable.

This was caused by Heroku resetting the DNS targets for these domains, making the DNS targets previously set invalid. This made the TLS certificates for these domains to be invalid, which meant that Heroku couldn't serve HTTPS traffic to users.

How we detect the issue?

Unfortunately, our automated systems weren't monitoring tracking domains specifically, so we were alerted by user reports instead of automated systems. This is not acceptable, and we have taken steps to actively monitor all endpoints, not just our main ones.

How did we mitigate the issue?

At 21:07 UTC we set the new DNS targets for the domains and requested Heroku to refresh the ACM certificates intending that it would emit new, valid certificates. While this worked for buttondown-0009, -0006 and -0003, it didn't seem to be working for the rest of the tracking domains. This might've been related to the Let's Encrypt downtime that was happening around the same time.

At 21:39 UTC we deployed a mitigation for the rest of the domains by leveraging the Cloudflare proxy to handle HTTPS instead of Heroku. This worked immediately and restored access to all domains.

How will we prevent this from happening again?

  1. We're improving our monitoring to notice these issues sooner, including traditional uptime monitors but also TLS certificate monitoring and metric analysis to detect unexpectedly low traffic.
  2. We're working on better internal documentation to act faster if/when these type of issues happen again.
  3. We haven't been able to identify why Heroku reset the DNS targets for the domains, but we've contacted them for more information. Our best guess is a Heroku issue, potentially related to our use of CNAME flattening in those domains.
  4. We were already looking into migrating our domain ingress to another platform since before this incident, and we will be prioritizing these efforts to replace Heroku as our main hosting provider.