this post was submitted on 03 Feb 2026
335 points (99.4% liked)
Programmer Humor
29256 readers
891 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It'd be nice if the console just plainly flat out told what happened instead of being obfuscated in the first place so I could quickly do it myself without having to ask for help..
Speaking as a software engineer, that's always the goal! In all actuality, though, if the program knew what happened, it could probably self-correct. When you're getting stack traces, it's the computer saying, "I dunno, I can't make head nor tail of this mess, and if I keep going something's going to break, so YOU figure it out." It's not intentionally obfuscated, it's telling you exactly what the problem is from its perspective.
If I gave you directions to meet me at a place you weren't familiar with, but I gave you the wrong directions, when you called me you wouldn't be like, "hey, just so you know, I turned left on 5th Street when I should've turned right." If you knew that, you'd just go back to 5th and turn the other way. You'd call me and say, "so I have no idea where I am. Your directions say to turn left here, but if I do that I'll literally walk into the ocean and I'm pretty sure I see sharks in the water. There's a statue of a sea horse on my right, and I passed a Shake Shack about two blocks back."
That's what a stack trace is. It's supposed to be a message to the developer, not to the user. The developer should get the stack trace and either fix the problem that led to that issue in the first place, or add better error handling so that when it fails the program can tell you in more plain language what to do.
Fantastic explanation
Thank you, you're very kind.
It does. It clearly says
java.lang.NoSuchMethodError. If that's too complicated for you, you still need help.I mean, it got that error in
class_5699.method_65313so it's not like it isn't obfuscated at all.Congratulations you've discovered that Mojang used to ship the game after it was obfuscated! Java has nothing to do with the fact it's obfuscated that's on Mojangs end, for goofy "This'll allow us to sue people who copy our game" logic. NeoForge came out the gate with official mappings at runtime (non obfuscated using the offical names Mojang provides. Yes Mojang obfuscated the game and then gives us the names of stuff anyway...) and recently Mojang announced they are finally dropping obfuscation all together.
Edit. To make sure this is totally clear the obfuscated names such as
class_5699.method_65313is the actual class name and method name. The jar has a class namedclass_5699which Java loads and treats like any other class. Very goofy and annoying for modders since if you wanted a useful name you have to first decompile Minecraft, then change all the names, and then when you compile change all references to said names in your code back to their actual obfuscated nonsense.I expect this is what things like Forge were handling, right?
The next line implicates the
de.mschae23.grindenchantmentsmod; seems like a pretty clear starting point for troubleshooting.The code to handle errors would be so bloated to deal with every conceivable and inconceivable situation you will get errors on your errors.
The computer is as helpful as it can be with what little context it knows of what was going on. Mostly it just knows that codeline 123 went fine and 124 went not.
That’s what fabric mod loader does! It tries to diagnose the issue for you by checking for incompatibilities and missing dependencies. It actually gets most of the problems with mod packs pretty quickly
And from what I can tell based on the callout at the end... This is a line from
connectorwhich is a compatibility layer that allows running Fabric mods on Neoforge.Which means connector is going to be included in every stack trace, regardless of how related it is to the problem. It will be the one to raise the errors that couldn't be caught and managed... But AI will see connector being the one probably flagging the errors and be more likely to tag it as a "suspected" mod. I wouldn't be shocked to find out that AI has a tendency to shoot the messenger.
In some cases. However most often when there is a stack trace it is because something I didn't expect happened - I can't tell you how we got there or how to correct it because if I knew I would have just had the code do that in the first place. If the error is something the user did though I'd expect a clean error message.