Folders(v3): Changing folder on draft documents does not reflect in folder view until published
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- nextjs, typescript
Research direction
Start with the admin folder view and trace how a document's folder location is queried when drafts are enabled; compare that path with the existing draft-title and table-view behavior. Reproduce the move using the linked payload-testing repository, then verify that an unpublished folder change appears in the new folder and add coverage for the draft case.
Written by the indexing model from the issue text.
Description
Describe the Bug
When moving or creating a document inside a folder within a collection that has versions: { drafts: true }, changing the folder on a draft does not update the document's location in the folder view until the document is published.
Following the fix in #17412 (which made the folder view prefer draft titles), the folder location is still queried from the published state, leaving draft documents in their old folder (or orphaned if newly created as a draft) until published.
For a better user experience, I think it is better to show the element in the new location to be more intuitive and consistent with the title or how the table view works, where all the values are fetched from the draft version.
I'm available to fix it.
Link to the code that reproduces this issue
https://github.com/XedaGmr/payload-testing
Reproduction Steps
- Configure a collection with both
folders: trueandversions: { drafts: true }. - Create two folders:
Folder AandFolder B. - Create a document in
Folder Aand publish it. - Edit the document and change its folder to
Folder Bwithout publishing it. - Navigate back to the admin folder view.
The reproduction repository is already seeded with a test SQLite DB (payload-testing.db):
- email:
[email protected] - password:
Test123!
Visual Proof
Inside Test Folder 1 is possible to find the Test Post item.
The value assigned to the item is Test Folder 2
Which area(s) are affected?
area: ui
Environment Info
Binaries:
Node: 24.15.0
npm: 11.12.1
Yarn: N/A
pnpm: 11.0.9
Relevant Packages:
payload: 3.90.2
next: 16.3.3
@payloadcms/db-sqlite: 3.90.2
@payloadcms/drizzle: 3.90.2
@payloadcms/graphql: 3.90.2
@payloadcms/live-preview: 3.90.2
@payloadcms/live-preview-react: 3.90.2
@payloadcms/next/utilities: 3.90.2
@payloadcms/plugin-form-builder: 3.90.2
@payloadcms/plugin-nested-docs: 3.90.2
@payloadcms/plugin-redirects: 3.90.2
@payloadcms/plugin-search: 3.90.2
@payloadcms/plugin-seo: 3.90.2
@payloadcms/richtext-lexical: 3.90.2
@payloadcms/translations: 3.90.2
@payloadcms/ui/shared: 3.90.2
react: 19.2.6
react-dom: 19.2.6
Operating System:
Platform: linux
Arch: x64
Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Aug 2026 11:47:30 +0000
Available memory (MB): 15384
Available CPU cores: 12
- Dominant language
- TypeScript
- Stars
- 45.5k
- Forks
- 4.3k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 295
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from payloadcms/payload
-
Bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
payloadcms/payload#19060 ·
Maintainers usually reply within 1 day
-
WhereBuilder throws "Cannot read properties of undefined (reading 'value')" when the list URL filters on a field that is not filterablePossibly taken A pull request linked to this issue is open or already merged. OpenBug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
payloadcms/payload#19002 · 1 comment ·
Maintainers usually reply within 1 day
-
Regression: `findByID` with `disableErrors: true` throws `NotFound` for null/empty ids since 3.91.0Possibly taken @Krrishkumar125 claimed this 4 days ago. Openarea: core Bug invalid-reproduction status: needs-triage v3
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
payloadcms/payload#18935 · 1 comment ·
Maintainers usually reply within 1 day
-
bug: Local API call with req resets req.fallbackLocale to defaultLocalePossibly taken A pull request linked to this issue is open or already merged. Openarea: core Bug created-by: Contributor
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
payloadcms/payload#18768 ·
Maintainers usually reply within 1 day
-
[plugin-multi-tenant] Infinite redirect loop with custom tenantFieldName and isGlobal collectionsPossibly taken A pull request linked to this issue is open or already merged. OpenBug plugin: multi-tenant status: needs-triage v3
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
payloadcms/payload#18690 ·
Maintainers usually reply within 1 day
All issues in payloadcms/payload
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
grafana/profiles-drilldown#1212 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
grafana/traces-drilldown#980 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
openremote/openremote#3487 · 1 comment ·
-
triage:needs-human
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
garrytan/gbrain#7635 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
coollabsio/jean#867 ·
Maintainers usually reply within 1 day