Limits and troubleshooting
What fails, what it looks like, and what to do
Cannot connect from my application
Work down this list in order. The first three cover almost every case.
Is internet access on? A new database is closed. Check the database page, under Internet access. If it says Closed, nothing outside the cluster can reach it.
Is your address in the allowlist? The allowlist is the whole list, so a range you removed is revoked. Check the address your application actually connects from, which for a cloud provider is usually a NAT gateway rather than the machine's own address.
Has the endpoint been created? Turning access on takes a short while to produce an endpoint. Until it exists the console shows no hostname, because a name that does not resolve is worse than nothing.
Did you build the URL by hand? A password with characters that are not URL safe has to be escaped. Copy the URL from the app user's page instead, which escapes it for you.
Authentication fails with the right password
Check you are using the connection URL for the app user you think you are. Each user has its own.
If the password was recently reset, the old one stopped working immediately, with no grace period.
If the app user has an expiry, check it has not passed.
Permission denied on a query that used to work
Check the app user's capabilities. Read and write covers SELECT, INSERT, UPDATE and DELETE.
Creating or altering tables needs change the schema, which application logins do not get by
default.
Capabilities changed in the console apply immediately, including revocations.
Cannot delete an app user
PostgreSQL refuses to drop a role that owns anything. The console lists what the user owns. Reassign or drop those objects, then delete the user.
The database is slow
Check whether the queries in question are analytical. A transactional database serves short reads and writes; a query scanning a whole table will run, and will compete with everything else while it does. The Zero-ETL mirror exists for that work.
Check active connections on the database page. An application without a connection pool can exhaust a connection limit and spend its time waiting.
A measurement says "not reported"
The figure could not be read from the cluster when the page was loaded. It is shown as not reported rather than as zero, because a zero would be indistinguishable from a real measurement of nothing. Reload; if it persists, the metrics endpoint is unavailable rather than the database being idle.