nextcloud / nextcloud/notes

Switching Note - Failed to push (empty) steps

Open
#1,598 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Steps to reproduce

  1. Open a note
  2. Change to another note
  3. See 403 error in JS console
Expected behaviour

Switching between notes should not generate an error.

Actual behaviour

Switching between notes triggers an 403 pushing step error.

Requests/Logs

Excerpt from the log console:

[ERROR] text: Failed to push the steps to the server ...
[ERROR] text: failed to write to document - not allowed Object { app: "text", uid: "xxx", level: 3 }
[ERROR] text: Unexpected Error "Failed to apply steps. Retry!" Object { app: "text", uid: "xxx", level: 3, error: Error }

Actual request body that fails:

XHRPOST
https://cloud.xxx.xxx/index.php/apps/text/session/542243/push
[HTTP/2 403  106ms]

	
awareness	"xxx"
baseVersionEtag	"6800baba35a17"
documentId	542243
filePath	""
sessionId	3620
sessionToken	"xxx"
steps	[]
token	null
version	71331

I notice that filePath and steps are empty.
Die documentId in body and URL also equals the current open note before switching to new note.

Server

  • Notes app version: 4.12.0
  • Nextcloud version: 31.0.2
  • OS: Linux xxx 6.13.8-arch1-1 nextcloud/notes#1 SMP PREEMPT_DYNAMIC Sun, 23 Mar 2025 17:17:30 +0000 x86_64 GNU/Linux
  • Web server (from outside to nextcloud):
  • PHP version: PHP 8.3.19 (cli)
  • Database: 11.7.2-MariaDB-ubu2404-log

Nextcloud configuration:

``` { "system": { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": { "1": "owncloud.xxx.xxx", "2": "cloud.xxx.xxx", "3": "onlyoffice.xxx.xxx", "4": "cloud" }, "trusted_proxies": "***REMOVED SENSITIVE VALUE***", "forwarded_for_headers": [ "HTTP_X_FORWARDED_FOR" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "31.0.2.1", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "logtimezone": "Europe\/Berlin", "installed": true, "memcache.local": "\\OC\\Memcache\\APCu", "memcache.locking": "\\OC\\Memcache\\Redis", "memcache.distributed": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "theme": "", "loglevel": 3, "maintenance": false, "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_smtpmode": "smtp", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "app_install_overwrite": [ "tasks", "documents", "ownnote", "richdocuments", "spreed" ], "mysql.utf8mb4": true, "simpleSignUpLink.shown": false, "lost_password_link": "disabled", "ldapIgnoreNamingRules": false, "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory", "updater.release.channel": "stable", "encryption.legacy_format_support": false, "encryption.key_storage_migrated": false, "encryption_skip_signature_check": true, "default_phone_region": "DE", "overwrite.cli.url": "https:\/\/cloud.riotcat.org", "overwriteprotocol": "https", "maintenance_window_start": 4, "log_rotate_size": 104857600, "apps_paths": [ { "path": "\/var\/www\/html\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/www\/html\/custom_apps", "url": "\/custom_apps", "writable": true } ], "mail_smtpauth": 1, "mail_sendmailmode": "smtp", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-amd64-glibc", "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-amd64", "enabledPreviewProviders": [ "OC\\Preview\\Image" ], "memories.gis_type": 1 } } ```

Client

Please complete the following information.

  • Browser (incl. version): Firefox 137.0 (64bit)
  • OS: Linux xxx 6.14.2-arch1-1 nextcloud/notes#1 SMP PREEMPT_DYNAMIC Thu, 10 Apr 2025 18:43:59 +0000 x86_64 GNU/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

Start by tracing the note-switching flow around the /apps/text/session/{documentId}/push request and compare the session, documentId, filePath, and steps values before and after switching notes. Reproduce the sequence from the issue and verify that switching no longer sends an empty push for the previous document or produces a 403 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 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.