This one was painful.
I was integrating SQLite into my app (EchoId), and like most people in the Ionic/Capacitor ecosystem, I went with Capacitor SQLite. Seemed like the obvious choice.
Big mistake.
The problem
Nothing worked properly.
- random failures
- inconsistent behavior across devices
- methods not behaving as expected
- docs that didn’t match reality
At first, I assumed it was my fault. Misconfiguration, bad setup, something subtle.
So I did what every dev does:
- reinstalled everything
- rewrote integration multiple times
- tried different versions
- followed every tutorial I could find
Still broken.
The worst part
There was no clear information anywhere.
- Documentation was outdated
- GitHub issues were vague or unanswered
- StackOverflow had half-answers
Even AI tools (yes, including ChatGPT) kept suggesting:
“maybe try this”
“maybe it’s that”
Nothing concrete. Just guesses.
What was actually going on
After ~20 days of digging, I found the real issue:
👉 The plugin was effectively deprecated / not properly maintained at that time
Not clearly stated.
Not documented properly.
Just silently… unreliable.
That’s why nothing made sense.
The decision
At that point, I stopped trying to “fix” it.
Switched to:
👉 Cordova SQLite
Also, credit where it’s due — big respect to the original author (@jepiqueau) for the work and contributions.
Yeah, older.
Yeah, less “modern”.
But guess what?
It just works.
Result
- Stable database operations
- Predictable behavior
- No random failures
- No wasting days debugging ghosts
EchoId still uses it today — and it runs perfectly.
What I learned
- Don’t assume the popular option is stable
- If something feels fundamentally broken, it probably is
- Docs + ecosystem health matter more than “modern stack”
- Know when to stop debugging and switch tools
The plugin has since been moved to the Capgo organization, and from what I’ve seen it might be in a much better state now.
But back then? It was a black hole.
If you’re stuck in a loop where nothing makes sense — step back and question the tool itself.
Sometimes the bug isn’t in your code.
If you're building real-time or offline-first apps and have dealt with similar issues, I’d like to hear what you ended up using.

Top comments (0)