Learn how to diagnose and fix common issues with your Supabase project.
HTTP API Issues#
- HTTP timeouts
- 5xx response codes
- High response times
The most common class of issues that causes HTTP timeouts and 5xx response codes is the under-provisioning of resources for your project. This can cause your project to be unable to service the traffic it is receiving.
Each Supabase project is provisioned with segregated compute resources. This allows the project to serve unlimited requests, as long as they can be handled using the resources that have been provisioned. Complex queries, or queries that process larger amounts of data, will require higher amounts of resources. As such, the amount of resources that can handle a high volume of simple queries (or queries involving small amounts of data), will likely be unable to handle a similar volume of complex queries.
You can view the resource utilization of your Supabase Project using the reports in the Dashboard.
Some common solutions for this issue are:
- Upgrading to a larger compute add-on in order to serve higher volumes of traffic.
- Optimizing the queries being executed.
- Using fewer Postgres connections can reduce the amount of resources needed on the project.
- Restarting the database. This only temporarily solves the issue by terminating any ongoing workloads that might be tying up your compute resources.
If your Disk IO budget has been drained, you will need to either wait for it to be replenished the next day, or upgrade to a larger compute add-on to increase the budget available to your project.
Unable to connect to your Supabase Project#
Symptom: You're unable to connect to your Postgres database directly, but can open the Project in the Supabase Dashboard.
Too many open connections#
Errors about too many open connections can be temporarily resolved by restarting the database. However, this won't solve the underlying issue for a permanent solution.
- If you're receiving a
No more connections allowed (max_client_conn)error:
- If you're receiving a
sorry, too many clients alreadyor
remaining connection slots are reserved for non-replication superuser connectionserror message in addition to the above suggestions, switch to using the connection pooler instead.
If you receive a
connection refused error after a few initial failed connection attempts, your client has likely been temporarily blocked in order to protect the database from brute-force attacks. You can wait 30 minutes before trying again with the correct password, or you can contact support with your client's IP address to manually unblock you.