Copyright © 2026 Unity Technologies
Steps to reproduce:
1. Open the attached user's project "ExcelTestDemoProject.zip"
2. Set "Project Settings > Player > Other Settings > Scripting Backend to IL2CPP"
3. Build a Windows Standalone Player with "Development Build" enabled
4. Run the attached "run-loop.ps1" harness to launch the Player 30 times as a new process each time, with a private log per run:
powershell -NoProfile -ExecutionPolicy Bypass -File "RootToScript\run-loop.ps1" -Runs 30 -Exe "RootToPlayer\Player.exe" -LogDir "RootToLogs\Logs"
5. Open "RootToLogs\summary.txt" and observe the failure count
Actual result: Roughly two runs in three fail with "System.InvalidProgramException: SpreadsheetGear: Invalid signed license" on a valid license, because the library's SHA-512/RSA signature check over System.Numerics.BigInteger intermittently computes a wrong answer on nested Task.Run work items
Expected result: All 30 runs log ten "Try 1 - iteration" lines with no exception, matching Mono backend results
Reproducible with: 6000.0.83f1, 6000.3.24f1, 6000.6.0f1, 6000.7.0b1, 7000.0.0a1
Testing Environment: Windows 11
Not reproducible on: no other environment tested
Notes:
-Not reproducible with the Mono scripting backend
-The library caches its license verdict for the lifetime of the process, so the bug can only be sampled across separate process launches. Restarting the scene inside one run proves nothing, which is why step 4 is automated.
-Failure rate is load-sensitive: ~1 in 5 on an idle machine, ~2 in 3 under load
-The user's production build (6000.3.17f1) also crashes with an access violation while copying a uint[] inside BigIntegerCalculator.Divide on the same code path
-SpreadsheetGear 9.3.72 reduced but did not eliminate the nested Task.Run usage in the activation routine, which dropped the rate to ~1% without fixing it
Issues you vote on will appear here