Claude burned paid EAS build credits due to preventable mistakes in mobile build session
Summary
During a React Native / Expo mobile app build session, Claude made two preventable mistakes that wasted paid EAS build credits on a usage-based billing plan (credits already exhausted for the month).
Mistake 1: Missing iOS plist key not checked before building
Claude introduced react-native-background-geolocation v4.19.4 (transistorsoft) into the project. Before triggering any EAS builds, Claude should have checked what new iOS Info.plist NSUsageDescription keys the library requires. Claude did not do this.
The result: Build 6 was submitted to Apple and immediately rejected with ITMS-90683 — missing NSMotionUsageDescription. This is a straightforward requirement documented in the library's install guide. The entire build was wasted.
Mistake 2: EAS remote build number not verified before building
Claude triggered an EAS iOS build without first checking the remote build number. The remote counter was at 5 — the same as the build currently in App Store Review. EAS produced a duplicate build 5 which could not be submitted to App Store Connect.
Claude has a memory note explicitly stating "always check and set the correct build number before ANY EAS build." Claude violated its own saved rule.
Impact
- 2 paid iOS EAS builds wasted (usage-based pricing, no credits remaining)
- User's App Store Review submission for build 5 was not affected, but significant frustration and cost were incurred
- Both mistakes were entirely preventable with basic due diligence before triggering builds
Expected behaviour
Before introducing a new native library to a mobile project and triggering a paid build, Claude should audit all platform-specific requirements (plist keys, permissions, etc.) upfront. Before triggering any EAS build, Claude should verify the remote build number is correct.
Repository context
ride-phil/mototracker-mobile — React Native / Expo app, EAS Starter plan (usage-based after monthly credits)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