Code Errors That Don't Exist

This one particular project is the bane of my existence. Not only does it have a high crash rate, with 0 perf issues, but the Error Report continues to report bugs that don’t exist.




image



These errors are from the “Last 1 Day”, and a few of them are really consistent. No matter how many changes I make to the scripts, or how many times I restart servers. Every day, these same errors attributed to the same line numbers appear.

There’s also some really weird errors that don’t typically occur on any of my other projects:




Like why is that last one a server error???

The game in question: Gunfight Arena - Roblox

9 Likes

Okay so update.

After going through the error report history, alot of these errors were real errors that were fixed or changed weeks ago. I’ve verified that every server is running the current version of the game. Yet every day, new reports of these very old errors still come in.

That leads to two possible theories:

  1. Clients are somehow loading and running really old versions of scripts.

  2. These error and crash reports are cached somewhere and taking weeks to come finally through. Causing the anomalies I’ve been seeing in both the error report and crash rate stats.

2 Likes

You should probably join some of your servers and make sure they’re on the latest place version (in the help tab).

3 Likes

I already did, they are.

I’m going to try making a new place from scratch and see if the errors persist on the new place.

1 Like

Actually I can’t do this because you can’t set a different place as the new start place anymore…

So I have no way to fix this issue because if I move games, everyone loses their data and purchases.

But I can’t use the current start place anymore because this residual crash and error information is destroying the game’s performance in algorithm…

1 Like

Thanks for reporting the issue. I am looking into it.

1 Like

Hi: Thanks for reporting.
Do you mind telling me which specific errors are the ones you still see but have been fixed weeks ago?
I searched a few and I do see the errors are not there since 7 days ago for them. I want to make sure I am looking at the right ones.
For those errors you do not understand. They might come from our core script that is not written by you but you are calling. We are trying to work with the engine team to see how we can better improve this. Meanwhile if you think some of them are core script error from Roblox and we should fix, feel free to report as another bug to ask engine team to help taking a look.

2 Likes

Well there are a fair few errors that come from scripts that don’t exist both in Roblox’s core logic, and also my game. I can only assume these errors are from cheaters running their own scripts as Byfron has been failing to catch any cheaters for a number of weeks now.

^ These are not any of my scripts, nor do they appear to be core scripts.

This error is really quite interesting because the Check function in my network module does not, nor has it ever tried to index anything with “.Value”:

It appears a lot, but not regularly. Could be a cheater or two trying to change the functions to access my network system. Not really sure.

These two errors have appeared every single day for as long as the game has been out.

They reference line numbers that don’t make any sense.

image

Also, if the line numbers attributed are just slightly off, you can see by the code itself that error should never occur regardless. It’s been written this way for a number of weeks, and the servers are all running the current version. The errors still persist in the Error Report.

1 Like

I’d like to provide a small update on this issue.

#1. Some of the code errors I had been seeing were still valid errors that could occur in the latest version, they would just be attributed to the old version line numbers in the Error Report

#2. Many of the code errors in my error report now come from scripts that don’t exist in the game, and from code that no longer exists in the game.

For example, 2 weeks ago I accidently tried writing Lighting.GlobalShadows in parallel. It took me less than 2 hours to fix the issue and migrate servers. Now 2 weeks later, that error is still getting reported every day:

In addition, here’s an example of code errors that aren’t mine at all.

Not only are there no elevators in the game, there are no UIs named “MainUI”, and no scripts named “Initiator”, “Main_Lobby”, or “ElevatorHandler”. InsertService is also disabled, so I have no idea where these are coming from, or why players would inject something like that.

1 Like

Did you resolve this issue yet?

And what did you find from looking into it?

I had things called “MainUI” and “Initiator” too exclusively in error reports
Could be something from one game, maybe id of the main game is glitching out and causing this?

Did you resolve the issue yet or not?

Any updates since you said this?

Looks like it’s resolved for me, however when people exploit it’s still logged
Solution for this would probably be is to check if local script has already been in the game
Or list user ids under client logs so developers can ban them from the game

1 Like

Nope, still not resolved for me.

I literally can’t find any other posts on this but things that should not be breaking keep breaking. In my error reports, I keep getting “Script timeout: exhausted allowed execution time”, on different NPC scripts, but its always ON LINE 2
these are the first 2 lines:

local char = script.Parent --Char is the model
local humanoid = char:WaitForChild("Humanoid")

