App platform: Node connection to managed Redis fails
I’m trying to set up an example app with a Node.js Express server, a managed DO Redis db, and a Node.js worker.
I got this app working locally with docker-compose, using the docker hub’s official
redis image as the db, but I can’t get it to connect to my managed DO redis db.
(The code linked above doesn’t catch errors, but if I catch them, I see this):
Error: read ECONNRESET
MaxRetriesPerRequestError: Reached the max retries per request limit (which is 20). Refer to "maxRetriesPerRequest" option for details.
The app itself appears to just hang and timeout when I post to the
/job endpoint and try to make the first connection do the DB.
Things I’ve checked:
- I attached the DB to my components in App Platform: it automatically added the env var
DATABASE_URL, which I renamed to
REDIS_URLto work with this code.
- The managed redis db is accepting connections from all sources. In fact, I wouldn’t know how to restrict it to the app platform even if I wanted to!
- The node package having this problem is
bull, which uses
ioredisunder the hood to connect. I thought it might be a problem with TLS, but I was able to connect locally using ioredis with the same connection string (DATABASE_URL, which is
I don’t know if the problem is specific to Node Bull here, but I don’t know how to begin debugging it beyond just logging as much as I can to the JS console.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.×