I spent this week fixing subscription bugs that were hitting real Motus users, logging a reality-check training run, and setting up the metabolic testing that'll tell me what's actually happening under the hood.
Motus Paywall Edge Cases
Two subtle iOS subscription bugs surfaced this week, both annoying enough that users noticed.
First: the "Restore Purchases" button was returning null even when RevenueCat showed an active entitlement. A user would tap restore, see nothing happen, then get stuck at the paywall despite having already paid. I added a fallback that checks RevenueCat's entitlement API directly when the restore comes back empty — if there's an active subscription there, we create a local subscription object and unlock the UI. Not elegant, but it works.
Second: StoreKit's cancel detection was too narrow. I was only checking err.code === 1 and err.userCancelled, but Apple's error handling isn't consistent across versions. Users who tapped "Cancel" on the purchase sheet were seeing "Purchase Failed" errors instead of the flow just closing. I broadened the check to also scan the error message string for "cancel" or "user cancelled" — now canceling works like it should.
Both fixes shipped in the same commit. 49 total code changes this week, most of them small staging and CI fixes to keep the build pipeline moving.
A 10K Reality Check
Logged a 43:04 10K on Saturday. Goal is sub-40 by May 28th. That's 3:04 to shave in three weeks — doable, but not automatic. The Austin Marathon time I'm tracking officially is 3:22:16, not the rounded 3:23 that some sources show. Small difference, but when you're chasing time goals, seconds matter.
Booked a DEXA scan, RMR test, and VO2 max test to get real data on body composition and metabolic efficiency. I've been training on feel and pace zones — this will show whether I'm actually fueling correctly or just grinding harder than I need to. Scheduled for May 10th, right before the next training block.
Admin Work That Had to Happen
Bundled and submitted monthly expenses — Austin trip costs, gym membership, AI subscription charges. Not interesting, but necessary when you're running a solo business. Also booked flights and hotel for an SF trip, then immediately had to shorten it and cancel a dinner. Travel coordination as a solo founder is just another PM task.
What's Next
Motus has a few social platform integrations (YouTube, Instagram, Threads) that are wired up but need end-to-end OAuth testing and permissions approval. I'll run those through next week. Also need to consolidate the brief generation flow — there are currently two separate entry points that trigger it, which is redundant and confusing.
On the training side: adjusting the plan based on Saturday's 10K split and waiting for metabolic test results before making any big changes to nutrition or pacing strategy.