Skip to content

Bulk upload: Media files without filename not handled correctly #14512

@skrzepij

Description

@skrzepij

Describe the Bug

When performing a bulk upload in Payload CMS (Media section), if filenames are deleted from any of the selected files before saving, the system redirects with a generic success message and displays all media.

However, files without a filename are not actually uploaded. No error message is provided to inform the user. The problem is only visible in the browser's network tab, where errors occur for those requests.​

Expected behavior:

Either:

  • Only files with valid filenames are uploaded. If a filename is missing, show an error ("A filename is required") for each such file—just like in single file upload,

  • Or display a global error message indicating that files without a filename have not been added.

Actual behavior:

  • A success message is shown, and the user is redirected to the list of media.

  • Files without a filename are not uploaded, with no feedback to the user; only the network/devtools shows an error for the failed requests.​

Relevant history:

The recent fix (PR #13414) resolved this scenario for single file uploads but not for bulk uploads.
Related issue: #13410

Attachments:

Screenshot from devtools (Network tab) showing the failed requests.

Image

Link to the code that reproduces this issue

https://github.com/payloadcms/payload

Reproduction Steps

  1. Log in to Payload CMS and navigate to Media.
  2. Click Bulk Upload.
  3. Click Select a file and choose multiple files (e.g., 3 images) from the local disk.
  4. In the form, remove the filename from one or more files.
  5. Click Save.
  6. Check if all selected files have been added successfully.

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

area: ui, Not sure

Environment Info

Binaries:
  Node: 22.14.0
  pnpm: 10.3.0
Relevant Packages:
  payload: 3.59.1
  next: 15.4.4
  @payloadcms/db-sqlite: 3.59.1
  @payloadcms/drizzle: 3.59.1
  @payloadcms/email-nodemailer: 3.59.1
  @payloadcms/graphql: 3.59.1
  @payloadcms/live-preview: 3.59.1
  @payloadcms/live-preview-react: 3.59.1
  @payloadcms/next/utilities: 3.59.1
  @payloadcms/payload-cloud: 3.59.1
  @payloadcms/richtext-lexical: 3.59.1
  @payloadcms/translations: 3.59.1
  @payloadcms/ui/shared: 3.59.1

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