joinMultiplayerGame, Protocol Launch Method now inserts empty "channel" value

Description

I clicked the blue play button, and noticed this entry here in the Launch Parameters:

gameLocale:en_us+channel:+LaunchExp:InApp

See channel:? It’s empty.

This is very very very very very very very very very very very very very very bad. Very bad.

If channel: is present. If it goes to the Roblox Player Launcher, and it will do this:

“Hey, we received a channel value!”
“We shouldn’t trust what we receive, let’s re-check if this user is actually in that channel”
“Oh, looks like they’re not in that channel right now”
“Are they in a different channel, such as an A/B test?”
“If yes, let’s see if the client currently has this installed”
“If not, let’s download and install it!”

And now, that thing is present by default at all times into the launch parameters, regardless of whether Roblox.ProtocolHandlerClientInterface.playerChannel is empty or not, which seems to be most likely a bug.

(See Private Message)

 

Re-production Steps

  • Open the Developer Console, ensure you’re recording Network requests.
  • Click the blue Play Button, doesn’t matter if you’re in an automatic AB Test or not
  • Check the launch parameter value in the Network Tab, should start with roblox-player:

Expected Result

If Roblox.ProtocolHandlerClientInterface.playerChannel or any other, is undefined or an empty string. It should not add channel: to the launch parameters.

Actual Result

It currently does the opposite of the Expected Result.


A private message is associated with this bug report

1 Like

Out of curiosity, what exactly goes wrong here? Is this just about semantics, or does having an empty channel: produce errors or trigger unnecessary downloads?

channel: downloads the assigned channel even if you don’t want it to download

this wasn’t like that before

I’m not sure if that’s a bug. If an account is assigned to a different channel than installed, it makes sense that the client is updated with the latest build for that channel.

Especially since channels are now managed server-side, this feels like a consistency fix to me.

The bug is that there’s channel: but it’s empty and that’s strange and didn’t happen before.

If you’re assigned to some channel, it may still download the wrong channel, type issue.

Hi @HealthyKarl, thank you for the detailed report! I appreciate that you’re keeping an eye out at this level of detail.
To give you some context, the channel parameter gives us an early indication on whether or not the channel assignment has changed since the last time Roblox was launched. The empty channel parameter is actually the default value to indicate that the user is not assigned to any channel. Having the empty parameter is a confirmation that we were able to successfully get the channel information on the website, and that there is no channel assignment.

Please let me know if you have any questions!

When the channel is empty, it shouldn’t add channel to the launch parameter though. Otherwise it’s gonna trigger a re-check to the launcher/installer even when it shouldn’t.
 

Also, check this bug as well "data-protocol-player-channel-name" backend support incompatibility

I can reassure you that this will not trigger an update flow when it shouldn’t. By the way, we do not have RobloxPlayerLauncher.exe any more (I assume you’re referring to this when you say Launcher?). Web launches will directly launch the Roblox Player, and the Player process knows how to handle an empty channel argument appropriately.

1 Like

The ApplicationConfig doesn’t handle it properly though. I sent a private message.