Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error Message #20

Closed
Terenor opened this issue Aug 1, 2021 · 9 comments
Closed

Error Message #20

Terenor opened this issue Aug 1, 2021 · 9 comments

Comments

@Terenor
Copy link

Terenor commented Aug 1, 2021

Hi there,

i get an error message and can't figure out what it means. Probably a user error, because it worked in the past. Would appreciate your help.

System.ArgumentException: An item with the same key has already been added. Key: 0F2595:Skyrim.esm
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at System.Collections.Generic.Dictionary2.Add(TKey key, TValue value)
at Noggog.Cache2.Add(TObject item) in D:\a\CSharpExt\CSharpExt\Noggog.CSharpExt\Containers\Cache.cs:line 103 at KnowYourEnemyMutagen.Program.RunPatch(IPatcherState2 state) in C:\Users\fredd\AppData\Local\Temp\Synthesis\l3g1w2iq.tys\Git\nkpls1kc.kxw\Runner\KnowYourEnemyMutagen\Program.cs:line 149
at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass12_02.<<AddPatch>b__0>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 88 --- End of stack trace from previous location --- at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args, ModKey exportKey) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 448 at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 397 at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass36_0.<<InternalRun>b__1>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 372 Synthesis.Bethesda.Execution.CliUnsuccessfulRunException: Error running solution patcher at Synthesis.Bethesda.Execution.Patchers.SolutionPatcherRun.Run(RunSynthesisPatcher settings, CancellationToken cancel) at Synthesis.Bethesda.Execution.Runner.Run[TKey](String workingDirectory, ModPath outputPath, String dataFolder, IEnumerable1 loadOrder, GameRelease release, IEnumerable1 patchers, IRunReporter1 reporter, CancellationToken cancellation, ModPath sourcePath, PersistenceMode persistenceMode, String persistencePath)

@tr4wzified
Copy link
Owner

Does this still happen? Make sure you don't have Synthesis.esp active while regenerating it.

@Glanzer-modder
Copy link

Glanzer-modder commented Sep 7, 2021

I got the exact same error after running KnowYourEnemyPatcher for the first time (after switching from the zedit patcher). Other Synthesis patches work fine. The Synthesis.esp was removed before patching. Will go back to zedit for now. Glad to do anything on my side to help debug.

@tr4wzified
Copy link
Owner

Can you guys try again now, with the latest version of the patcher? It should auto-update in Synthesis - if it still refuses, please post the full Synthesis log file so I can have another look.

@Glanzer-modder
Copy link

Same error unfortunately. Output is in the link below (>11k lines, too big for pastebin). Let me know if you need anything else!

https://drive.google.com/file/d/1m116iYDh43svAhZrNZuhM3_s4FtTMw2Z/view?usp=sharing

@Terenor
Copy link
Author

Terenor commented Sep 8, 2021

Sorry, forgot to mention. I reinstalled synthesis and all patchers and it worked.

@Glanzer-modder
Copy link

I created a new MO2 profile with nothing enabled in it except the 5 vanilla ESMs and the Know Your Enemy Plugin. Then I ran just the KnowYourEnemy Synthesis patcher and it ran without errors. So there is some incompatibility in my mix of mods that's causing the errors. Looks like the ball is in my court. It will take some time to narrow down the cause because I have over 700 mods. If you have any suggestions that could help narrow down the search I'd appreciate it. First thing I'm going to do is to make sure that one offending record isn't accidentally duplicated somewhere.

@Glanzer-modder
Copy link

Ok, it didn't take long to figure out what the problem was. LOL What's causing the problem is if another patcher has already patched a record, the KnowYourEnemyPatcher finds that and considers it to already be patched. This means that KnowYourEnemyPatcher will always run successfully if it's first in the Synthesis patcher list.

In my case, the Engarde patcher patches record 000F2595 first and places that in the "done" queue somewhere in Synthesis. Then when the KnowYourEnemyPatcher comes along and grabs that record from Skyrim.esm, it already finds it in the "done" queue and that causes the error. If I move the KnowYourEnemyPatcher ABOVE the Engarde patcher in the patcher list in Synthesis so that it runs first, then no error occurs and all the patchers complete without errors.

This makes me think that the KnowYourEnemyPatcher isn't including the "done" queue when it searches for winning override records. It should look there first and patch the record there if it finds it. That's just a guess.

If you want to duplicate this, it's easy to do, just download the Engarde plugin, put it in your load order, then install the Engarde Synthesis patch from github and move it to the top of the patcher list above KnowYourEnemyPatcher (by dragging/dropping), then run Synthesis.

@theSkyseS
Copy link
Contributor

This one is should be fixed with 7b6d4fb

@tr4wzified
Copy link
Owner

Yup. Forgot to close it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants