Sketch Library updates silently dropping symbol overrides — which structures survive?
0 reputation · 22 Jan 2021, 07:00 UTC
0 reputation · 22 Jan 2021, 07:00 UTC
Sketch Libraries let a document reference shared symbols and apply local overrides such as text, fill color, and size. When the library is updated to a new version and the document runs Update Libraries, those overrides are sometimes preserved and sometimes revert to the library definition. The behavior appears to depend on whether the updated symbol's internal structure still matches the overridden instance, but this matching rule is not clearly documented.
The goal is to define a safe workflow for teams that rely heavily on overrides — including nested symbols — so that updating a library never silently discards local changes. Assume a recent Sketch version (71+), since behavior has reportedly differed between releases, and treat any version-specific claim as needing verification.
Constraints: detached instances are out of scope, and duplicating every override into a local symbol defeats the purpose of a shared library.
1. What structural changes to a library symbol (layer renames, added layers, nested symbol swaps) cause existing overrides to be dropped on update?
2. Is override preservation deterministic per Sketch version, and how can it be verified before rolling an update out to a team?
3. Is there a supported way to preview or roll back an update that would reset overrides?
Short answer: overrides survive a library update when the overridden layer still exists with the same internal identity inside the updated symbol. They are dropped when the layer they target was deleted, replaced, or restructured — even if a new layer has the same name. There is no built-in impact preview, and rollback is only practical at the file level. Everything below reflects general Sketch behavior, not a documented guarantee; the matching mechanics are internal and have shifted between releases, so verify on your exact version before trusting this in production.
Sketch does not match overrides by layer name or position. Each overridden layer in a document instance is tied to a layer identity inside the library symbol. On update, Sketch tries to re-resolve those identities against the new symbol definition:
The practical rule for library authors: edit layers in place, never delete-and-recreate, and never replace a nested symbol instance when you can swap it via an override-compatible mechanism instead.
Within a single Sketch build, the behavior is deterministic — the same document plus the same library update produces the same override outcome every time. What is not guaranteed is that the matching rules stay identical across Sketch versions, because the identity mechanism is an undocumented implementation detail. So "deterministic per version" is the right mental model: pin the version, verify, then roll out.
A verification protocol that takes under an hour:
There is no supported preview of override impact. The update dialog lists changed components but does not show which document overrides will reset. Your realistic options:
One missing detail that would change this advice: whether your documents live in Sketch Cloud or as local files. Cloud documents give you version history as a rollback path; local files need git or manual snapshots, which changes how you should stage the rollout.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.