payloadcms / payload

Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instantly. Use Payload as a headless CMS or for building powerful applications.
https://payloadcms.com
MIT License
23.56k stars 1.5k forks source link

Editing relationship with upload causes error #8089

Open andershermansen opened 3 weeks ago

andershermansen commented 3 weeks ago

Link to reproduction

https://github.com/andershermansen/payload/commit/97ccef10741669fb2d4afe82f188d81133e542fe

Environment Info

Payload: beta branch as of commit b69826a81e2f5ffc2cc393b3a97b377fa4c0d553
Node.js: v22.6.0
Next.js: 15.0.0-canary.104

Describe the Bug

When editing a post and then going further to editing a relationship item with an upload item. Error is shown:

[11:34:40] ERROR: aborted
    err: {
      "type": "Error",
      "message": "aborted",
      "stack":
          Error: aborted
              at abortIncoming (node:_http_server:803:17)
              at socketOnClose (node:_http_server:797:3)
              at Socket.emit (node:events:532:35)
              at TCP.<anonymous> (node:net:337:12)
              at TCP.callbackTrampoline (node:internal/async_hooks:130:17)
      "code": "ECONNRESET"
    }
[11:34:40] ERROR: There was an error building form state
    err: {
      "type": "TypeError",
      "message": "Cannot read properties of undefined (reading 'length')",
      "stack":
          TypeError: Cannot read properties of undefined (reading 'length')
              at buildFormState (webpack-internal:///(rsc)/./node_modules/.pnpm/@payloadcms+ui@3.0.0-beta.98_monaco-editor@0.51.0_next@15.0.0-canary.104_payload@3.0.0-beta.9_2bpqri5ynenwstwimyti3s4jni/node_modules/@payloadcms/ui/dist/utilities/buildFormState.js:69:26)
              at Object.buildFormState [as form-state] (webpack-internal:///(rsc)/./node_modules/.pnpm/@payloadcms+next@3.0.0-beta.98_graphql@16.9.0_monaco-editor@0.51.0_next@15.0.0-canary.104_pay_4soyxkxc3r34xgzonlhurhktf4/node_modules/@payloadcms/next/dist/routes/rest/buildFormState.js:21:113)
              at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/@payloadcms+next@3.0.0-beta.98_graphql@16.9.0_monaco-editor@0.51.0_next@15.0.0-canary.104_pay_4soyxkxc3r34xgzonlhurhktf4/node_modules/@payloadcms/next/dist/routes/rest/index.js:589:45)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
              at async /Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:65696
              at async eN.execute (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:55802)
              at async eN.handle (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:66997)
              at async doRender (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:1435:42)
              at async responseGenerator (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:1682:40)
              at async DevServer.renderToResponseWithComponentsImpl (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:1721:28)
              at async DevServer.renderPageComponent (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:2058:24)
              at async DevServer.renderToResponseImpl (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:2096:32)
              at async DevServer.pipeImpl (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:946:25)
              at async NextNodeServer.handleCatchallRenderRequest (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/next-server.js:276:17)
              at async DevServer.handleRequestImpl (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/base-server.js:839:17)
              at async /Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/dev/next-dev-server.js:378:20
              at async Span.traceAsyncFn (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/trace/trace.js:157:20)
              at async DevServer.handleRequest (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/dev/next-dev-server.js:375:24)
              at async invokeRender (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/lib/router-server.js:176:21)
              at async handleRequest (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/lib/router-server.js:353:24)
              at async requestHandlerImpl (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/lib/router-server.js:377:13)
              at async Server.requestListener (/Users/anders/code/adsign/modena-cms/node_modules/.pnpm/next@15.0.0-canary.104_@babel+core@7.24.5_react-dom@19.0.0-rc-06d0b89e-20240801_react@19.0.0-rc-06d0b89e-20240801/node_modules/next/dist/server/lib/start-server.js:142:13)
    }

Reproduction Steps

  1. Add a new item in Something collection with an image
  2. Add a new item in Posts collection using item from step 1 as Something relation
  3. Save
  4. Inside the Posts item click on the icon to edit the something relation Skjermbilde 2024-09-06 kl  12 25 19

Actual: Showing error in description above Upload field not loading in UI Skjermbilde 2024-09-06 kl  12 25 38

Expected: Showing the something item and the current image in upload field in UI

Adapters and Plugins

No response

andershermansen commented 2 days ago

Rebased this change on top of v3.0.0-beta.109 (e900e89) and retested. Issue is still there with another message. Using the exact same steps as in my first message.

Rebased reproduction repo: https://github.com/andershermansen/payload/commit/15b65cfb087139eb74adfb0da4099e103eb9d4b3

Error

[09:02:52] ERROR: There was an error building form state
    err: {
      "type": "Error",
      "message": "Could not find field schema for given path \"undefined\"",
      "stack":
          Error: Could not find field schema for given path "undefined"
              at buildFormState (webpack://payload-monorepo/packages/ui/src/utilities/buildFormState.ts?5551:106:11)
              at req (webpack://payload-monorepo/packages/next/src/routes/rest/buildFormState.ts?f253:16:42)
              at eval (webpack://payload-monorepo/packages/next/src/routes/rest/index.ts?6b6f:579:47)
              at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
              at async <anonymous> (webpack://next/dist/src/server/route-modules/app-route/module.ts:569:29)
              at async AppRouteRouteModule.execute (webpack://next/dist/src/server/route-modules/app-route/module.ts:304:31)
              at async AppRouteRouteModule.handle (webpack://next/dist/src/server/route-modules/app-route/module.ts:668:24)
              at async doRender (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:2498:30)
              at async responseGenerator (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:2982:22)
              at async DevServer.renderToResponseWithComponentsImpl (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:2994:24)
              at async DevServer.renderPageComponent (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:3502:16)
              at async DevServer.renderToResponseImpl (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:3564:24)
              at async DevServer.pipeImpl (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:1696:21)
              at async DevServer.NextNodeServer.handleCatchallRenderRequest (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/next-server.ts:1015:7)
              at async DevServer.handleRequestImpl (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/base-server.ts:1456:9)
              at async <anonymous> (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/dev/next-dev-server.ts:508:14)
              at async Span.traceAsyncFn (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/trace/trace.ts:147:14)
              at async DevServer.handleRequest (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/dev/next-dev-server.ts:506:20)
              at async invokeRender (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/lib/router-server.ts:284:11)
              at async handleRequest (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/lib/router-server.ts:530:16)
              at async requestHandlerImpl (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/lib/router-server.ts:576:7)
              at async Server.requestListener (/Users/anders/code/payload/node_modules/.pnpm/next@15.0.0-canary.160_@playwright+test@1.46.0_babel-plugin-macros@3.1.0_babel-plugin-react-c_6o3zvyeebknc3sa2id2flxeov4/node_modules/next/src/server/lib/start-server.ts:146:7)
    }