Stratum version
indev at HEAD, clean checkout. Not tied to a pending pull request.
Base game version
1.22.7
OS and .NET runtime
Linux and WSL, .NET 10
Stack trace
[Server Error] [VSCreativeMod.dll] An exception was thrown trying to load the ModInfo:
[Server Error] [VSCreativeMod.dll] Exception: Failed to resolve assembly: 'VintagestoryAPI, Version=1.22.7.0, Culture=neutral, PublicKeyToken=null'
at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
...
at Vintagestory.Common.ModContainer.LoadModInfoFromCode(...)
The same failure hits VSEssentials.dll. With both unresolved, survival's game dependency is reported missing, no mod systems load, and the server then throws an unhandled NullReferenceException in WorldConfig.loadWorldConfigValuesFromPlaystyle(), called from SaveGame.SetNewWorldConfig during ServerSystemModHandler.OnLoadAssets, which kills the process before it reaches RunGame.
What was happening
The server was loading assets during scripts/smoke-test.sh on a clean indev build. VintagestoryAPI.dll is present in the build output next to the mod DLLs, so this is Mono.Cecil's own resolver, used only for the IsModSystem metadata scan at ModContainer.cs:524, not being given the search path the normal .NET loader uses. It is not a missing file.
Reproduction steps
bash scripts/bootstrap.sh
dotnet build VintageStory.slnx -c Release
bash scripts/smoke-test.sh
On a clean indev checkout, Linux or WSL, .NET 10, base version 1.22.7.
Mods loaded
Stock bundled mods only: VSCreativeMod, VSEssentials, VSSurvivalMod. No third-party mods.
Note
This blocks the smoke-test half of the pre-PR gate in docs/agent/stratum.md and CONTRIBUTING.md for every branch, not one pull request. Likely fix area: give the Cecil resolver the mod output directory as an extra search path in the IsModSystem scan.
Stratum version
indevat HEAD, clean checkout. Not tied to a pending pull request.Base game version
1.22.7
OS and .NET runtime
Linux and WSL, .NET 10
Stack trace
The same failure hits
VSEssentials.dll. With both unresolved,survival'sgamedependency is reported missing, no mod systems load, and the server then throws an unhandledNullReferenceExceptioninWorldConfig.loadWorldConfigValuesFromPlaystyle(), called fromSaveGame.SetNewWorldConfigduringServerSystemModHandler.OnLoadAssets, which kills the process before it reachesRunGame.What was happening
The server was loading assets during
scripts/smoke-test.shon a cleanindevbuild.VintagestoryAPI.dllis present in the build output next to the mod DLLs, so this is Mono.Cecil's own resolver, used only for theIsModSystemmetadata scan atModContainer.cs:524, not being given the search path the normal .NET loader uses. It is not a missing file.Reproduction steps
On a clean
indevcheckout, Linux or WSL, .NET 10, base version 1.22.7.Mods loaded
Stock bundled mods only:
VSCreativeMod,VSEssentials,VSSurvivalMod. No third-party mods.Note
This blocks the smoke-test half of the pre-PR gate in
docs/agent/stratum.mdandCONTRIBUTING.mdfor every branch, not one pull request. Likely fix area: give the Cecil resolver the mod output directory as an extra search path in theIsModSystemscan.