Page MenuHome

Unable to fix broken linked IDs when renamed in libfile
Confirmed, LowPublicTO DO


System Information
Windows 10
Windows 7 x64

Blender Version
Worked: 2.82
Broken: 2.83.0

Short description of error
Cant rename linked collection. Error: Cannot edit external library data

Exact steps for others to reproduce the error
Default Blender setup (first file lets call it assets.blend)
Create a collection and name it "Test"
Create a cube and move it to "Test" collection
Save the file

Create another file (lets call it level.blend)
Link the "test" collection from the assets.blend
Check all linking options before hiting link
Save the file

Now open assets.blend again and rename "Test" collection to "Cube"
And save it again.

Open level.blend
A message appears that link is broken
Go to Outliner and change Display mode to Blender File
Now go down to the linked collection
Double click broken collection to rename it
Error message appears "Cannot edit external library data"

Renaming linked collections works fine in 2.82

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Jun 5 2020, 1:10 PM

Can confirm.

Not sure if there what was the reason for this change (but looks like a valid usecase), bisecting...

Ha, caused by own rBc7f74863dde1: Fix T76711: override data-blocks could be renamed in the outliner, lets see if I can find a better solution (need to test a little when renaming a linked collection should actually be allowed...)

CC @Bastien Montagne (mont29)

Hm, I am unsure about all indications this might have here, but to recap:

prior to rBc7f74863dde1, it was possible to rename a linked collection [changing its reference in the linked file] with following consequences:

  • after renaming the collection (to "repair" a renamed collection from the source file -- or to just reference a different existing collection in the source file), nothing really changes immediately
  • upon save/reload that renamed collection gets sucked in (this can be a possible workflow [see the "repair" usecase from this report -- even switching to a different existing collection from the source file might make sense])
  • same thing was never allowed for linked objects btw. (the same "repair" / "switching" workflow is thinkable here, but is forbidden)

In general I think doing so (renaming a collection to "repair" a renamed collection in the sourcefile or to switch to a different existing collection in the sourcefile) is a bit hidden to actually accept as a valid workflow?

So what I think we could do is:

  • be strict, keep current behavior (forcing the user to re-link the renamed collection from the sourcefile) OR
  • make an operator similar to Relocate Library, like Relocate Datablock that lets you browse the sourcefile contents again? (that would show the changes immediately) OR
  • allow renaming again, but then it would be good to actually see the consequences of that immediately (sucking in the new datablock)

@Bastien Montagne (mont29), @Brecht Van Lommel (brecht): opinions?

Bastien Montagne (mont29) triaged this task as Low priority.Jun 5 2020, 4:01 PM
Bastien Montagne (mont29) changed the subtype of this task from "Report" to "To Do".

Renaming linked datadblocks has never been expected to work, this was purely a bug.

Adding some relocation tool for IDs is a nice TODO, I guess.

Bastien Montagne (mont29) renamed this task from Unable to rename linked collection in Outliner to Unable to fix broken linked IDs when renamed in libfile.Jun 5 2020, 4:02 PM
Bastien Montagne (mont29) removed Philipp Oeser (lichtwerk) as the assignee of this task.
Bastien Montagne (mont29) moved this task from Backlog to TODO's on the Pipeline, Assets & I/O board.