General guidelines to avoid UUID problems

I would like guidelines spelling out how to avoid problems with UUIDs.

I have had many problems with UUIDs. Symptoms include elements of the Library Editor not showing up after a save that seemingly works without error. Also problems with updating the libraries used by the schematic saying UUIDs are referenced that don’t exist.

These problems often manifest asynchronously with the symptoms. It’s really hard or impossible to relay how the problem occurs when this is how you find them.

It’s also hard to figure out the name used by an element by UUID, so figuring the problem out is a total quagmire. A couple hours with Claude (AI) did not solve the problem either. It concluded my data is present but the application won’t show it.

From a user’s perspective UUIDs are a house of cards.

I have made three PCBs so far and each worked on the first pass. I’m thrilled, but the pain of using the app is really high.

Hello davei,

i don’t fully understand which kind of problems you see. Maybe you want to send more detailed information like “i did this and then faced that…”
And probably the developers are able to give much more info.

First question : Why are you even worrying about UUIDs? As i understand it, these are just an internal means of organizing library elements. And libre pcb does a very good job taking care of them. Even though I myself have many custom devices in the lib i never hat to care about UUIDs.

Only thing i could imagine is that you copied library elements yourself on file system level, which you normally shouldn’t do.

Did you read Create Library Elements | LibrePCB Documentation
and
Library Conventions | LibrePCB Documentation ?
I think that there are already some do’s and don’ts.

From my users perspective libre pcb is far from being a pain to use.

Sasmus,

Thank you for responding, it’s very kind of you.

This is my 4th PCB design with the prior 3 being complete successes.

I’m using LibrePCB to build all six forms of Library Editor elements, the schematic, and board layout. I do a little importing of Eagle files and also read in 3-D step files. These two things bring in data not originating in LibrePCB.

I would never involve myself with UUIDs, but things in LibrePCB have bugs. These present themselves as, for instance, complaints about UUIDs during library updates.

I would not copy file system elements outside the tool unless I found no choice. After I found no way to fix the problem or learn the elements containing the UUID(s) of the problem I would search/grep the files outside the program. After hours of no success fixing the problem(s) I went to Claude for suggestions. After hours with Claude it started suggesting I copy files outside the tool, which I did because I could see no choice. I believe only two copies of files were done and these did not fix the problems. Claude saw the files as containing UUIDs that were referenced but not present before the copies. This certainly could make things worse, though I saw no difference.

Again, these problems present symptoms asynchronously with the offending action by the user. If they were synchronous, I would happily tell you exactly what I did. Instead, I just want guidelines to avoid bugs. It’s pretty serious when LibrePCB is crashing repeatedly, losing data, and leaving lock files everywhere. I’m not seeing one bug but at least two involving UUIDs and, no, I don’t know the sequence of events. A substantial amount of activity passed before I ran into: repeated crashes, inability to save elements in the Library Editor, and errors during the “Update Project Library” command.

I think LibrePCB fairly easy to use, but it does have bugs, and these bugs related to UUIDs are particularly nasty since the user is crippled from the start without a map of UUID to element. For instance, when the library updates fail with a UUID problem the error states the UUID in question. It does not state the element the UUID was associated with nor what to do about the problem. Another example is when the Library Editor acts like it saved a new element, but the element does not appear in a list (say for instance, as a package). Then one loses the work done since saving does not work. Upon repeating the work, one loses it again, because what is causing the problem is unknown. The user, me, does not know what steps are needed to avoid the problem.

In my case, I think the problems are related to copy and paste operations and pads - just a guess. Perhaps pasting or creating duplicates in some manner leaves two things using the same UUID which would create havoc later. Again, I work within the program, not the file system, unless bugs force me to do otherwise.

I believe I have already read LibrePCB documentation on library elements, but will peruse it again.

I am asking questions because I like using the tool. As a long time developer, I see it as marvelous. All programs have bugs. How they are handled matters.

I’m sure others have or will run into these problems. My hope is enough have seen the problems that guidelines to avoid them exist.

Thank you for the links. I apologize I cannot supply a sequence of commands creating bugs. That is why I only asked for guidelines.