fix: persist generated FLASK_SECRET_KEY to prevent session loss on restart#1721
Open
gdeyoung wants to merge 1 commit into
Open
fix: persist generated FLASK_SECRET_KEY to prevent session loss on restart#1721gdeyoung wants to merge 1 commit into
gdeyoung wants to merge 1 commit into
Conversation
When FLASK_SECRET_KEY is not set, the server generates a random key on every restart. This invalidates all browser session cookies, causing API/WebSocket requests to redirect to /login (HTML) instead of returning JSON. The frontend then fails with 'Unexpected token <'. Fix: auto-generate and persist the key to usr/.env using the existing dotenv.save_dotenv_value() helper, so sessions survive restarts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When
FLASK_SECRET_KEYis not explicitly set in the environment, the server generates a new random secret key on every restart:This invalidates all browser session cookies, causing authenticated API/WebSocket requests to redirect to
/login(returning HTML) instead of returning JSON. The frontend then fails with:"Unexpected token <"This is particularly impactful for Docker deployments where containers are restarted regularly.
Fix
When
FLASK_SECRET_KEYis not set, auto-generate one AND persist it tousr/.envusing the existingdotenv.save_dotenv_value()helper:This way, the generated key survives restarts and sessions remain valid. Users can still override with their own key via the env var.
Testing
Unexpected token <errors after restartFLASK_SECRET_KEYvalues are respected (backward compatible)Type of Change