Vercel Postgres Error Codes
This section focuses on errors that can happen while using the Vercel Postgres SDK to interact with your Vercel Postgres store.ReplyError: invalid_connection_string
Your postgres client was not able to connect to your Postgres store. This error happens if you provided the wrong type of connection string to a connection method.
For example, you passed a non pooling postgres URL to the createPool
method which expects a postgres URL that includes pooling.
Troubleshoot:
- Check that your connection string does not have a typo, or that it is associated with the correct type of connection (direct or pooled)
ReplyError: missing_connection_string
Your postgres client was not able to connect to your Postgres store. This error happens if you did not provide a connection string when using a method that creates a connection with your Postgres store.
Troubleshoot:
- Check that you used the correct parameter name for the connection string.
- If the error occurs while developing locally, and you're using a Vite-based framework such as Nuxt or SvelteKit, confirm that you're providing the connection string explicitly
This error occurs when the amount of concurrent connections available have been exhausted. When this is encountered, it is highly likely the result of a direct connection. The recommendation is to use the pooled connection instead.
ReplyError: kysely_streaming_not_supported
This error happens if you tried to use the streaming feature with the Kysely client. The Neon package does not support streaming.
ReplyError: kysely_transactions_not_supported
This error happens if you tried to use the transactions feature with the Kysely client. The Neon package does not support transactions.
This error is thrown when attempting to perform a Prisma migration using the pooled database connection, you need to use the direct connection when performing Prisma migrations.
This can be accounted for in the schema.prisma
file to avoid needing to change connection strings by using a setup similar to the following:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_DATABASE_URL")
}
While the database will primarily use the url
variable for connections (likely to be pooled), it will default to the directUrl
when attempting to perform migrations.
This error means that the connection was established. However, the Prisma query engine was unable to process a query in the connection pool within the time limit (the default is 10 seconds).
There are several ways to fix this error:
-
Increasing the connection pool size
You can increase the connection pool size by setting the
connection_limit
parameter to a higher value. We recommend increasing this value in increments of 10 until Prisma Client is working properly. You can learn more about optimizing the connection pool size in Prisma's documentation.The connection string would be:
.envDATABASE_URL=postgres://default:<password>@ep-lingering-cell-123456.eu-central-1.postgres.vercel-storage.com:5432/verceldb?pgbouncer=true&connect_timeout=10&connection_limit=10
-
Analyzing and optimizing your queries
One way to solve this issue is to either reduce the number of queries being executed in the connection pool (modifying your code or introducing a cache) or reduce the execution duration.
-
Increasing the timeout duration of the connection pool
The default is 10 seconds. We recommend increasing this timeout duration after you have increased the
connection_limit
otherwise, you can run out of RAM. You can learn more about optimizing the connection pool timeout in Prisma's documentation..envDATABASE_URL=postgres://default:<password>@ep-lingering-cell-123456.eu-central-1.postgres.vercel-storage.com:5432/verceldb?pgbouncer=true&connect_timeout=10&connection_limit=10&pool_timeout=20
This error is thrown when attempting to use the pooled connection string with Prisma and the ?pgbouncer=true
parameter is missing. Adding ?pgbouncer=true
to the end of the query string will resolve this.
Was this helpful?