Skip to content

E-commerce seeding error with SQLite #13993

@romatou

Description

@romatou

Describe the Bug

On clean install via pnpm create-payload-app -t ecommerce and choosing sqlite after creating user and seeding data an error appears:

[10:18:14] INFO: Seeding database...
[10:18:14] INFO: — Clearing collections and globals...
[10:18:14] INFO: — Seeding customer and customer data...
[10:18:14] INFO: — Seeding media...
[10:18:15] INFO: — Seeding variant types and options...
 POST /next/seed 500 in 1638ms
[10:18:15] INFO: — Seeding products...
[10:18:15] ERROR: Failed query: select "id", (select coalesce(json_group_array(json_object('id',"variants_alias".id)), '[]') from (select "product_id", "created_at", "id" from "variants" "6b062520_db7c_4f06_aafe_93702f770a4f" where ("6b062520_db7c_4f06_aafe_93702f770a4f"."product_id" = "products"."id" and ("6b062520_db7c_4f06_aafe_93702f770a4f"."id" is null or "6b062520_db7c_4f06_aafe_93702f770a4f"."id" <> ?)) order by "6b062520_db7c_4f06_aafe_93702f770a4f"."created_at" desc limit ?) "variants_alias") as "variants_alias", (select coalesce(json_group_array(json_array("order", "path", "pages_id", "variant_types_id", "products_id", "categories_id")), json_array()) as "data" from (select * from "products_rels" "products__rels" where "products__rels"."parent_id" = "products"."id" order by "products__rels"."order" asc) "products__rels") as "_rels" from "products" "products" where ("products"."id" = ? and "products"."deleted_at" is null) order by "products"."created_at" desc limit ?
params: ,11,2,1
    message: "Error seeding data"
    err: {
      "type": "DrizzleQueryError",
      "message": "Failed query: select \"id\", (select coalesce(json_group_array(json_object('id',\"variants_alias\".id)), '[]') from (select \"product_id\", \"created_at\", \"id\" from \"variants\" \"6b062520_db7c_4f06_aafe_93702f770a4f\" where (\"6b062520_db7c_4f06_aafe_93702f770a4f\".\"product_id\" = \"products\".\"id\" and (\"6b062520_db7c_4f06_aafe_93702f770a4f\".\"id\" is null or \"6b062520_db7c_4f06_aafe_93702f770a4f\".\"id\" <> ?)) order by \"6b062520_db7c_4f06_aafe_93702f770a4f\".\"created_at\" desc limit ?) \"variants_alias\") as \"variants_alias\", (select coalesce(json_group_array(json_array(\"order\", \"path\", \"pages_id\", \"variant_types_id\", \"products_id\", \"categories_id\")), json_array()) as \"data\" from (select * from \"products_rels\" \"products__rels\" where \"products__rels\".\"parent_id\" = \"products\".\"id\" order by \"products__rels\".\"order\" asc) \"products__rels\") as \"_rels\" from \"products\" \"products\" where (\"products\".\"id\" = ? and \"products\".\"deleted_at\" is null) order by \"products\".\"created_at\" desc limit ?\nparams: ,11,2,1: undefined cannot be passed as argument to the database",
      "stack":
          Error: Failed query: select "id", (select coalesce(json_group_array(json_object('id',"variants_alias".id)), '[]') from (select "product_id", "created_at", "id" from "variants" "6b062520_db7c_4f06_aafe_93702f770a4f" where ("6b062520_db7c_4f06_aafe_93702f770a4f"."product_id" = "products"."id" and ("6b062520_db7c_4f06_aafe_93702f770a4f"."id" is null or "6b062520_db7c_4f06_aafe_93702f770a4f"."id" <> ?)) order by "6b062520_db7c_4f06_aafe_93702f770a4f"."created_at" desc limit ?) "variants_alias") as "variants_alias", (select coalesce(json_group_array(json_array("order", "path", "pages_id", "variant_types_id", "products_id", "categories_id")), json_array()) as "data" from (select * from "products_rels" "products__rels" where "products__rels"."parent_id" = "products"."id" order by "products__rels"."order" asc) "products__rels") as "_rels" from "products" "products" where ("products"."id" = ? and "products"."deleted_at" is null) order by "products"."created_at" desc limit ?
          params: ,11,2,1
              at LibSQLPreparedQuery.queryWithCache (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/sqlite-core/session.js:57:15)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
              at async LibSQLPreparedQuery.values (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/libsql/session.js:205:12)
              at async LibSQLPreparedQuery.all (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/libsql/session.js:148:18)
              at async find (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected][email protected][email protected]_/node_modules/@payloadcms/drizzle/dist/find/findMany.js:123:21)
              at async Object.findOne (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected][email protected][email protected]_/node_modules/@payloadcms/drizzle/dist/findOne.js:12:22)
              at async findByIDOperation (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/findByID.js:115:35)
              at async eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected][email protected]._48a1187dccdebc385209e5a53a55bf1f/node_modules/@payloadcms/plugin-ecommerce/dist/collections/variants/createVariantsCollection/hooks/validateOptions.js:17:25)
              at async promise (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/payload/dist/fields/hooks/beforeChange/promise.js:109:38)
              at async Promise.all (index 2)
              at async traverseFields (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/payload/dist/fields/hooks/beforeChange/traverseFields.js:45:5)
              at async beforeChange (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/payload/dist/fields/hooks/beforeChange/index.js:22:5)
              at async createOperation (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/create.js:160:35)
              at async Promise.all (index 0)
              at async seed (webpack-internal:///(rsc)/./src/endpoints/seed/index.ts:284:120)
              at async POST (webpack-internal:///(rsc)/./src/app/(app)/next/seed/route.ts:37:9)
              at async AppRouteRouteModule.do (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:5:38696)
              at async AppRouteRouteModule.handle (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:5:45978)
              at async responseGenerator (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F(app)%2Fnext%2Fseed%2Froute&page=%2F(app)%2Fnext%2Fseed%2Froute&appPaths=&pagePath=private-next-app-dir%2F(app)%2Fnext%2Fseed%2Froute.ts&appDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!:203:38)
              at async AppRouteRouteModule.handleResponse (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:1:187565)
              at async handleResponse (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F(app)%2Fnext%2Fseed%2Froute&page=%2F(app)%2Fnext%2Fseed%2Froute&appPaths=&pagePath=private-next-app-dir%2F(app)%2Fnext%2Fseed%2Froute.ts&appDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!:265:32)
              at async handler (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F(app)%2Fnext%2Fseed%2Froute&page=%2F(app)%2Fnext%2Fseed%2Froute&appPaths=&pagePath=private-next-app-dir%2F(app)%2Fnext%2Fseed%2Froute.ts&appDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Froma%2FDeveloper%2Fboilerplates%2Fpayload%2Fecommerce&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!:317:13)
              at async DevServer.renderToResponseWithComponentsImpl (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/base-server.js:1422:9)
              at async DevServer.renderPageComponent (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/base-server.js:1474:24)
              at async DevServer.renderToResponseImpl (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/base-server.js:1514:32)
              at async DevServer.pipeImpl (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/base-server.js:1025:25)
              at async NextNodeServer.handleCatchallRenderRequest (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/next-server.js:393:17)
              at async DevServer.handleRequestImpl (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/base-server.js:916:17)
              at async /Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/dev/next-dev-server.js:399:20
              at async Span.traceAsyncFn (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/trace/trace.js:157:20)
              at async DevServer.handleRequest (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/dev/next-dev-server.js:395:24)
              at async invokeRender (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/lib/router-server.js:240:21)
              at async handleRequest (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/lib/router-server.js:437:24)
              at async requestHandlerImpl (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/lib/router-server.js:485:13)
              at async Server.requestListener (/Users/roma/Developer/boilerplates/payload/ecommerce/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected][email protected]/node_modules/next/dist/server/lib/start-server.js:226:13)
          caused by: TypeError: undefined cannot be passed as argument to the database
              at valueToSql (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@libsql/client/lib-esm/sqlite3.js:367:15)
              at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@libsql/client/lib-esm/sqlite3.js:248:45)
              at Array.map (<anonymous>)
              at executeStmt (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@libsql/client/lib-esm/sqlite3.js:248:30)
              at Sqlite3Client.execute (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]/node_modules/@libsql/client/lib-esm/sqlite3.js:92:16)
              at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/libsql/session.js:207:61)
              at LibSQLPreparedQuery.queryWithCache (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/sqlite-core/session.js:55:22)
              at LibSQLPreparedQuery.values (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/libsql/session.js:205:23)
              at LibSQLPreparedQuery.all (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/libsql/session.js:148:29)
              at QueryPromise.executeRaw (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/sqlite-core/query-builders/query.js:143:33)
              at QueryPromise.execute (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/sqlite-core/query-builders/query.js:146:17)
              at QueryPromise.then (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/drizzle-orm/query-promise.js:26:17)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      "query": "select \"id\", (select coalesce(json_group_array(json_object('id',\"variants_alias\".id)), '[]') from (select \"product_id\", \"created_at\", \"id\" from \"variants\" \"6b062520_db7c_4f06_aafe_93702f770a4f\" where (\"6b062520_db7c_4f06_aafe_93702f770a4f\".\"product_id\" = \"products\".\"id\" and (\"6b062520_db7c_4f06_aafe_93702f770a4f\".\"id\" is null or \"6b062520_db7c_4f06_aafe_93702f770a4f\".\"id\" <> ?)) order by \"6b062520_db7c_4f06_aafe_93702f770a4f\".\"created_at\" desc limit ?) \"variants_alias\") as \"variants_alias\", (select coalesce(json_group_array(json_array(\"order\", \"path\", \"pages_id\", \"variant_types_id\", \"products_id\", \"categories_id\")), json_array()) as \"data\" from (select * from \"products_rels\" \"products__rels\" where \"products__rels\".\"parent_id\" = \"products\".\"id\" order by \"products__rels\".\"order\" asc) \"products__rels\") as \"_rels\" from \"products\" \"products\" where (\"products\".\"id\" = ? and \"products\".\"deleted_at\" is null) order by \"products\".\"created_at\" desc limit ?",
      "params": [
        null,
        11,
        2,
        1
      ]
    }

