Exactly same issue here, I think it’s because the way bubble is handling the order of operations in a workflow.
I reproduce the error in a simple app here (simple scenario of a confirm box on a repeating group) : free-app-satellite-issue | Bubble Editor
To show the issue :
Click on a cross, refresh.
Deleted element is back
If you can help us to solve this, it can be really helpfull !
Hi @vini_brito great work with this plugin.
i however noticed that it is not able to send option sets or text. Were you able to resolve this? what can we do make it work?
hI everyone so i was able to see a workaround for the issue with option sets. Just make sure the option sets are all lowercase with no spaces and it should work. I will try with other option sets and share updates here
Hello @vini_brito
I have read the forum and still do not understand if Satellite can be used in a repeating group.
I have two repeating groups: the first with data and the second with the number of pages of the first. In the second repeating group I want to display reusable element with focus group where you can type in a page and go to that page in the first repeating group. But I don’t know how to pass data from Input in repeating group to the page. Can Satellite do this?
Here is a link to a simplified version of what I want to achieve My-test-app-everyone | Bubble Editor
Try pairing it with the plugin Orchestra. Unsure if it will work for what you want but it would be the first thing that I would try.
Hey, @chelovekius, you won’t be able to fully encapsulate the logic part of this inside your reusable element. A couple of things to understand:
First, reusable elements can transmit and receive values to/from their parent element via custom states located on the outermost container of the Reusable. This is a touch buried in the Bubble docs, but as it states “Note that the outermost group is extremely important, because its custom states can be accessed and set from workflows on the page that the reusable element is added to.”
So, here’s an even more simplified version of what you’re trying to do…
To let your reusable share its selected page number with its parent element, create a custom state on the outermost container. Here I’m doing this by clicking the (i) (“inspector” button) on its property inspector:
And then in the workflow for the button click, we “publish” the value that’s been selected in the input by setting this custom state:
So now your reusable can at least passively communicate with the outside world. (That reusable elements cannot trigger events in the same way that element plugins can is kind of a weird oversight, but whatever. You can’t have everything.)
When the input is changed, the new selected page value is put into this state and, in your page, other elements that are “in scope” can see this value, in this case as Page Selector's Selected Number
.
Now you’ve put your Reusable element in the cell of a Repeating Group. As you’ve discovered, this severely limits the scope of other elements that can “see” it. It’s only available to other elements in that cell (for pretty good reasons, of course).
Personally, I’d not do this the way that you’re doing, but I suspect you’re wedded to this idea.
So now this is where element plugins come in. @vini_brito’s plugins are clever, and he’s a cool plugin developer, but any element plugin that triggers Events can live in a Repeating Group cell and that plugin’s Events can be seen at the page level (“outside of” the Repeating Group). This is useful to know in general, but here’s how it’s useful in your specific context:
If you have a plugin that can watch for changes in the value of some expression and then trigger an event in response, now you can detect changes inside of the repeating group cell. I have at least 2 plugins that do this: (1) List Shifter (from List Shifter) and (2) Floppy Expression Watcher (from my commercial Floppy plugin).
Here’s an example using List Shifter (which frankly is a little code-heavy for this application, but it’s a very common use case, also, you might discover that List Shifter can generate lists of numbers and also has a pagination mode).
In short, List Shifter will throw its Initialized/Updated event (1) when it’s first initialized on the page and (2) whenever the value of any of its input fields changes. And it echoes the new value to a couple of different exposed states.
In this case, we just want to watch a scalar value (Page Selector’s Selected Number) and we can do that like this. Include a List Shifter in your RG cell and configure it like this:
That’s it. Now in your workflows you’ll have access to a new element Event “A List Shifter Initialized Updated” and we can use it like this:

Inside this workflow, we have access to the List Shifter’s outputs and we can then put some value – like the updated value of the Scalar output (which contains our new page number) – into a custom state where anything else on the page could see it, or take further actions (like triggering the RG’s “go to page” action and passing it List Shifter’s Scalar, right?).
Anyway, here’s an example workflow:



As I mentioned, you could do the same thing using Floppy Expression Watcher from Floppy and it’s a LOT lighterweight than List Shifter, but there you go (it’s literally optimized for this specific task without all of the other amazing features of List Shifter).
Demo with editor link: https://list-shifter-dev-test.bubbleapps.io/version-test/simple_rg_with_group?debug_mode=true
(Of course, my demo Reusable isn’t fancy like yours and shows/hides, but that’s not relevant to this example.)
Thank you for such a detailed explanation! Now at least I know that it is possible to trigger a wokrflow from a repeating group. Only at ListShifter Scale after setup does not reset in any way. And if I moved from the first page to the fifth and want to go back to the first page ListShifter will always throw to the fifth page. I added another Custom state and everything worked. Here is an example. The first pagination works as it should. The second with an error (try to go from the first page to any page and then come back to the first one.) The third just shows how Scale is not reset. I tried different ways but Scale is not reset.
@vini_brito Vini, just wanted to stop by and say thanks for the plug-in. It helped me tremendously with a reusable that seemed to be impenetrable otherwise. Cheers.
Amazing job @vini_brito
I am new to Bubble, a month in. I found this article has helped a lot of people. I looked through the entire thread but it seems I am the only getting this error. How might I solve this? Thanks
Hello… Am I doing something wrong or is this error known?
Does Satellite work if placed inside a nested repeating group to trigger a workflow on the main page? Thanks!
Hi @vini_brito
Thanks for this awesome plugin.
I’m trying to send data but it doesnt’ seem to be working. I tried it out on your example page:
And it doesn’t seem to be working there either
Read seems to work but neither of your send data actions work.
Just wanted to let you know.
Thanks
Paul
Wait, I might have misunderstood the intended functionality.
It seems like I have to click the send button and then click the read button. Is that correct? If so, is there a way to make it such that the secondary action is not required?
Thanks.
Paul
I looked into this further and forked your code and updated a couple things so there are less steps involved to send data from one to the other. Happy to collaborate if you want
Hi Paul, yeah if you want you can send me a direct message with the changes you made, just for curiosity as I don’t think I will be able to update it soon.
Hi Vini
I will do. Sorry been super busy. I will send you the updated code by the end of the weekend.
Just to Thank You Vini…
Satellite is incredible !!!
Tks
I have to say that I was a little out of date with the new features… passing and returning data from Reusable Elements is now much easier than before… But Satellite is a valuable resource…
Hello everyone! The journey was long, intense and fruitful, but I no longer had the free time available to work on my plugins, so now Zeroqode maintains them. You can reach out to them through their support channels from now on
They have the structure to push them further and I see them as a great new house for the plugins.
I will ask the mods to lock this thread, but regardless of whether they do it or not I won’t be monitoring the forum anymore for plugin mentions.
See you in my next journey and thanks for everything! (and all the fish)
I wish success for all of us!