Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ObjectParameterError thrown when checking "Fallback to default locale" on a localized array and saving the non default locale version of a document #11245

Open
devj3ns opened this issue Feb 18, 2025 · 0 comments
Labels
status: needs-triage Possible bug which hasn't been reproduced yet

Comments

@devj3ns
Copy link

devj3ns commented Feb 18, 2025

Describe the Bug

For localized array fields, inside the non default locale version of the doc, the "Fallback to default locale" checkbox is shown:

Image

When checking the box and saving the document, the following error is thrown and therefore the "Something went wrong" toast is shown:

Show error with stack trace
[07:37:53] ERROR: Cast to embedded failed for value "true" (type boolean) at path "de" because of "ObjectParameterError"
    err: {
      "type": "CastError",
      "message": "Cast to embedded failed for value \"true\" (type boolean) at path \"de\" because of \"ObjectParameterError\"",
      "stack":
          CastError: Cast to embedded failed for value "true" (type boolean) at path "de" because of "ObjectParameterError"
              at SchemaDocumentArray.cast (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/documentArray.js:501:19)
              at SchemaDocumentArray.cast (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/documentArray.js:426:17)
              at SchemaType.applySetters (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schemaType.js:1255:12)
              at SingleNested.$set (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:1443:22)
              at SingleNested.$set (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:1137:16)
              at SingleNested.Document (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:178:12)
              at SingleNested.Subdocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/types/subdocument.js:34:12)
              at new SingleNested (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/subdocument.js:78:21)
              at SchemaSubdocument.castForQuery (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/subdocument.js:234:11)
              at walkUpdatePath (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/helpers/query/castUpdate.js:301:37)
              at castUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/helpers/query/castUpdate.js:134:7)
              at model.Query._castUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:4685:10)
              at model.Query._findOneAndUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:3420:23)
              at model.Query.exec (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:4438:80)
              at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
              at async Object.updateOne (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected]_graphql@16_jogjuq2a6rtb3bus7pohc5babu/node_modules/@payloadcms/db-mongodb/dist/updateOne.js:46:18)
              at async updateDocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/utilities/update.js:208:18)
              at async updateByIDOperation (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/updateByID.js:110:22)
              at async updateByIDHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/endpoints/updateByID.js:27:17)
              at async handleEndpoints (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/utilities/handleEndpoints.js:177:26)
              at async eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected][email protected][email protected]__ttnr5ggf52pgq7zbwhzctlo45a/node_modules/@payloadcms/next/dist/routes/rest/index.js:27:20)
              at async AppRouteRouteModule.do (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:10:32847)
              at async AppRouteRouteModule.handle (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:10:39868)
              at async doRender (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1452:42)
              at async responseGenerator (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1822:28)
              at async DevServer.renderToResponseWithComponentsImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1832:28)
              at async DevServer.renderPageComponent (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:2259:24)
              at async DevServer.renderToResponseImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:2297:32)
              at async DevServer.pipeImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:959:25)
              at async NextNodeServer.handleCatchallRenderRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\next-server.js:281:17)
              at async DevServer.handleRequestImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:853:17)
              at async C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\dev\next-dev-server.js:371:20
              at async Span.traceAsyncFn (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\trace\trace.js:153:20)
              at async DevServer.handleRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\dev\next-dev-server.js:368:24)
              at async invokeRender (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:230:21)
              at async handleRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:408:24)
              at async requestHandlerImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:432:13)
              at async Server.requestListener (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\start-server.js:146:13)
      "stringValue": "\"true\"",
      "kind": "embedded",
      "value": true,
      "path": "de",
      "reason": {
        "type": "ObjectParameterError",
        "message": "Parameter \"obj\" to Document() must be an object, got \"true\" (type boolean)",        
        "stack":
            ObjectParameterError: Parameter "obj" to Document() must be an object, got "true" (type boolean)
                at EmbeddedDocument.Document (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:123:11)
                at EmbeddedDocument.Subdocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/types/subdocument.js:34:12)
                at EmbeddedDocument.ArraySubdocument [as constructor] (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/types/arraySubdocument.js:44:15)
                at new EmbeddedDocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/documentArray.js:130:17)
                at SchemaDocumentArray.cast (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/documentArray.js:495:22)
                at SchemaDocumentArray.cast (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/documentArray.js:426:17)
                at SchemaType.applySetters (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schemaType.js:1255:12)
                at SingleNested.$set (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:1443:22)
                at SingleNested.$set (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:1137:16)
                at SingleNested.Document (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/document.js:178:12)
                at SingleNested.Subdocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/types/subdocument.js:34:12)
                at new SingleNested (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/subdocument.js:78:21)
                at SchemaSubdocument.castForQuery (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/schema/subdocument.js:234:11)
                at walkUpdatePath (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/helpers/query/castUpdate.js:301:37)
                at castUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/helpers/query/castUpdate.js:134:7)
                at model.Query._castUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:4685:10)
                at model.Query._findOneAndUpdate (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:3420:23)
                at model.Query.exec (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected]_@[email protected]/node_modules/mongoose/lib/query.js:4438:80)
                at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
                at async Object.updateOne (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected]_graphql@16_jogjuq2a6rtb3bus7pohc5babu/node_modules/@payloadcms/db-mongodb/dist/updateOne.js:46:18)
                at async updateDocument (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/utilities/update.js:208:18)
                at async updateByIDOperation (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/operations/updateByID.js:110:22)
                at async updateByIDHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/collections/endpoints/updateByID.js:27:17)
                at async handleEndpoints (webpack-internal:///(rsc)/./node_modules/.pnpm/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]/node_modules/payload/dist/utilities/handleEndpoints.js:177:26)
                at async eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@[email protected]_@[email protected][email protected][email protected][email protected]__ttnr5ggf52pgq7zbwhzctlo45a/node_modules/@payloadcms/next/dist/routes/rest/index.js:27:20)
                at async AppRouteRouteModule.do (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:10:32847)
                at async AppRouteRouteModule.handle (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\compiled\next-server\app-route.runtime.dev.js:10:39868)
                at async doRender (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1452:42)
                at async responseGenerator (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1822:28)
                at async DevServer.renderToResponseWithComponentsImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:1832:28)
                at async DevServer.renderPageComponent (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:2259:24)
                at async DevServer.renderToResponseImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:2297:32)
                at async DevServer.pipeImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:959:25)
                at async NextNodeServer.handleCatchallRenderRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\next-server.js:281:17)
                at async DevServer.handleRequestImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\base-server.js:853:17)
                at async C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\dev\next-dev-server.js:371:20
                at async Span.traceAsyncFn (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\trace\trace.js:153:20)
                at async DevServer.handleRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\dev\next-dev-server.js:368:24)
                at async invokeRender (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:230:21)
                at async handleRequest (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:408:24)
                at async requestHandlerImpl (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\router-server.js:432:13)
                at async Server.requestListener (C:\Users\jensb\Documents\GitHubProjects\arbeit\payload-nullify-field-bug\node_modules\.pnpm\[email protected][email protected][email protected][email protected][email protected]\node_modules\next\dist\server\lib\start-server.js:146:13)
      },
      "valueType": "boolean"
    }

