Week 5 - psycopg_pool.PoolTimeout: couldn't get a connection after 30.0 sec
This connection error is one of those errors that trip up many campers. Basically, the error message is telling you that your computer is unable to connect to the database. In my case, it was the AWS-side RDS Postgresql DB.
Error
Traceback (most recent call last):
File "/workspace/aws-bootcamp-cruddur-2023/./backend-flask/bin/ddb/seed", line 112, in <module>
users = get_user_uuids()
^^^^^^^^^^^^^^^^
File "/workspace/aws-bootcamp-cruddur-2023/./backend-flask/bin/ddb/seed", line 77, in get_user_uuids
users = db.query_json_array(sql, {
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/aws-bootcamp-cruddur-2023/backend-flask/lib/db.py", line 133, in query_json_array
with self.pool.connection() as conn:
File "/home/gitpod/.pyenv/versions/3.11.1/lib/python3.11/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/workspace/.pyenv_mirror/user/current/lib/python3.11/site-packages/psycopg_pool/pool.py", line 138, in connection
conn = self.getconn(timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/.pyenv_mirror/user/current/lib/python3.11/site-packages/psycopg_pool/pool.py", line 182, in getconn
conn = pos.wait(timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/.pyenv_mirror/user/current/lib/python3.11/site-packages/psycopg_pool/pool.py", line 745, in wait
raise self.error
psycopg_pool.PoolTimeout: couldn't get a connection after 30.0 sec
Solution
✅ Check if the AWS-side
security group rule
is updated with your currentGITPOD_IP
(or your machine's IP in case you develep locally).Example:
== db-connect psql: error: connection to server at "<AWS_RDS_DB_identifier>.us-east-1.rds.amazonaws.com" (52.44.13.66), port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections?
✅ Is the database NOT running…? → Run your database (postgres
or DynamoDB
)
✅ User’s cognito_user_id
does not match? → Update cognito_user_id
✅ Are there data in the database? → Seed some conversation data.