Why is WaitForChild(“Humanoid”) causing exhausted execution times??? Errors like these ARE NO FAULT OF MINE. It’s obvious that in these 2 lines, there is no weird bug on my part. And indeed, the code DOES WORK 99% of the time, since there’s NOTHING WRONG WITH those 2 lines??? I fundamentally do not understand why the error report keeps logging nonsensical errors, this and similar ones; what is going on that could cause this?

These are server not client errors so the problem can’t be replication. So is the server just loading in the model incorrectly? Is the server for some reason, not placing a humanoid in the model, ever, so even WaitForChild() can’t account for any latency in loading times? Is a cosmic ray of radiation causing a bit flip on a single transistor on the roblox server causing it to incorrectly download a model? There’s only so much error handling that we as developers can do on our part, and some things just fundamentally are down to the reliability of Roblox’s own code (maybe waitforchild just BREAKS sometimes?? 0.001% of the time??)

62		Server	Script timeout: exhausted allowed execution time	
Script 'Players.<Player>.PlayerScripts.PlayerModule.CameraModule', Line 151

???

All of the below are WaitForChild(“Humanoid”) errors

1		Server	Script timeout: exhausted allowed execution time	
Script 'Workspace.earth.Script', Line 2
1		Server	Script timeout: exhausted allowed execution time	
Script 'Workspace.minion.Script', Line 3
1		Server	Script timeout: exhausted allowed execution time	
Script 'Workspace.entropy.NPC_AI', Line 3

Keep in mind this game only has a hundred or so plays over the last month, so this is occurring like 1% of the time

Hi:
sorry for the confusion caused from the error logs.

Based on the document here, you could set up a timeout value. Have you done that?
This is not an error but a warning, meaning that since timeout is missing, the wait will be infinite and could possibly cause trouble but might not. If you have timeout, it should not populate this warning again.
If you have timeout and still see this, let me know and we could dig more to see if something wrong is on our side.

I don’t get how setting up a timeout value for WaitForChild would be of any use. In this case, I’m only using WaitForChild on server scripts for consistency with the client-sided scripts, since in theory, I should be able to directly index into script.Parent.Humanoid without having to yield for anything. The fact that WaitForChild is experiencing an infinite yield means that for whatever reason,

  1. the server is downloading a corrupted(?) datamodel where the model is missing its Humanoid object.

OR 2. WaitForChild() is implemented in a fundamentally broken way that for whatever reason cannot find a child even if it indeed exists. Is there some “optimization” present in the code that does 1 FindFirstChild, and if that result is nil (maybe the script executed before child was loaded), it proceeds to infinitely returns that cached nil value?

I’m leaning more towards the second explanation because with the frequency of the error. In any case, if I were to add a timeout, the NPC script would still break because without the Humanoid, it can’t do anything and would just run into an index into nil error.

The console shows severity as error

Isn’t the WaitForChild infinite yield warning something alone the lines of
“Infinite yield possible on …” ?

The error console says “exhausted allowed execution time” which correct me if I’m wrong, occurs if you have a infinite loop without any yield, that executes and freezes the game until a hardware interrupt after a couple seconds. Is the error console just somehow logging the wrong error? I don’t get why WaitForChild() is eating up 100% of a server’s resources in an infinite loop without yielding to anything. I’m pretty sure the error console is just logging the wrong error, but if WaitForChild is forcing a hardware interrupt, then I think there’s a very very big problem here.

example of exhausted allowed execution time:
Screenshot (6)

Here are the first couple lines of the fishmob script

--mob
local mob = script.Parent
local humanoid = mob:WaitForChild("Humanoid") --line 3 error is here
local animator = humanoid:WaitForChild("Animator")
local walk = animator:LoadAnimation(mob:WaitForChild("walk"))
local attack = animator:LoadAnimation(mob:WaitForChild("attack"))
local alive = true
local fishdefeated = game.ServerStorage.fishdefeated --bindable event
local attacksound = mob.Head:WaitForChild("attacksound")
local growl = mob.Head:WaitForChild("growl")

The errors in the error console say “Workspace”, keep in mind, these NPCS are originally stored in ServerStorage before being moved to the Workspace during the fight scene. The error seems to be occuring in the Workspace. RunContext is legacy so the scripts don’t run until the NPCS are in the workspace.

I think I misunderstood what you posted from the first reply.
This thread is more about if error logging is wrong or not so I originally thought you think the error does not make sense. Now from what I understand, your issue is more about the confusion how WaitForChild is working on game server side.
You could create a new bug report with details and it can automatically get assigned to the right person to help take a look.
Meanwhile I also have redirected your message to the group who is in charge of the game server so they could help provide a better answer to you.