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

推荐订阅源

G
Google Developers Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
博客园 - 聂微东
M
MIT News - Artificial intelligence
博客园_首页
Jina AI
Jina AI
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Vercel News
Vercel News
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
B
Blog
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Graphite blog

Introducing Code Tours: a new way to review Introducing Cursor Cloud Agents in Graphite Building the future of software development with Cursor Reimagining the PR Page: Designing for speed and focus Graphite changelog [11-20-2025] Graphite changelog [11-04-2025] Graphite changelog [10-16-2025] The future of engineering is collaborative (and already here) Meet Graphite Agent: the next evolution of AI code review Introducing frozen branches: A safer way to build on your teammates’ work Graphite changelog [09-17-2025] How we sped up code search for Graphite Chat Introducing Graphite Chat AI is writing code—here's why it also needs to review that code How I got Claude to write code I could actually ship How we built the first stack-aware merge queue (and why it matters) How we organize our monorepo to ship fast Graphite brings stacking to Tower Code review tooling: Should you build or buy? Making AI code review available to everyone Introducing: The new Graphite + Linear integration Graphite raises $52M and launches Diamond to reimagine code review for the age of AI Why AI will never replace human code review How stacked PRs unblock distributed development teams Graphite is going to Developer Week 2025 Beating the end of year code freeze How Graphite’s eng team ships code remarkably fast Why we chose Anthropic's Claude to power Graphite Reviewer AI code generation will remain fragmented How we redesigned Graphite's landing page in-house
Post mortem: we took 124 seconds from you, here's 378 back
Greg Foster · 2023-12-07 · via Graphite blog

Cursor Cloud Agents are now in Graphite. Create, review, and ship without leaving your PR.

author

Greg Foster

Dec 6, 2023

If you haven’t seen the global headlines yet: Graphite had an outage.

In the interest of full transparency and accountability, I, Greg Foster, as the CTO and responding on-call engineer, want to give a full report of the incident, and reaffirm our commitment to our community and customers.

While Graphite was down for ~2 minutes, and you'll never get those valuable moments of your life back, in this article I will provide you with ~6 minutes of content. This nets out to a GAIN of 4 minutes, putting you back on top. Let's dive in.

Incident Overview:

  • Time and Duration: On December 6, 2023, at 2:13:26 PM EST, Graphite’s web application experienced an unexpected downtime lasting precisely 124 seconds.

  • Impact: Nearly a dozen users encountered a 404 error page when attempting to load new pages, particularly affecting the pull request functionality. This interruption temporarily hindered user code reviews while encouraging premature coffee breaks.

Affected surfaces:

Luckily, the issue was solely isolated to new page loads of the web application. Other key components of the Graphite ecosystem, such as asynchronous jobs, merge queues, the CLI tool, the VS Code extension, and the system tray application remained fully operational during this time. This maintained continuity in several backend and integrated services, thereby limiting the overall disruption to our users.

Initial detection:

The problem was first identified thousands of milliseconds into the incident, at precisely 2:13:26 PM EST by myself, Greg Foster, following a user report in the Graphite Community Slack channel.

Detailed timeline:

  • 2:13:35 PM: Adhering to my on-call duties, I promptly instructed Alyssa, another key software dev on our team, to update the Graphite status page to communicate the service disruption.

  • 2:13:37 PM: Concurrent with the status page update, belated PagerDuty alarms began firing, indicating a significant uptick in errors and triggering parasympathetic trauma responses across the room. The office was literally “abuzz” with vibrating phones, and apple watches warning of imminent cardiac arrest (see above).

  • 2:13:40 PM: Brendan, another Graphite engineer, began an exploration in the AWS console to identify and address the underlying issue.

  • 2:13:45 PM: Suspecting an anomaly with the S3 bucket serving the web application, I started battling through multiple of AWS’s “best-in-industry" login flows to access the AWS console. After only 16 redirects through different authentication portals, I was in.

  • 2:13:50 PM: Graphite’s internal Slack channels experienced a surge in activity, with employees reporting the 404 error, and users clamoring for answers in the community Slack. The ➕ emoji reacts to error reports, and dumpster fire gifs were frantically rolling in. It was now clear that this was a... widespread issue.

  • 2:14:30 PM: In the meantime, as I was handling the slack meltdown, Brendan successfully identified a misconfiguration in the S3 bucket settings and proceeded to revert the changes, effectively restoring site functionality.

  • 2:14:40 PM: Following the resolution, site performance returned to normal, and blood pressure readings finally fell below the “fatal hypertension” level. Benchmarks across the board were looking good.

  • 2:14:50 PM: Brendan reminded me of what I said in our 1:1 this morning: “Wow, it’s been so long since we had any kind of outage!” Thank you Brendan.

  • 2:15:40 PM: I updated the community on Slack regarding the resolution and shared a brief explanation of the incident.

Root cause analysis:

  • Precursor event: My presentation on the preceding day at 4:50 PM EST, highlighting the exceptional uptime in November, inadvertently angering the SRE gods and cursing the team with subsequent downtime.

  • Immediate cause: The downtime was initiated by an unintended change to the S3 production bucket configuration at approximately 2:12:35 PM EST, causing CloudFront to serve 404 errors.

The issue was promptly addressed by reverting the changes to the S3 bucket configuration.

Future corrective actions:

  • Graphite will encourage a new internal policy requiring testing of configuration changes in a staging environment prior to production deployment.

  • Add linter warning to caution against making verbal jinxing statements about system reliability.

Acknowledgments:

  • First, I want to extend my sincere thanks to our engineering team for their rapid and effective response to this incident.

  • I also deeply appreciate our community members on Slack who quickly reported the issue and showed tremendous support throughout the incident.

  • And thank you, the reader, for making it to the end of the report, hopefully learning from our experience along the way.

Related articles