Deprecated version still accessible, why?

I’ve deprecated all my past versions and I only have one live version (2.0.4) :

However, I have version 2.0.3 installed on my iPhone, and I can still access it, I’m not getting prompted to update the app.

Why is that ?

Also, why is there either a Google or Apple logo next to the live versions, and never both ?

I cant remember exactly where i heard/read this.
A user will be navigated to the “update_app” screen when they perform an action that hits bubble backend, example; create a thing.
I don’t 100% like it, because not all actions on our app hits bubble’s backend, and until then, user won’t know to update their app.

P.S.: If i am wrong please correct me.

Hmm, just tried, indeed !

Yeah, indeed, this is problematic. @nick.carroll.

I have also noticed that when using a deprecated build, anything that uses the operator “current user is logged in / logged out” isn’t working.

For example, in my menu screen, at the top, I have a text “welcome current user first name”, and much more options available, like edit profile, payment methods etc if the current user is logged in.

Result :

The user sees a screen with “Welcome Thibaut!” but the screen options doesn’t make any sense because the current user is logged in / logged out operator is broken !

I will file a bug report about this later today.

1 Like

So it is expected that current user is logged in/logged out would not work on a deprecated build because that version of the apps API is no longer available - ie the app can’t get data from a version that has been removed.

Also, we can only know if a user needs to update their app if a request hits the server, because otherwise, there is no way to know what version they are on.

If you really want to make sure that an app version is not available to a user who has downloaded it already, you’ll want to retire these on app store connect or google play console directly. This will also force the user to upgrade to the newer version. We can only control deprecating the backend version an app is hitting, we cannot control what versions show up in the app store - that is up to the developer!

Just from a bit of research since I am not actually at this stage of needing to retire old version, it seems “retiring” builds on app store connect is not a thing? is this for Google Play?

Also if this does continue to “taunt” developers, could your team not implement a simple backend call “Y/N” for local version = current version when the app is re-opened? Or a client-side api connector call to a static version.json?

Indeed, from what I know and from my experience with past mobile apps, retiring a build, whether in app store or play store, is not a thing. Without a version check mechanism on app launch, users who are on an old version can still open the app.

Maybe I am wrong ?

@patrick.white is on to a good idea, could the team implement a simple version check mechanism on app launch ? @nick.carroll

In the meantime, I’m going to implement a workaround manually. On app launch, I’m going to use the action “create a new thing” and create a simple test thing. This will call the backend and redirect users to the update screen if they are on a deprecated version.

So if your app is in testflight, navigate to that tab and then select a build you want to expire. At the top right, you’ll see a button that says “expire build” When you expire the build, users will no longer be able to download it on testflight. There is a similar mechanism for managing published releases as well

Not a bad idea to have a version check on launch though, will float that to the team to understand the level of effort

2 Likes

Just tested this through testflight.

I have forced the expiration of all my previous builds, and I only kept one live version (2.0.4).

But on my phone is still have 2.0.3 installed and I can still access the app.

Is there something I am missing ?

Seems like you can only expire Testflight builds, not Published apps.

Indeed, Bubble docs also mentions it :

I really hope we can get a version check on launch quickly :folded_hands:

So Apple is referring to only having 1 version available for download in the app store at a time, but that doesn’t mean all existing versions on users devices cease to function - thats what deprecating a live version on bubble is meant to accomplish - not allow the server to be reached & show the update app banner so a user has to either force refresh or download depending on the update type

I might be missing something

In app Store Connect → I have forced expiration of all my previous builds, I have only build 2.0.5 available

In Bubble → I have deprecated all past versions, I only have the latest (2.0.5) live :

Yet, on my iPhone, I have version 2.0.4 installed, I can access it and it is fully functional. The app is reaching the server (retrieving things from the database) and I am not getting prompted to refresh/update my app.

Why is that ?

Ok if 2.0.4 is still working, but the live version has been deprecated on the Bubble side, that is def a bug. Have you filed a bug report for this yet?

side note: apologies for the significant back and forth

1 Like

No worries, I have filed a bug report just now :+1:

1 Like

Thank you