← flaviocopes.com

How to fix the `Already 10 Prisma Clients are actively running` error

Published May 15 2021

⚠️⚠️ JUST A FEW HOURS LEFT to JOIN THE 2023 BOOTCAMP ⚠️⚠️

I was using Prisma in my Next.js app and I was doing it wrong.

I was initializing a new PrismaClient object in every page:

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

After some point, during app usage, I received the error Already 10 Prisma Clients are actively running and also a Address already in use.

To fix this, I exported this Prisma initialization to a separate file, lib/prisma.js:

import { PrismaClient } from '@prisma/client'

let prisma

if (process.env.NODE_ENV === 'production') {
  prisma = new PrismaClient()
} else {
  if (!global.prisma) {
    global.prisma = new PrismaClient()
  }
  prisma = global.prisma
}

export default prisma

The production check is done because in development, npm run dev clears the Node.js cache at runtime, and this causes a new PrismaClient initialization each time due to hot reloading, so we’d not solve the problem.

I took this code from https://www.prisma.io/docs/support/help-articles/nextjs-prisma-client-dev-practices

Finally I imported the exported prisma object in my pages:

import prisma from 'lib/prisma'


Wanna go from noobie to expert?

I wrote an entire book on this topic 👇

© 2023 Flavio Copes Flavio Copes using Notion to Site Notion to Site

Interested in solopreneurship?