SMART LOTTO Dev Log #6 — Two Years of Silence, Then a Bug

Last Updated: October 17, 2023, 9:27 AM
That was SMART LOTTO's last update before a long silence.
For about two and a half years, I didn't touch it. Not neglect — there genuinely wasn't much to fix. The features worked, ratings held above 4 stars, no feature requests were coming in. For a side project, it was in a stable state.
So I focused on other apps.
Early 2026: Something Feels Off
I opened SMART LOTTO after a long time. My own app. Something was wrong.
The statistics data was frozen at 2023.
I thought I was misreading the screen. I checked again. The latest draw wasn't there. The app hadn't been fetching new winning numbers.
The Cause: A Deprecated API
The diagnosis didn't take long.
The Donghaeng Lottery API I'd been using wasn't returning responses anymore. Requests returned empty or errored. The lottery operator had redesigned their site and the endpoint I depended on was no longer supported.
From a user's perspective: the app opened, but statistics were stale and number generation wasn't reflecting recent draws. A silent but serious failure.
There Was a New API — But There Was Another Problem
Finding a replacement data source was possible. The redesigned site had new ways to access draw data.
The problem came next.
To push an update, I needed the source code.
The Source Was Gone
The code had been on Bitbucket. When storage on my account got full, I cleaned up repositories. I deleted the SMART LOTTO repo — the local copy was on my MacBook, so I thought it was safe.
Then I reformatted my MacBooks.
Both of them.
After the reformats, when I went to find the code: it wasn't on Bitbucket (deleted), it wasn't on MacBook A (reformatted), it wasn't on MacBook B (reformatted), it wasn't on any external drive.
The app was live on the App Store. The code was nowhere.
What This Taught Me
I learned two things the hard way.
First: version control must exist in at least two separate locations. Trusting only one — local or remote — isn't version control.
Second: any app that depends on an external API is one endpoint deprecation away from breaking silently. Build with that fragility in mind, and have a plan for when it happens.
Next: losing the source code and deciding what to do about it.