Link to the code that reproduces this issue

https://github.com/romatou/payload-ecommerce-boilerplate

Reproduction Steps

  1. Run pnpm create-payload-app -t ecommerce
  2. Choose SQLite
  3. Run pnpm dev
  4. Create user with admin role
  5. Select seed database

Which area(s) are affected? (Select all that apply)

plugin: other

Environment Info

Binaries:
  Node: 20.19.2
  npm: 10.8.2
  Yarn: N/A
  pnpm: 10.17.1
Relevant Packages:
  payload: 3.58.0
  next: 15.5.4
  @payloadcms/email-nodemailer: 3.58.0
  @payloadcms/graphql: 3.58.0
  @payloadcms/live-preview: 3.58.0
  @payloadcms/live-preview-react: 3.58.0
  @payloadcms/next/utilities: 3.58.0
  @payloadcms/plugin-form-builder: 3.58.0
  @payloadcms/plugin-seo: 3.58.0
  @payloadcms/richtext-lexical: 3.58.0
  @payloadcms/translations: 3.58.0
  @payloadcms/ui/shared: 3.58.0
  react: 19.1.1
  react-dom: 19.1.1
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.0.0: Wed Sep 17 21:41:26 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T6041
  Available memory (MB): 24576
  Available CPU cores: 14

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions