Bubble allows to push broken code

I’ve identified an issue. The first image shows the element on Live, while the second shows it on Dev. The element exists across all Dev branches (Staging, and the working branch) but is broken on Live and was also ‘null’ on Main until I opened the element and then opened the workflow, indicating that the merge into Main may have failed.

Why does bubble allow us to push broken code? Do we really have to open up every element and every workflow that has been changed before the final push to live to prevent these problems?


The picture of it on Main when doing step by step, clearly indicating that it is and isn’t null at the same time.

The issue checker works pretty well, but sometimes it misses stuff. It looks like you may have deleted an element and pushed before the issue checker caught it or you deleted a plugin.

I often notice that uninstalling plugins or deleting plugin éléments can cause these kinds of issues.

The lesson is to test everything before & after each push :slight_smile: we can’t always rely on software!

Tested and working in the branch the dev created the code, check.
Tested and working in the staging branch - a branch before Main so we can keep Main clean where all working branches are merged. Check.
Pushed to Live - broken.

Is the solution really for a human eye to review and check every element and every workflow created before pushing to Live? Not only that but to load each and every workflow and element so bubble can process it? Do you have any idea how long that takes to manually do? That may be fine for simple store apps with 1 dev, but infeasible for enterprise solutions.

I understand your point! I’m sharing my experience to help you prevent this kind of thing later. It’s only happened to me a couple times by the way.

the issue is in how bubble handles deletes

nothing ever actually gets deleted and so there are a lot of unexpected things

  • deleted fields still hold the data
  • deleted fields still send to the front end
  • deleted options still exist on data
  • deleted options still evaluate as if they exist
  • expressions still evaluate as if they aren’t broken
  • expressions only break if you view the page or reuseable element
    … plus a lot of other quirks

in short when handling deletes you need to

  1. bulk update to replace the data on things with something else
  2. search and update all references to the data
  3. delete it
  4. do an app cleanup to further delete it (although it is still never fully deleted)
2 Likes

So bubble allows us to push broken code, got it.