I can reproduce a draft conflict on meta.discourse.org when creating two new-topic drafts using the native c keyboard shortcut while viewing an existing topic.
Steps to reproduce
- Open an existing public topic.
- Press
cto create a new topic. - Enter a title and body.
- Wait for the draft to save, then click the composer’s Save and close button (X).
- While still viewing an existing topic, press
cagain to create another new topic. - Enter a different title.
- Press Tab to move from the title field to the message body and wait for autosave.
Both new-topic composers must be opened while viewing an existing topic for the reproduction I confirmed on Meta.
Actual result
A warning appears saying that the draft is being edited in another window and asking me to reload the page.
This happens without editing the draft in another window.
On my own site, the failed autosave request to /drafts.json returns HTTP 409.
Expected result
The second new topic should get its own draft, preserving the first saved draft without a conflict.
Where I reproduced it
- On meta.discourse.org, following the steps above.
- On my own site in Safe Mode, with themes and all client-side plugin customizations disabled.
- My site runs Discourse
2026.10.0-latest, commitb28f2a44c.
Possible cause
Code inspection suggests that the fallback in KeyboardShortcuts#createTopic still uses the fixed Composer.NEW_TOPIC_KEY (new_topic) and does not supply a draftSequence:
By comparison, composer.openNewTopic() generates a unique draft key.
In the reproduction captured on my site, the first draft was saved under new_topic and reached sequence 1. The second composer attempted to save under the same key without a sequence, resulting in HTTP 409 and the warning.
Could this fallback use composer.openNewTopic() so that each new topic gets a separate draft?
Kind regards,
Prof. Caju