Skip to main content
Lucas West
New Participant
September 18, 2026

Overrides on Instances inside Instances get reset inconsistantly

  • September 18, 2026
  • 3 replies
  • 30 views

The Problem:

Overrides, whether that be changing a property like variant or instance swap, changing a variable mode override, or modifying attributes directly like text content or an object’s color, do not get consistently maintained when applied to or applied inside of an instance nested in another instance, when the outer instance changes, either through manual modification, or even through changing outer instance variants, when they should be. Some arrangements of this are deceptively repeatable, while other arrangements, especially those involving the parent having multiple variants, or any interaction with variable modes, sometimes act completely erratically.

It’s Effects:

  • Completely breaks the whole point of components being re-usable and dynamic
  • Creates a confusing, frustrating, and often inconsistent experience when using components
  • Prevents the ability to create designs with single source of truth objects
  • Makes creating modular, composed component libraries made from shared primitives nearly impossible

Related Threads:

Each of these may or may not be completely the same issue. The issue itself is inconsistent and strange so I haven’t really found a good line it could be split along.

  •  

… and I’m sure many more

Analysis:

I think it’s extremely possible that all of these separate threads are actually caused by the same common underlying problem. I can also theorize that the inconsistencies and non-reproducable irregularities that a lot of people including myself have experienced but failed to completely capture due to the issue’s nature, could come down to a partial fix having been implemented at some point targeting just one or two of these situations very specifically, leading to inconsistent and strange behavior in more complex situations. Just a theory though.

Demonstrations:

There are tons of demonstrations provided by people in the related threads, but I thought I should also show the results of my own testing as well. My test’s don’t fully express the problem, by any means, after all the whole point is that there’s both some things that are consistent and differentiable like the simplified demo below, all the way to the most complex demo in the video at the bottom where I couldn’t find any rhyme or reason at all.

Here is the simplified demo showing the problem in it’s simplest terms without involving variable modes or variants in the parent component, re-created from the demo video provided by ​@jnetzlr:

 

I have created an expanded version of this showing somewhat where the line is in one specific arrangement, but this is less consistent and repeatable then the simplified demo. If you follow the instructions precisely, you should see the same outcomes, but if you duplicated any instance or component definition at the wrong time, or swapped component sources, or potentially even if you did it completely identically, it may behave completely differently.

And lastly, variable modes driving these changes have been noted specifically in some of the related threads to cause additional breaking of the system, I absolutely agree, though I’m unable to pinpoint this exactly. It’s a little to complicated to demonstrate easily, and most importantly, it’s absolutely inconsistent, and I have yet to figure out exactly how that problem can be broken down and demonstrated in a repeatable manner, let alone something that could be shown in an image or process. Here’s my best shot at showing it, there’s no narration but I hope my mouse makes what’s happening descernable enough. Please note that I recorded this 3 times, and in all 3 times it behaved completely differently, so if you try to remake the same setup and it doesn’t even act the same, that’s even more the whole point. Also, I couldn’t find anywhere to put the file up for longer so it’s only up for 6 days 😅 sorry: https://filebin.net/t9hih3957ektnaib If a staff member wants to see the video and it already expired or you want it not through an external site, just let me know and I can send it some other way. (its too big to upload directly here and I don’t have any compression tools)

 

3 replies

Lucas West
New Participant
September 18, 2026

I want to also add clearly that when nesting components, the nesting can either be done by placing an actual instance in the parent’s component definition, or in an instance of the parent component via either the instance swap property with a placeholder, or using slots. The fact that there are all those three possible situations I think may be contributing to how irregular and frustrating this is. The issue presents somewhat differently or not at all in each of these cases and also differently with what your actual specific structure and usage of those are, potentially even involving prototype interaction or variable modes potentially driving instance swap properties.

Lucas West
New Participant
September 18, 2026

Could also be useful to note the “Expose properties from: Nested Instance” option has no effect on this from what I can see

djv
Figmate
Community Support
September 18, 2026

Hi ​@Lucas West, thanks for pulling all of these topics together!

I understand how this is disrupting your workflow, and you’ve definitely hit a nail on the head with this. Override transfer does behave differently depending on whether the nested instance lives in the main component, comes in via an instance swap property, or sits in a slot. That's a big part of why this has been hard for our team to pin down and solve. Two things that would help us a lot:

  • Can you share the file rather than the video? A link to a Figma file with the setup (even the simplified one) lets the team inspect the actual instance data, which a recording can't show. You can create a bug report directly with our support team here. 
  • For the variable mode case specifically, which is driving the change: a mode bound to a variant property, or to something inside the nested instance? Those two paths fail differently in our experience.

One temporary solution worth trying in the meantime: when overrides reset after a mode switch, hit ⌘Z / Ctrl+Z, then switch the mode again. We've seen edits persist on the second pass. It's not a fix, but it may unblock you.

 

And lastly, you're right that Expose properties from → Nested Instance won't help here. That controls which properties surface in the sidebar, not how overrides are carried across.