This bug occurs when using the mongodb adapter, I could not test if it also happens when using postgres. The above checkbox is implemented in the NullifyField component.

The issue was also reported by other devs on the discord server.

Thanks in advance payload team 🖤

Link to the code that reproduces this issue

https://github.com/devj3ns/payload-nullify-field-bug

Reproduction Steps

  1. Run the reproduction payload app
  2. Create a new document in the default locale, add at least one array entry
  3. Switch to the non default locale
  4. Check the "Fallback to default locale" checkbox
  5. Save the document
  6. The error is thrown and the "Something went wrong" toast shown

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

area: ui

Environment Info

Binaries:
  Node: 22.13.0
  npm: N/A
  Yarn: N/A
  pnpm: N/A
Relevant Packages:
  payload: 3.23.0
  next: 15.1.5
  @payloadcms/db-mongodb: 3.23.0
  @payloadcms/email-nodemailer: 3.23.0
  @payloadcms/graphql: 3.23.0
  @payloadcms/next/utilities: 3.23.0
  @payloadcms/payload-cloud: 3.23.0
  @payloadcms/richtext-lexical: 3.23.0
  @payloadcms/translations: 3.23.0
  @payloadcms/ui/shared: 3.23.0
  react: 19.0.0
  react-dom: 19.0.0
Operating System:
  Platform: win32
  Arch: x64
  Version: Windows 11 Home
  Available memory (MB): 32694
  Available CPU cores: 24
@devj3ns devj3ns added status: needs-triage Possible bug which hasn't been reproduced yet validate-reproduction labels Feb 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: needs-triage Possible bug which hasn't been reproduced yet
Projects
None yet
Development

No branches or pull requests

1 participant