Skip to main content

Known limitations

Below are descriptions of known limitations when using Prisma Pulse. If you are aware of any limitations that are missing, please let us know on the #help-and-questions channel in our community Discord.

Superuser role required for starter plan

Our Starter plan requires a database role with superuser access.

Prisma Pulse is server-side

Prisma Pulse streams cannot be initiated directly within client-side code. To receive events in real-time, Prisma Client needs to open a stream on a long-running server.

To propagate events to the frontend, you can use a WebSocket library like socket.io.

Limited to Postgres versions 12 or higher

Prisma Pulse is currently supported with Postgres versions 12 or higher. It should work with most Postgres providers that expose Postgres’ native logical replication feature.

Subscription type limitation with custom publication slots

The onboarding flow in the Console enables you to provide a custom publication slot. Should that custom publication slot only contain a subset of your database tables, the Prisma Client instance generated with the Pulse extension will continue to permit streams to all models based on the entirety of your Prisma Schema definitions.

For example, if you have two models in your schema, the User and Post model. And you opt to create a publication to monitor changes in the User model exclusively:

CREATE PUBLICATION user_publication FOR TABLE users;

To learn more about creating custom publication slots, see managing your publication slot.

Your resulting code would be:

const userStream = prisma.user.stream()

However, despite the absence of publication coverage, the generated Prisma Client permits streams for all models, such as the Post model:

const postStream = prisma.post.stream()

We are actively working on enhancing type generation for custom publications as part of our ongoing efforts to further refine Prisma Pulse.

Size limit for database events

The size limit of database events depends on your subscription plan.

Note that database events are base64 encoded for transmission. The size limit applies to the encoded not the original size of the event.

If your events exceed the size limit, they will be rejected by Prisma Pulse and won't arrive on the receiver side. You can see how many events have been rejected by Prisma Pulse in the Pulse Dashboard in the .

Static IP cannot be enabled for existing Pulse-enabled environments

Currently, static IP cannot be enabled for an existing Pulse-enabled environment. To use static IP, you must opt-in to use static IP when enabling Pulse in a new environment. As a workaround, create a new environment in your project with the same database connection string as your current Pulse-enabled environment in order to gain static IP support for Pulse.