PROPERTY ID added when creating new file or added link

Hi, this is my first post, so first of all I want to thank you very much for the amazing tool build upon one of my favorite tools which are Emacs and org-mode.

The “problem” is PROPERTIES with ID laying all-around in my notes.
I noticed they are created when I call org-roam-find-file while visiting org-roam file. Also, I noticed that I can remove them and it doesn’t change anything, or I just can’t spot the difference.

Can you tell if these property IDs have any purpose if yes then what is it? If they are not necessary, then how can I prevent org-roam from creating them? Thanks

EDIT: After exploring deeper the topic of linking I come to the conclusion that due to the fact that we can link to headings, these IDs are made to create a bi-directional linking between the note and heading, thus the ID is only created when I add a link to note inside heading. So by removing these IDs, I think I do a disservice to the linking engine, maybe even I break some internals.

1 Like

The properties drawer cluttering up my org files is a bit bothersome to me too. I found this stack overflow answer that might be a good solution, but haven’t tried it yet.

1 Like

I’m also confused by this. I have been getting warnings about duplicated IDs when the database is updated. I think this might be because I’ve been moving/copying/deleting files as I settle in to the org-roam system.

It would be helpful to have a quick explanation of the function of these IDs, so that I can avoid causing myself problems with them!

Thanks for sharing. It looks like a good solution to toggle ID’s visibility on demand when we have plenty of shared headings in the file. We still have to have them to make linking to headings possible, so probably hiding them is the best way.

In practice, I kind of accepted, and barely notice IDs these days.

Duplicated entries will happen if you copy heading with properties or just properties to another heading. There is not much we can do about, other than to be aware that ID must be unique.

IDs are created to allow linking to headings rather than just to files. For system, it’s easy to track links to files because their paths + filenames are unique in the file system, but to track link to heading we need to have an identifier in the context of the file, so the system has an anchor to link to it.

IDs are created so that there is a unique identifier for headlines that we can link to.

They appear when org stores a link to the headline. org-capture stores a link to the current location (in case you wanted to link to where you captured from). They will also appear if you run org-store-link in the headline manually

IDs are designed to be unique (using uuids) so that org has a single destination to go to when following the link. If you copy a file you will then have headlines in both files with the same ID. When following a link to this ID it doesn’t know where to go.

You can collapse these drawers automatically by including #+startup: showall to the top of your org files (you can include this in your org-roam-capture-templates). For more info on this see and

1 Like