diff --git a/src/components/Editor.vue b/src/components/Editor.vue index 407004d9992..9f35d2594dd 100644 --- a/src/components/Editor.vue +++ b/src/components/Editor.vue @@ -377,6 +377,7 @@ export default { this.listenSyncServiceEvents() + this.$providers.forEach(p => p?.destroy()) const syncServiceProvider = createSyncServiceProvider({ ydoc: this.$ydoc, syncService: this.$syncService, diff --git a/src/services/SyncService.js b/src/services/SyncService.js index 902d9c60cb5..13d23a4f9cd 100644 --- a/src/services/SyncService.js +++ b/src/services/SyncService.js @@ -111,7 +111,12 @@ class SyncService { return } this.backend = new PollingBackend(this, this.connection) - this.version = this.connection.docStateVersion + + // If we reconnect we may already have a version set so we should keep that + if (this.version === null) { + this.version = this.connection.docStateVersion + } + this.emit('opened', { ...this.connection.state, version: this.version,