Manual updating flow incompatibility with test channels

Related app/team name: Champ Select Coach (although the issue is not app-relevant)
Issue Description:

The recommended manual update flow is described in https://overwolf.github.io/docs/api/overwolf-extensions#recommended-extension-update-flow and is working correctly unless the channel is changed while the app is running and both channels have identical opk-s. In that case the app gets stuck in a state where extensions.checkForExtensionUpdate returns UpdateAvailable even though the app is already in the latest version and even after successful calls to overwolf.extensions.updateExtension. The expected behavior should be that extensions.checkForExtensionUpdate returns UpToDate (or at least PendingRestart).

Can you reproduce it (exact steps to reproduce):
Yes

  1. [Uninstall CSC]
  2. Install CSC
  3. Go to CSC settings and press Check for updates (it works, says the app is up to date because overwolf.extensions.updateExtension returns UpToDate)
  4. Click ‘Enable experimental features’ (this swaps CSC back and forth between the channel “Beta” and channel “0” - prod)
  5. overwolf.extensions.updateExtension returns UpdateAvailable, so the “Download update” link is available. (Incorrect because the opk is the same - so already up to date)
  6. Click “Download update”, this calls overwolf.extensions.updateExtension, whose result is written to console.log (written to the “mainWindow” log: {"info":"new version 0.1.12.2 installed, restart app to apply.","state":"PendingRestart","success":true} ). Then CSC calls extensions.checkForExtensionUpdate again but it still returns UpdateAvailable so the flow is stuck.
  7. [Disable “Enable experimental features” and then the app is swapped back to “0”, and extensions.checkForExtensionUpdate now returns UpToDate once again.]

Currently the “Beta” and “0” channels have the exact same opk, and previously when they weren’t this has worked (it would say update available then pending restart and after restart it would actually swap to the correct version depending on the chosen channel), so I believe this is a condition as well.

Impact for my app:
Not critical

Do you currently have a workaround?
It is up to date, just can’t get rid of the warning “The app is not up to date” for users testing Beta

OverwolfLogs_2021-06-21_09-53-09.zip (771.0 KB)

Time when overwolf.extensions.updateExtension returned in the logs: 09:51:51,330

Hi @benketriel,

Thanks for the info. We will look into it. Meanwhile, the best workaround is not to upload the same version for the beta channel. Just make sure that beta > production version and you will not have the issue.

Anyway, we will investigate it.

Thanks

@benketriel be aware uploading the same version on production \ other channel will means the latest upload will win. E.g. if you upload the 1.0 to production and then the 1.0 to Beta, the 1.0 Beta will be distributed to production users.

Source: my skin

@dowmeister makes sense. My idea was to upload potential prod versions first to beta, so users can test, then if no bugs are found, this exact same is uploaded to prod. This way I make sure there is no way a new bug sneaks in while packing the prod version. In the app the only way to know that you are using beta is from the call to overwolf.settings.getExtensionSettings (so not hardcoded)

@benketriel we opened a bug on this and it will be fixed soon. I will let you know when we will release it.

Thanks