-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Description
New Issue Checklist
- I am not disclosing a vulnerability.
- I am not just asking a question.
- I have searched through existing issues.
- I can reproduce the issue with the latest versions of Parse Server and Parse Dashboard.
Issue Description
When Parse Dashboard is deployed with multiple replicas behind a load balancer that does not provide sticky sessions, login attempts fail with the CSRF error message “CSRF token validation failed. Please refresh the page and try again.” The issue disappears immediately when all requests are routed to a single replica.
Steps to reproduce
- Deploy Parse Dashboard (npm package
parse-dashboard8.0.0) together with Parse Server behind Traefik Ingress in a Kubernetes (k3s) cluster. - Set the Parse Dashboard deployment replica count to 2 and use a load balancer without sticky sessions (round-robin).
- Access
https://<host>/dashboard/login, enter a configured username and password, then submit the form. - Observe the 403 response and the CSRF error message. Refreshing the page sometimes succeeds because the next request may hit the same pod.
Actual Outcome
- Browser shows
CSRF token validation failed. Please refresh the page and try again.after submitting the login form. - Dashboard pod logs contain
EBADCSRFTOKENentries.
Expected Outcome
- Login should succeed, or official documentation should explicitly state that Parse Dashboard requires sticky sessions or a shared session store when running multiple replicas.
Environment
Dashboard
- Parse Dashboard version:
8.0.0 - Browser (Safari, Chrome, Firefox, Edge, etc.):
Safari 18.1 / Chrome 129 - Browser version:
Safari 18.1 (macOS 15.1) / Chrome 129.0.6668.90
Server
- Parse Server version:
8.4.0 - Operating system:
Alpine Linux (container) - Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc):
Self-hosted k3s cluster
Database
- System (MongoDB or Postgres):
MongoDB - Database version:
6.0 - Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc):
Self-hosted MongoDB service
Logs
Relevant snippet with VERBOSE=1:
[error] CSRF token mismatch: EBADCSRFTOKEN (login POST)
If the deployment is scaled down to 1 replica or sticky sessions are enabled (Traefik sticky cookie or Kubernetes sessionAffinity: ClientIP), the issue no longer occurs.
Copilot
Metadata
Metadata
Assignees
Labels
No labels