Moving a linked rig file

so every now and then i try to make use of linking, and i always seem to get burned by some edge case behaviour!

basically if the relative path to the linked asset changes for whatever reason, its a nightmare to reconnect.

the file>external data>find missing files doesn’t work. (is this only for textures? if so, naming is unclear!)

outliner>blender file>the referenced blend file>relocate seems not to reload the broken rig, but outliner>blender file>libraries>the referenced blend file>relocate does (why is this different behaviour?)

and even when relocating successessfully reloads, random bits of the rig will often be missing:

any custom shapes on the rig will sometimes have library overrides added that reset to the default bone shapes. if you clear the overrides, you either have to do it one by one for every single bone, and if you clear all overrides, you lose all your animation data.

even worse, sometimes the rig will mysteriously lose every single constraint that was set up on the source linked file, essentially rendering the rig useless.

anyway, am i doing something fundamentally wrong, or is the linking system basically not production ready for any use cases where you need to change the relative paths between files??

Following this, as I am also trying to figure out a few things regarding linked libraries (I’ve just come up against an situation where my logically named blendfile and collection is now not logically named due to a change in detail of the character I’m linking in…

as a small update, i can confirm one work around for my particular case is to first change all paths from relative to absolute, then move the project file, and because the paths its referenced were absolute, it can still find them.

but that doesn’t address the fundamental issue that you should be able to relink a disconnected file after opening a project. what i assume is happening is the act of opening the project with broken links results in blender processing the broken links in a way that causes data loss, which… it really shouldn’t. :unamused: