Start Here
New to Debugly? These are the posts worth reading first, organised by what you are trying to do.
Debugly is a blog about why software breaks and how people find out. If you have just arrived, here is a map.
If you are here to fix something right now
Go straight to the post, read the answer block at the top, and ignore the rest until it works.
Kubernetes - CrashLoopBackOff: a complete diagnostic flowchart covers the nine causes and how to tell them apart from the exit code - OOMKilled: why your container died and your metrics showed nothing explains why your memory graph looked fine - exec format error: the ARM64 and AMD64 mismatch is the one that bites everyone building on an Apple Silicon Mac
Databases - Why your index is not being used is how to read a query plan properly - Postgres deadlock detected covers lock ordering and how to read the log
JavaScript and React - Hydration failed: every cause, ranked lists the eight real causes in order of frequency - ERR_REQUIRE_ESM: the complete guide is the ESM and CommonJS boundary problem - Why your useEffect runs twice and why that is correct
Python - Reading a Python traceback properly because most people read them backwards
Shopify - Why your Shopify theme scores 40 on Lighthouse and the measurement order that actually finds the cause - Liquid N+1: the loop that adds seconds to your page - Your theme broke after installing an app covers script injection and how to find the offender
If you want to get better at debugging generally
These are about method rather than any specific error.
- Every bug is a story about a wrong assumption is the manifesto and the shortest description of how I think about this
- How breakpoints actually work explains INT3, ptrace, and why conditional breakpoints can be slow
- Print debugging is underrated argues the case properly
- Your error messages are a user interface is about writing failures other people can act on
If you like a good detective story
Long form investigations with the false leads left in. These are the posts I most enjoy writing.
- The bug that only happened on Tuesdays took five months and four engineers, and collapsed in ninety seconds once somebody aggregated the failures
- A 400ms latency spike that turned out to be DNS where the flame graph pointed at nothing and that turned out to be the clue
If you work on Shopify
This is my day job, so there is a lot here.
- Shopify vs WooCommerce: an honest comparison including where I think Shopify is the wrong answer
- Hydrogen or Liquid: which should you actually build on
- How many apps is too many with measured numbers rather than vibes
- Migrating to Online Store 2.0 without breaking everything
- The Shopify theme debugging toolkit
If you work with AI coding tools
- The six bugs coding agents write most often with reproductions
- Why AI generated code passes tests and still breaks production
How posts are organised
Every post is tagged into one of a few pillars:
Error Autopsy takes one exact error message apart: reproduction, mechanism, fix, and every other cause of the same message.
Bug Hunt is a narrative of a single investigation, false leads included.
Tooling covers how debuggers, profilers, and tracers work underneath.
Shopify is theme performance, Liquid, apps, and platform decisions.
AI is debugging machine generated code.
About the author
I am Rohit Bhadani, a software engineer in Surat, Gujarat, and the founder of Krova Cloud where we build isolated Firecracker microVMs. Before that I spent four years building Shopify themes at Debutify, finishing as CDO. More on the about page, including why this blog exists and what standards it holds itself to.
New posts go out roughly weekly. The newsletter is one email when a post is published, and nothing else.