Skip to content

[Bug]: Upload field inside Array (nested in Rich Text) causes UI freeze and becomes non-interactive when adding images #15978

Description

@robinnicholasraja

Description

When an upload field is placed inside an array field — which itself is nested inside a Lexical rich text block — adding an image via the upload field causes the entire admin UI to completely freeze and become non-interactive. The screen stops responding to any user input (buttons, links, form fields all become unclickable). The only way to recover is to refresh the page, losing any unsaved work.

Environment

  • Payload version: 3.79.1
  • Node.js version: 22.16.0
  • Affected package: @payloadcms/richtext-lexical, @payloadcms/ui
  • Database adapter: @payloadcms/db-postgres 3.79.1
  • Next.js version: 15.4.11
  • React version: 19.2.1
  • OS: macOS ARM64 (Darwin Kernel Version 25.3.0)

Steps to Reproduce

  1. Clone my fork and install dependencies:
    git clone https://github.com/robinnicholasraja/payload.git
    cd payload
    pnpm install
  2. Boot the test admin UI:
    pnpm dev _community
  3. Log in with the default test credentials (dev@payloadcms.com / test)
  4. Navigate to the Posts collection and create a new post
  5. In the Rich Text field, add the "Gallery" block
  6. Inside the Gallery block, add a new row to the array
  7. In that array row, click the Upload field to select or upload an image
  8. Observe: The entire admin UI freezes completely and becomes non-interactive

Expected Behavior

Adding an image through the upload field inside a nested array within a Lexical rich text block should work normally — the image should be selected/uploaded and the UI should remain responsive.

Actual Behavior

The UI becomes completely frozen and non-interactive after attempting to add/select an image via the upload field. No buttons, links, or form fields respond to clicks. A full page refresh is required to recover, and any unsaved work is lost.

Reproduction

Fork: https://github.com/robinnicholasraja/payload

Clone and run:

git clone https://github.com/robinnicholasraja/payload.git
cd payload
pnpm install
pnpm dev _community

The minimal reproduction config is located in test/_community/config.ts.

Additional Context

  • A screen recording demonstrating the freeze behavior is attached below.
  • The issue does not occur when the upload field is placed directly inside a block (without the intermediate array field).
  • The issue does not occur when the upload field is inside an array that is outside of a rich text block.
  • This suggests the freeze is specific to the combination of Rich Text (Lexical) → Block → Array → Upload.
Payload-bug.mp4

Metadata

Metadata

Assignees

Labels

Bugarea: uiRelated to the admin panel.

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions