Common Failures

Build And Gradle

SymptomLikely CauseFix
Compose compiler or Kotlin mismatchStale dependency versionsVerify AGP, Kotlin, Compose BOM, and compiler setup from official docs
KSP task fails after adding RoomKSP plugin missing or version mismatchAdd KSP intentionally and use ksp, not both ksp and annotationProcessor
Release task missingModule or variant name differsRun ./gradlew tasks and use project-specific names
Debug works but release failsR8, signing, or manifest differenceBuild release early, not at the end

Compose UI Bugs

SymptomLikely CauseFix
Infinite recompositionState write during compositionMove writes to event handlers or side effects
List loses row stateMissing stable keysUse items(items, key = { it.id })
Preview crashesPreview constructs real dependenciesPreview stateless composables with fake state
Slow scrollHeavy row composition or unstable modelsKeep rows small, use stable models, profile on device
Text unreadable in dark modeHard-coded colorsUse Material 3 color roles

Room Data Loss

SymptomLikely CauseFix
Data disappears after updateDestructive migrationWrite real migrations and migration tests
Query fails at runtimeSchema mismatch or untested query pathUse Room compile-time checks and tests
UI freezes during importMain-thread parsing or huge transactionMove work off main thread and chunk large imports
Export misses user editsExport reads raw import data onlyExport from normalized source-of-truth tables

WorkManager Not Running

SymptomLikely CauseFix
Job never startsConstraints not metInspect constraints and test with relaxed constraints
Job runs repeatedlyUnique work policy wrongUse explicit unique work name and policy
Job fails foreverRetry without fatal/error splitReturn failure for bad input and retry only for retryable failures
Works on emulator, not deviceOEM battery behaviorTest on physical target device and avoid exact timing promises

Play Console Rejections

SymptomLikely CauseFix
SMS permission rejectedCore functionality or declaration unclearRework feature, fallback, privacy policy, and demo evidence
Target API warningRequirements driftedUpdate target API after checking current Play requirement
Data safety rejectedAnswers do not match behaviorAudit actual collection, storage, sharing, and deletion
Artifact rejectedDebug, unsigned, or wrong formatUpload signed AAB for Play release
Signing issueUpload key mismatchCheck Play App Signing page and signing report

Triage Order

  1. Reproduce on command line.
  2. Capture exact command and error.
  3. Check whether the issue appears in debug and release.
  4. Check whether it reproduces on physical device.
  5. Verify dependency and policy freshness from official sources.
  6. Fix the smallest owning layer.