diff --git a/.claude/skills/releasing-healthchat/SKILL.md b/.claude/skills/releasing-healthchat/SKILL.md index 1a1c074d4e..15ad3c747f 100644 --- a/.claude/skills/releasing-healthchat/SKILL.md +++ b/.claude/skills/releasing-healthchat/SKILL.md @@ -159,6 +159,31 @@ fixing the changelog over relying on the fallback. - [ ] Internal testers get the update automatically if they're enrolled. - [ ] AAB + `mapping.txt` are attached to the workflow run, retained 90 days. +**A green "Build Release AAB" step does not mean the release shipped.** The +upload step logs `Successfully uploaded 1 artifacts` before it commits the Play +edit; if the commit fails, the AAB is uploaded but no release exists on the +track. Always check the `Upload to Play Store` step, not just the job's build +steps. + +## Troubleshooting: `changesNotSentForReview must not be set` + +``` +Successfully uploaded 1 artifacts +Committing the Edit +##[error]Changes are sent for review automatically. +The query parameter changesNotSentForReview must not be set. +``` + +Google flips this per app: once Play sends an app's changes for review +automatically, the Edits API rejects `changesNotSentForReview` instead of +ignoring it. The 26.07.0 release (2026-07-27) committed fine with the flag +set; 26.08.0 (2026-08-03) failed with it. The parameter is no longer passed — +if it ever needs to come back, gate it rather than setting it unconditionally. + +Recovery: the failed edit is never committed, so the `versionCode` is not +consumed. Re-run via `workflow_dispatch` with the same version — no tag move +and no version bump needed. + ## Required GitHub Actions secrets The pipeline depends on these repository secrets. Missing any causes the diff --git a/.github/workflows/healthchat-release-playstore.yml b/.github/workflows/healthchat-release-playstore.yml index 659ddec40e..d646ba9794 100644 --- a/.github/workflows/healthchat-release-playstore.yml +++ b/.github/workflows/healthchat-release-playstore.yml @@ -238,4 +238,8 @@ jobs: status: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.release_status || 'completed' }} whatsNewDirectory: fastlane/metadata/android mappingFile: app/build/outputs/mapping/gplayRelease/mapping.txt - changesNotSentForReview: true + # Do NOT set changesNotSentForReview. Play now sends this app's changes for review + # automatically, and the Edits API rejects the parameter outright when it does: + # "Changes are sent for review automatically. The query parameter + # changesNotSentForReview must not be set." The AAB uploads fine and then the commit + # fails, so the release silently never lands on the track. See SKILL.md.