Writing

Technical troubleshooting write-ups: what we observed, what we believe caused it, and how it was fixed.

AllTLS & CertificatesCloudflare ErrorsDNSWAFBots & Automation
Bots & Automation Clustering Bot Traffic by JA4 Fingerprint, Not IP or User-Agent

Grouping bot traffic by IP or user-agent falls apart under proxy rotation and header spoofing — and even the right grouping key is useless if the scan that computes it can't finish. Here's how JA4 fingerprint clustering and a KV-checkpointed batch scan solved both.

2026-08-31
Cloudflare Errors Understanding HTTP 522

A 522 means Cloudflare couldn't even open a TCP connection to your origin — here's how to tell that apart from a slow origin, and where to actually look first.

2026-08-30
WAF Debugging WAF False Positives

A legitimate request blocked by a managed WAF rule isn't a reason to disable the ruleset — it's a reason to scope one narrow exception.

2026-08-30
DNS NXDOMAIN vs SERVFAIL

NXDOMAIN and SERVFAIL are not the same failure. Conflating them sends troubleshooting toward record content when the real problem is somewhere else entirely.

2026-08-30
TLS & Certificates TLS Handshake Failures on Legacy B2B Clients (IBM CIS & Let's Encrypt)

IBM CIS quietly serving an ECDSA-only Let's Encrypt certificate broke handshakes for a legacy IBM Sterling client — here's why re-trusting the new CA wasn't enough, and what actually fixed it.

2026-08-30