K
Kinde2w ago
Ricer

Random error when trying to authenticate - ExpressJS backend with DynamoDBStore + React frontend

I'm running a REST API with an ExpressJS that runs kinde-node-express with a DynamoDBStore and a React frontend. The login process is simply the frontend href to the /login route of my backend, which then handles the the entire flow (sends the user to kinde's authentication flow, and then redirects back to my backend). I can't seem to go past the protectRoute function - not sure if validateToken fails or what. The main issue is that this occurs "randomly" when I make changes to my frontend and then try to login or when I logout from 1 user and login from a different user from the same browser. This doesn't happen all the time, so I can't pinpoint the problem & reproduce the bug consistently. Moreover, sometimes when I try to login and it doesn't work, it will work after a few more times, sometimes 1 more time and sometimes 4-5 more times. Another thing I noticed is that it could also work if I restart my backend (which is a very bad solution by the way). Is this problem known? Was there a fix at later version of kinde-node-express or its dependencies? I'm currently using version 1.6.0 and jwt-validator is 0.1.0
1 Reply
Abdelrahman Zaki
Hey Ricer,

Thanks for reach out. to get to the bottom of this “random” protectRoute failure I’m going to need a few more details—especially around your SDK and session config—so we can reproduce the exact conditions. Could you share: 1. SDK versions - Exact version of @kinde-oss/kinde-node-express (you mentioned 1.6.0—please confirm) - Exact version of jwt-validator - Node.js version you’re running 2. DynamoDBStore configuration - The snippet where you initialize your session store (DynamoDB table name, TTL settings, region, any custom serializer) - Are you using the built‑in AWS SDK or pinning to a specific aws-sdk version? 3. protectRoute setup & errors - The code around your protectRoute (or verifier) middleware—especially how you call validateToken - Full stack trace or HTTP status/code you see when it fails (403? 500? socket timeout?) - Any console.log of req.headers or the raw token when it rejects 4. Repro steps & environment - Does this only happen after you change the React build? When you clear cookies? When you switch users? - Are you running locally (localhost), in Docker, or deployed to a cloud environment? - Browser you’re testing in and any proxy in‑between (CORS or reverse proxy)? With those details we can: - Check if it’s a caching issue (JWKs not refreshing after logout) - See if your DynamoDB session TTL is expiring too quickly or table permissions are flipping - Pinpoint whether your cookie/name/path/domain is colliding when you flip users in the same session Once you post those snippets and logs I’ll reproduce it on my end and we’ll get you a targeted fix (or point you to the upgrade where it’s already been resolved). Thanks

Did you find this page helpful?