Lost file references in Canvas between computers

Steps to reproduce

(The order of OSes should not matter, as the problem arises on both machines.)

Linux (debian):
Use dropbox
Create a canvas
Link files in Canvas (in any way, drag, arrows or add)
Then, in windows:
open the same canvas

Expected result

References should be kept intact.

Actual result

File references should remain.

Environment

NAME="Pop!_OS"
VERSION="22.04 LTS"
Windows 11

Debug info

SYSTEM INFO:
	Obsidian version: v1.1.9
	Installer version: v1.0.3
	Operating system: #4-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan  4 15:26:53 UTC 2023 6.1.0-1004-oem
	Login status: not logged in
	Insider build toggle: off
	Live preview: on
	Legacy editor: off
	Base theme: dark
	Community theme: Minimal v6.1.9
	Snippets enabled: 0
	Restricted mode: on

Additional information

I’ve tried re-referencing files, which makes the Canvas stop working on the first machine. It feels like some sort of discrepancy between file systems, and dropbox itself might be to blame.

I’m having trouble following this report.

Can you share screenshots of what you’re seeing? It sounds like there’s an issue with your syncing set up.

I confused my description of Actual Result. it should have been.
“File references are lost”.

Lost references after syncing:

Expected result:

Are the missing files still available in the vault?

Make a note with some of the same links in it, then open the same note on the other machine. Does this work?

The missing files are still available in the vault.

I created a note on computer 1, synced it to the computer 2, and the link worked.
I added a new link in the same note on computer 2, let it sync, and was able to follow that link on computer 1.

I tried adding adding the note to the Canvas, one time from each computer:

To be clear, the result is reversed on the other computer.

Okay, interesting.

Can you try repeating those steps in the Sandbox Vault? Help → Sandbox.

Thanks!

I cannot do that since the notes aren’t saved, unless I’m mistaken?
Is there a way to persist Sandbox files?

I did try to just move the .canvas between computers, and the references were lost in the canvas.

However, I did open nearly identical files in text editors and it became more immediately apparent what is happening:

Linux

{
	"nodes":[
		{"id":"da75dc0e2fd9a1a9","x":-325,"y":53,"width":400,"height":400,"type":"file","file":"The Believables/Deities/Talona.md"}
	],
	"edges":[]
}

Windows

{
	"nodes":[
		{"id":"4f0c80796c9ae938","x":-355,"y":-81,"width":400,"height":400,"type":"file","file":"Deities/Talona.md"}
	],
	"edges":[]
}

It turns out I’ve opened the vaults differently. On the Linux machine, I opened the root Obsidian folder, instead of like on Windows, where I opened the vault only.

The shared folder over Dropbox looks like:

Obsidian
|--Other Vault
|--Work
|--The Believables

So it makes perfect sense it doesn’t work, and this 100% is on me.

My reason for opening only The Believables is I do not want the other folders at my Windows machine. I guess what I actually wanted was a Hide Vault-button.
Maybe I should fix my directories instead.

Thanks for taking the time to answer, and oops!

Ahhh I am so glad you figured it out. This might have left us puzzled forever!

1 Like

Me too!

I do wonder if the link handling needs to be different between the .canvas and the .md files.
My links were not broken in general, since most have unique names for Obsidian to pick up.

Maybe the “file” key in .canvas should use the same uri generator as is used for the rest of the files.

1 Like