Recent change to "pcall" breaks existing code

Reproduction Steps
Apparently, the “pcall” function is now behaving in a weird way for certain players. We don’t know how to reproduce the issue as it only happens to some players (possibly only mobile players).

Expected Behavior
“pcall” should return true only when the code runs successfully. Additionally, it should not log every single error by default.

Actual Behavior
“pcall” is always returning true, and logs every error as a warn by default.
This new change completely breaks existing behavior and there’s no possible workaround because it’s a built-in function.

Here’s a code snippet that no longer works in our game due to this change:


Issue Area: Engine
Issue Type: Other
Impact: Very High
Frequency: Very Rarely
Date First Experienced: 2022-03-26 00:03:00 (-07:00)

6 Likes

Just want to note that we haven’t changed code related to pcall in months. Please let us know if you find a way to reproduce this, but without that it’s hard to act upon this report.

2 Likes

Here’s a list of a few phone models where the behavior is supposedly present:
Galaxy A71
Realme C25
POCO X3 Pro --M2102J20SG
Oppo A9
Samsung A20S

Can’t really reproduce it myself as I don’t have access to any of those phones. I was also thinking it might be related to an exploit called Arceus X, which might be overriding the current pcall behavior:
image

Either way, I’m gonna manually fix the code snippet which seems to break the most.

One note would be that the error shown above is plausible in case the label in question has a child called ImageColor3 (in which case propertyType will be Instance, and the assignment on line 511 will fail because during property assignments we never consider children as valid target)

1 Like

I don’t think that’s the case, as it only seems to happen exclusively to a tiny amount of Android players. That’s why now I’m thinking it might actually be an exploit, because Android is easier to mod and we haven’t received a single iOS/PC report yet.

However, a player just told us the issue happens without exploits and reinstalling Roblox fixed the issue. We’re currently installing Arceus X to confirm if that’s actually the culprit.

After further investigation we’ve confirmed the issue is 100% caused by Arceus X. Sorry about this, there’s so many exploiters it’s hard to tell whether it’s a exploit or a real bug. I will be fixing the code snippet manually so it works on modded clients.

1 Like

I will be fixing the code snippet manually so it works on modded clients.

If I were you, I wouldn’t implement a fix for a bug caused by an exploit. If their game breaks because of it, that’s on them.

3 Likes