Workspaces Core Plugin does not work correctly when using Obsidian Sync

Steps to reproduce

PC A: the device where workspaces are edited (in this example, a new workspace newWS is created)
PC B: the device where you want to use the updated workspaces including newWS

  1. On PC A, create newWS. Wait for workspaces.json to be uploaded via Sync.
  2. On PC B, launch Obsidian and wait for Sync to finish.
    • At this point, workspaces.json on PC B has already been updated with the changes from PC A (e.g., opening workspaces.json in VSCode).
    • However, when opening Workspaces core plugin’s management screen inside Obsidian, the workspace list is not updated, and newWS does not appear.
  • Then, if you then restart Obsidian on PC B without doing anything else, the synced changes from PC A are applied correctly, and newWS becomes available on PC B (this is the expected behavior).

  • On the other hand, if you do not restart Obsidian and instead perform any action inside Obsidian on PC B that modifies workspaces.json (for example, creating anotherWS), the pre-sync state of PC B—with anotherWS added—is uploaded through Sync. As a result, the changes made on PC A, including newWS, are overwritten and lost.

Did you follow the troubleshooting guide? [Y/N]

Y

Expected result

Once Sync has finished on PC B and workspaces.json has been updated to reflect the changes made on PC A, the Workspace core plugin should immediately apply the updated state (or, if possible, safely merge the workspace states across devices).

Actual result

Unless the user on PC B strictly follows this sequence:

  1. Wait for Sync to finish
  2. Make no workspace changes
  3. Restart Obsidian

…the workspace changes made on PC A will effectively be discarded.

Environment


SYSTEM INFO:
Obsidian version: v1.10.6
Installer version: v1.8.9
Operating system: Windows 11 Home 10.0.26100
Login status: logged in
Language: ja
Catalyst license: vip
Insider build toggle: on
Live preview: on
Base theme: light
Community theme: none
Snippets enabled: 11
Restricted mode: off
Plugins installed: 109
Plugins enabled: 29
1: Another Quick Switcher v13.24.2
2: Dataview v0.5.68
3: Commander v0.5.4
4: Auto Link Title v1.5.5
5: Daily Note Outline v1.5.0
6: Hotkeys for templates v1.4.3
7: Multiple Notes Outline v0.6.2
8: Note Refactor v1.8.2
9: Word Splitting for Japanese in Edit Mode v1.0.0
10: Templater v2.16.2
11: List Callouts v1.2.9
12: Tasks v7.22.0
13: QuickAdd v2.8.0
14: Recent Files v1.7.4
15: Outliner v4.9.0
16: Kanban v2.0.51
17: Keyboard Analyzer v0.4.1
18: Reveal Active File Button v2.0.3
19: Search on Internet v0.5.0
20: MySnippets v1.2.3
21: Omnisearch v1.27.3
22: Iconic v1.1.4
23: File Explorer Note Count v1.2.4
24: Version Control v1.9.24
25: BRAT v1.3.2
26: floating toc v2.7.0
27: CSV Lite v1.1.4
28: Calendar v1.5.10
29: Periodic Notes v1.0.0-beta.3

RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Additional information

  • Toggling the Workspace core plugin off → on on PC B does not refresh the state.
    Turning it off immediately discards PC A’s changes.

  • The same issue occurs on mobile when the Workspace plugin is enabled.
    For example, if PC A creates newWS, and the iPhone finishes syncing, then creating a workspace on mobile without restarting Obsidian Mobile results in newWS disappearing again.
    Some of the replies in the thread below appear to be affected by this same behavior:
    Workspace Layouts Don't Work Across Different Devices (phones vs desktop)

  • This thread may also be related to the issue described in this bug report:
    Obsidian Workspace syncs are never consistent

  • Even if PC A, PC B, and an iPhone all sync without issues, the problem still occurs as soon as PC C finishes Sync and edits its workspaces without restarting.
    This “restart after Sync” pattern appears in other areas of Obsidian as well (for example, plugin enable/disable states). However, in the context of Sync + Workspaces, it can easily lead to unexpected loss of workspace configurations.
    For users who rely on the Workspaces core plugin across multiple devices, this behavior makes workspace setups fragile, so I would greatly appreciate if this could be addressed.

  • Some community plugins (such as Recent Files) previously exhibited similar behavior, but were improved using onExternalSettingsChange so that updates are applied immediately after Sync completes, even though the update is handled through a simple overwrite.
    Reference: Sync recent files list · Issue #46 · tgrosinger/recent-files-obsidian · GitHub

Relevant documentation: Reloading of settings. It doesn’t mention workspaces specifically, so it’s unclear if the behavior you see is expected or not.

Thank you for the information!

It’s certainly possible that this was the intended behavior originally. However, if that is the case, it would mean that Workspaces and Sync cannot be used together reliably in most practical situations. Although I illustrated the issue using the example of creating a new workspace, the same problem occurs with everyday actions that modify workspaces.json, such as saving a layout or switching the active workspace.

To avoid corrupting workspaces.json, a user would need to repeat a very unrealistic workflow: after any action that modifies workspaces.json, they would have to wait for Sync to complete on every device they use, and then restart Obsidian on each of those devices before doing anything else. I suspect many users who rely on Sync + Workspaces may have occasionally noticed their workspace changes “mysteriously reverting,” without knowing why.

An improvement similar to how community plugins use onExternalSettingsChange—that is, applying the updated data.json immediately—, would make workspace data much more robust when using Sync + Workspaces. I hope this area can be improved in the future.