NextJSでprismaを使用してDBを操作した際にTypeError: The "payload" argument must be of type object. Received null`

背景

  • NextJS製のアプリケーションを作っていて、prismaでDBを操作した際にタイトルのエラーが発生した
  • NextJS 15で発生するものらしい

対応方法

GitHubのissueを参照

  • 下記のissueが作成されている

github.com

  • issue作成者の方は prisma.someTable.createで発生したと言っているが、私は prisma.someTable.createManyで発生した
    • もしかしたら他のメソッドでも発生するのかも

解決方法

  • 参考情報

To temporarily work around this issue, you need to remove the line //# sourceMappingURL=library.js.map from node_modules/@prisma/client/runtime/library.js.

  • node_modulesディレクトリの中にある依存ライブラリのスクリプトを直接編集することで解消できた
    • node_modules/@prisma/client/runtime/library.js.の以下の部分を削除する
//# sourceMappingURL=library.js.map // これを削除

patch-packageの実施

  • node_modulesを削除して再度 npm ciなどをした場合に自動的に上記の変更が適用されるようにしておきべき
    • これについても issue のコメントに記述がある
    • ただしコメントのとおり npm i -D patch-packageとすると、production環境向け環境で npm ciしたときに patch-packageがインストールされない
      • -D (--save-dev)は開発環境向け( NODE_ENV=development )のときにインストールされる
      • npm i --save patch-packageでインストールしたほうがいいのかな(または NODE_ENV=development npm ciとしてインストールするとか?)

参考情報

関連issue

github.com