Bug: Gmail OAuth token refresh crashes on read-only k8s secret mount #136
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api#136
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Bug
Lineage
plan-wkq→ Phase 11 (Girls Tryout — March 24)Discovered testing password reset flow (basketball-api #132)
Repo
forgejo_admin/basketball-apiWhat Broke
All Gmail OAuth email sending crashes after the first access token expires (~60 min). The gmail_sdk refreshes the token via the refresh token, then tries to write the new access token back to
/secrets/google-oauth/gmail-westsidebasketball.json. This path is a k8s secret volume mounted read-only.This blocks: password reset emails, registration confirmations, roster exports, tryout announcements — ALL email.
Repro Steps
POST /api/password-reset/request)Expected Behavior
Email sends successfully. Token refresh is transparent to the application.
Environment
gmail-oauthsecret mounted at/secrets/google-oauth(readOnly: true)gmail_sdk.auth._save_token)Acceptance Criteria
Fix
EmptyDir + init container (standard k8s pattern):
File Targets
k8s/deployment.yaml— add init container + emptyDir volumeRelated
feedback_gmail_oauth_not_smtp.md— all email = Gmail OAuthauth.py:151— the_save_tokencall that crashes