anjenthedog Posted February 16, 2025 Posted February 16, 2025 Proteus 3.4.0 appears to install fine. Or that is, when I install it to a player instance that has not had it before, it behaves itself for the duration of the session in which it is first recognized by the game, and is established in its initial operation for the player instance, whether or not I do anything with it during that session, ie: Passing the MCM in a scroll through of the installed MCMs Visiting the MCM and doing nothing other than exiting the MCM Modifying settings in the MCM Not even doing anything with it at all, other than reading the momentary notification that announced it had been installed. But once I create a save, then load the save I just made, (or exit the game, then reload the game and save file) if I open console, after a moment or two, I see nothing but an endless stream of the error message in console. ex: Warning: access to non-existing object with id 0x1B (27) note: FWIW, in the above example, I don't think the specific number in parenthesis is all that germane to the error, it seems to change depending on the player instance that was there when Proteus was installed (ie it's an ~address, not the data it points to). Warning: access to non-existing object with id 0x1B is consistent no matter the (N) No clue what's goin on. I've performed a widenet search but come up ~dead so far. I even tried adding Proteus settings loader, since its MCM includes a Reset Settings button, (in case that gets humped somehow?), but the error messages just keep coming with or without clicking that button. I'm hoping someone else has seen this issue and might have an idea of what I should do to resolve it? ie without resorting to uninstalling it, which btw, DOES effectively "resolve" it. just not "advantageously"...
traison Posted February 16, 2025 Posted February 16, 2025 39 minutes ago, anjenthedog said: Warning: access to non-existing object with id... As far as I know these can be ignored. However if its being spammed excessively, perhaps its worth looking into. 36 minutes ago, anjenthedog said: I don't think the specific number in parenthesis is all that germane to the error, it seems to change depending on the player instance that was there when Proteus was installed (ie it's an ~address, not the data it points to). 27 (dec) = 0x1B (hex), its just a translation. 55 minutes ago, anjenthedog said: No clue what's goin on. I've performed a widenet search but come up ~dead so far. I gave that error message to my string search utility and it came up with one result in JContainers64.dll version 4.1.13, at offset 2387208. I threw this dll into a disassembler. Looked up the string references, and found only one, however this function seems to be called from a lot of places. If you need more, it would save a lot of time to obtain a pdb file for JContainers64.dll.
traison Posted February 16, 2025 Posted February 16, 2025 (edited) Considering the amount of references to this function that throws the error, I'm going to guess and say that all Papyrus functions provided by this module that need a form id reference will call this at some point. To find out which function called it when the error was printed to the console, a debugger would be required. Instead of blowing a week in the disassembly, I would at this point look over the psc files in Proteus and map out their use of the JContainers Papyrus API. Locate where its being called frequently (as frequently as the errors are being spammed) and focus on the input data to that area. Add Debug.Notification calls in key locations to trace the error back to invalid data, i.e. where its getting 0x1B from. Edit: Another approach that doesn't involve a debugger (at least initially), would be to set up the development environment for building JContainers, and make a build of it that prints the callstack before the error message. That combined with the pdb file would point directly at the Papyrus function causing issues, if my theory is correct. Edited February 16, 2025 by traison
traison Posted February 16, 2025 Posted February 16, 2025 (edited) Right, found something even easier: Create a Papyrus script: JValue.enableAPILog(true) Tthen let it spam the console. It seems many (or all) of the API functions have a call to JC_LOG_API in them that may shed some light on where the error is coming from. The messages are printed to the console, as well as (presumably) the JContainers64.log file. Edited February 16, 2025 by traison
anjenthedog Posted February 16, 2025 Author Posted February 16, 2025 37 minutes ago, traison said: Right, found something even easier: Create a Papyrus script: JValue.enableAPILog(true) Tthen let it spam the console. It seems many (or all) of the API functions have a call to JC_LOG_API in them that may shed some light on where the error is coming from. The messages are printed to the console, as well as (presumably) the JContainers64.log file. Ok... dumb question time: how do I do that? I have no experience creating scripts for Skyrim and don't know what to do. could be as simple as creating a .psc file in notepad ++ that just contains that line of code, but what do I name it? where do I put it? And how do I fire it?
traison Posted February 16, 2025 Posted February 16, 2025 6 minutes ago, anjenthedog said: could be as simple as creating a .psc file in notepad ++ that just contains that line of code No. 7 minutes ago, anjenthedog said: what do I name it? where do I put it? And how do I fire it? I'd create a spell, and attach the script to that. Cast the spell to turn debug logging on.
traison Posted February 16, 2025 Posted February 16, 2025 I'm creating a debug spell setup for you. Be a minute...
traison Posted February 16, 2025 Posted February 16, 2025 (edited) Install as usual. help atd 4 prid 14 addspell xxxxxxxx addspell xxxxxxxx Cast the Debug Self spell to turn on JContainers debugging. I prepared a more advanced setup in the script that you can enable later when you need to do other tests. I recommend having a spell setup like this around, as it will allow you to run code with ease when you need to fix, change or debug something in the game. Edit: Not tested. anjenthedog_debug.7z Edited February 16, 2025 by traison
anjenthedog Posted February 16, 2025 Author Posted February 16, 2025 (edited) Thanks, but console is unresponsive and I wasn't able to find any other way of firing up the script/spell. edit: Hmm... I take that back. It did fire up. tail end of start up and then Garbage collection finished in 0.000000 sec Default domain 1946 objects total 8 public objects 0 objects in aqueue Domain: GTB_JCDomain 712 objects total 6 public objects 0 objects in aqueue Load finished in 0.012000 sec Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) Warning: access to non-existing object with id 0x1B (27) the rest of the log is mainly "NativeFunction.Ctor.<something>" registration messages, and a lot more omitted "warning: access to..." Edited February 16, 2025 by anjenthedog
anjenthedog Posted February 16, 2025 Author Posted February 16, 2025 (edited) the log is pretty "opaque". At this point I'm considering just uninstalling Proteus and clearing out any leftovers that'll cause "settings persistence" issues later, then start a new character so it's clean, then investigate this a bit more leisurely. I've been stuck on it for ~2-3 days so far, and I don't even know if anyone else is using 1.6.1170 & Proteus 3.4.0 successfully, so it could be one of those Add-Item-Menu things, where "it don't work here no more" Edited February 16, 2025 by anjenthedog typo
traison Posted February 16, 2025 Posted February 16, 2025 Forgot to cast the spell? Looks different here: Spoiler ... 1628 objects total 1627 public objects 0 objects in aqueue Load finished in 0.008000 sec [Info] JValue.readFromDirectory ("Data/creatures.d", ".json") [Info] JValue.readFromFile ("Data/creatures.d/HentaiCreatures.json") [Info] JValue.readFromFile ("Data/creatures.d/MNC.json") [Info] JValue.readFromFile ("Data/creatures.d/MNC_CC.json") [Info] JValue.readFromFile ("Data/creatures.d/MNCClassic.json") [Info] JValue.readFromFile ("Data/creatures.d/MNCLurkerAlt.json") [Info] JValue.readFromFile ("Data/creatures.d/MNCRescale.json") [Info] JMap.count (000001D9A59BF2C0) [Info] JValue.retain (0x000001D9A59BF2C0, "") [Info] JMap.count (000001D9A59BF2C0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.findVal (000001DA96589CC0, ..., 0) [Info] JArray.unique (000001DA96589CC0) [Info] JValue.release (0x000001D9A59BF2C0) [Info] JValue.zeroLifetime (0x000001D9A59BF2C0) ... New debug spell mod here. This one has a quest that auto-adds the spells when the game starts. anjenthedog_debug.7z
anjenthedog Posted February 16, 2025 Author Posted February 16, 2025 Thanks, see above. it fired after all. I guess I didn't edit fast enough. It doesn't tell me anything new though. just repeats the same console messages
czod Posted April 26, 2025 Posted April 26, 2025 I'm getting the same console message spam with Proteus 3.3.1 on Skyrim SE 1.5.97.0 on several of my characters. Newer characters tend not to have it but one older character saw the messages disappear after buying a horse in Whiterun. A mod-base wipe and reload is unattractive as I use Proteus as a refugee shelter for several of my characters who were cut down in the prime of their lives by corrupted saves. I can however create a new MO2 instance for troubleshooting purposes. Which just occurred to me. I thought I had the value reported in the error message traced down to one of the Proteus json files but removing the suspect file had no effect. I'm a very low frequency visitor but I will try to pay attention and respond promptly if someone suggests troubleshooting and/or data collection. C.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now