Skip to content

Opening file from non-refreshed folder view triggers false version conflict #9194

Description

@lukra3

Describe the bug
After editing a file locally and letting the sync complete, webversion still shows version conflict even though the versions are the same.
I edited the file and let the sync complete in the nextcloud files app:

Image

Then I open the file in the web and it says there's a conflict between these two versions, but they both already have the latest edits:

Image

To Reproduce
Steps to reproduce the behavior:

  1. Open a folder with an existing file in the web. Note file's last modified date
  2. Without reloading the webpage, edit the file locally via the desktop client and wait until sync is complete
  3. In the still open browser tab (folder view), open the file, without refreshing the tab. Note last modified date did not change
  4. Text app reports a version conflict, even though the edit done locally is already synced. Both versions shown are also the same

Expected behavior
The text app should fetch latest version from server without a conflict.

Screenshots
See bug description

Server details:

  • Nextcloud version: 33.0.7 AIO docker
  • PHP Version: 8.3.33
  • Database: PostgreSQL 18.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit

Client details:

  • OS: Windows
  • Browser: Firefox/chrome/edge
  • Browser version: 155.0.1 / 153.0.8010.37 / 152.0.4191.66
  • Device: Desktop
  • Nextcloud Files version: 3.17.0. / 34.0.3
Logs

Nextcloud log (data/nextcloud.log)

No visible log entries for this

Browser Console log

POST https://<DOMAIN>/apps/text/session/260486/sync 409 (Conflict)
(anonymous)	@	sync.ts:76
_fetchSteps	@	PollingBackend.ts:138
setInterval		
connect	@	PollingBackend.ts:109
startSync	@	SyncService.ts:192
(anonymous)	@	Editor.vue:535
Promise.then		
onOpened	@	Editor.vue:534
open	@	SyncService.ts:181
await in open		
constructor	@	WebSocketPolyfill.ts:56
(anonymous)	@	y-websocket.js:165
connect	@	y-websocket.js:560
constructor	@	y-websocket.js:444
(anonymous)	@	SyncServiceProvider.js:41
initSession	@	Editor.vue:448
created	@	Editor.vue:425
mounted	@	ViewerView.js:35
Promise.then		
(anonymous)	@	Viewer.vue:1294
Promise.then		
beforeOpen	@	Viewer.vue:610
openFileInfo	@	Viewer.vue:706
openFile	@	Viewer.vue:667
await in openFile		
file	@	Viewer.vue:452
Promise.then		
open	@	Viewer.js:320
execAction	@	viewerAction.ts:80
execDefaultAction	@	FileEntryMixin.ts:329
click	@	FileEntry.vue:5

PollingBackend.ts:208 [ERROR] text: Conflict during file save, please resolve 
{app: 'text', uid: '<UID>', level: 2}
_handleError	@	PollingBackend.ts:208
Promise.then		
_fetchSteps	@	PollingBackend.ts:140
setInterval		
connect	@	PollingBackend.ts:109
startSync	@	SyncService.ts:192
(anonymous)	@	Editor.vue:535
Promise.then		
onOpened	@	Editor.vue:534
open	@	SyncService.ts:181
await in open		
constructor	@	WebSocketPolyfill.ts:56
(anonymous)	@	y-websocket.js:165
connect	@	y-websocket.js:560
constructor	@	y-websocket.js:444
(anonymous)	@	SyncServiceProvider.js:41
initSession	@	Editor.vue:448
created	@	Editor.vue:425
mounted	@	ViewerView.js:35
Promise.then		
(anonymous)	@	Viewer.vue:1294
Promise.then		
beforeOpen	@	Viewer.vue:610
openFileInfo	@	Viewer.vue:706
openFile	@	Viewer.vue:667
await in openFile		
file	@	Viewer.vue:452
Promise.then		
open	@	Viewer.js:320
execAction	@	viewerAction.ts:80
execDefaultAction	@	FileEntryMixin.ts:329
click	@	FileEntry.vue:5

</details>

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions