Skip to main content

Posts

Showing posts from September, 2025

🧩 How We Solved “Unable to Get Certificate CRL” in Rails: A Debugging Story

If you’ve been around Rails long enough, you’ve probably battled your fair share of SSL demons. But this one? This one had personality . It was a Seahorse::Client::NetworkingError that failed only on macOS — yet worked perfectly inside Docker. The kind of “it works on my container” bug that makes you question every life choice leading up to this point. So here’s the story of how we chased down a ghostly SSL error, only to discover that the real culprit was… OpenSSL itself. ⚠️ The Error Seahorse::Client::NetworkingError SSL_connect returned=1 errno=0 peeraddr=[...] state=error: certificate verify failed (unable to get certificate CRL) This popped up whenever our Rails app tried connecting to AWS S3 using the aws-sdk-ruby gem. 🔍 The Contradiction That Made No Sense From the get-go, the bug refused to play by any rules of logic. ❌ It failed locally but ✅ Worked flawlessly in Docker That told us one thing: the problem wasn’t our code. It was the environment. macOS and Dock...

The One-Letter Rails Bug That Slipped Past Rubocop, CI, and Code Reviews

We often think production bugs happen because of big oversights or complex logic failures. But sometimes, it’s the smallest things—a single typo—that sneak past every safeguard and cause trouble in live environments. Recently, I had one such experience in a Rails project. It wasn’t a major crash, but it did break a piece of business logic under specific conditions. More importantly, it taught me valuable lessons about code reviews, rubocop, and testing discipline—lessons I’d like to share here. The Safeguards We Already Had Like most teams, we don’t push code directly to production. Instead, we follow a layered safety net: ✅ Pre-commit checks to catch obvious mistakes ✅ RSpec test cases to validate logic ✅ CI pipelines to enforce standards and run checks ✅ Code reviews to ensure human oversight ✅ QA testing before deployment You’d think with all this in place, no typo could possibly slip through. So how did it happen? Where Things Went Wrong: Rubocop and a “Helpfu...