nextcloud / nextcloud/notes

Reproducible "The document has been changed outside of the editor. The changes cannot be applied."

Open
#1,083 17 comments 28 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature: Rich Text need to reproduce
Dominant language
JavaScript
Stars
738
Forks
162
Avg merge
6h 2m
Merged PRs (30d)
35

Description

The Rich Text Editor continues to get in my way and provoking data loss due to lost changes. The main reason is that the editor shows the The document has been changed outside of the editor. The changes cannot be applied.-dialogue and leaves the user to pick the right button.

There are several constellations this error occurs consistently in any of the following cases:

  • Switching from Rich Text to Plain Editor and back
  • Sharing a note file across users and editing in turns
  • Editing the markdown externally via file sync

Steps to reproduce

  1. Edit & create a note. Ensure it is saved by clicking the check mark with the red dot in the UI.
  2. In Settings: Change Display mode to Open in edit mode
  3. Edit something. Save it with [Ctrl-S]
  4. In Settings: Change Display mode back to Open in rich text mode
  5. Conflict dialogue appears

On similar lines one can provoke/reproduce the same error for any of the other use-cases.

Expected behaviour

The rich-text editor should not keep any (outdated) cached version directly after save and claim potential data-loss or differences to the stored version.

Instead it should start fresh from the saved version in any case you left it saved.

Actual behaviour
  • You are always presented with a conflict resolution screen
  • In case you did external edits, you will have differences
  • The rich text editor even presents outdated/stale version.

Honestly: I don't understand the whole need for background caching across editor sessions.

Server

Please complete the following information.

  • Notes app version: 4.8.1 (up-to-date)
  • Nextcloud version: 27.0.1 (up-to-date)
  • OS: Linux
  • Web server: Apache (Official Nextcloud Docker Container)
  • PHP version: 8.2.8 (Official Nextcloud Docker Container)
  • Database: pqsql (Official Nextcloud Docker Container)

Nextcloud configuration:

``` { "system": { "htaccess.RewriteBase": "\/", "memcache.local": "\\OC\\Memcache\\APCu", "apps_paths": [ { "path": "\/var\/www\/html\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/www\/html\/custom_apps", "url": "\/custom_apps", "writable": true } ], "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "localhost", "***REMOVED SENSITIVE VALUE***" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "pgsql", "version": "27.0.1.2", "overwrite.cli.url": "http:\/\/localhost", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "instanceid": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "smtp", "mail_smtpauthtype": "LOGIN", "mail_sendmailmode": "smtp", "mail_smtpauth": 1, "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "587", "mail_smtpsecure": "tls", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "maintenance": false, "theme": "", "loglevel": 1, "overwriteprotocol": "https", "default_phone_region": "DE", "app_install_overwrite": [ "tasks", "issuetemplate", "drawio", "breezedark" ], } } ```

Client

Please complete the following information.

  • Browser (incl. version): Firefox 116
  • OS: Linux

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no source file, test, or entry point. Start by reproducing the conflict dialog while switching between rich-text and plain-editor modes, then trace how the saved version is retained across editor sessions. Done means a saved note opens from the current stored version without presenting an outdated cached version or an unnecessary conflict screen.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.