Unhandled ArgumentOutOfRangeException in Vehicle Builder on Linux

Grug

New Member
Feb 22, 2026
5
4
I am well aware that the vehicle editor is in a very early stage and is likely unstable, but I am providing the exception details in case this information is helpful.

Game Version

2026.4.10.4057 Linux client (and several prior)

Operating System + System Specs

Linux (Debian Forky/Testing)
Intel Core Ultra 5 245K
32GB RAM
NVIDIA GeForce RTX 5070 Ti - Nvidia open source driver v595.58.03

What Happened​

Building a vehicle and randomly when clicking somewhere - on a new part, or sometimes the Staging / Sequencing windows - the ArgumentOutOfRangeException is thrown.

What Was Expected​

The exception to be handled and not crash the application.

I have always had the occasional crash, but this seems to now be consistent. I have previously built a few multi-stage rockets with 50+ parts and not had it crash. Now it seems the max I can get is about 10 and I haven't been able to complete a single rocket and launch since this bug was introduced. I'm not 100% sure which was the last version that worked, but it has been an issue for at least a week now.

Reproduction Steps​

  1. Start building a new rocket
  2. Keep going until it crashes (usually less than 10 parts)
  3. ???
  4. Profit?

Reproduction Rate​

100%, but when is not consistent. Sometimes it happens after 2-3 parts, sometimes it is after adding 15.

Exception Details​

Code:
05:31:52 ERROR Unhandled exception System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at Brutal.VulkanApi.Abstractions.MappedMemory.AsSpan()
   at KSA.Rendering.DeviceHostSharedMemory.Resize(ByteSize newSize)
   at KSA.Rendering.DeviceHostSharedMemory.Borrow(ByteSize borrowSize)
   at KSA.Rendering.DeviceVector.Resize(ElementCount inCapacity)
   at KSA.Rendering.DeviceVector.Add(ReadOnlySpan`1 inData)
   at KSA.StaticCelestialDistanceRendering.UpdateRenderData(Viewport viewport, Int32 frameIndex)
   at KSA.Program.UpdateRenderingResources(Int32 frameIndex)
   at KSA.Program.Render(Double dtPlayer, FrameResult result, AcquiredFrame acquiredFrame)
   at KSA.Program.OnFrame(Double currentPlayerTime, Double dtPlayer)
   at KSA.App.Run()
   at KSA.Program.Main(String[] inArgs).
Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
   at Brutal.VulkanApi.Abstractions.MappedMemory.AsSpan()
   at KSA.Rendering.DeviceHostSharedMemory.Resize(ByteSize newSize)
   at KSA.Rendering.DeviceHostSharedMemory.Borrow(ByteSize borrowSize)
   at KSA.Rendering.DeviceVector.Resize(ElementCount inCapacity)
   at KSA.Rendering.DeviceVector.Add(ReadOnlySpan`1 inData)
   at KSA.StaticCelestialDistanceRendering.UpdateRenderData(Viewport viewport, Int32 frameIndex)
   at KSA.Program.UpdateRenderingResources(Int32 frameIndex)
   at KSA.Program.Render(Double dtPlayer, FrameResult result, AcquiredFrame acquiredFrame)
   at KSA.Program.OnFrame(Double currentPlayerTime, Double dtPlayer)
   at KSA.App.Run()
   at KSA.Program.Main(String[] inArgs)
05:31:52  WARN Monitor subprocess error output: Unhandled exception. System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'dotnet-dump' with working directory '/home/ian/Documents/My Games/Kitten Space Agency/crashdumps/LastChance'. No such file or directory)
 ---> System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'dotnet-dump' with working directory '/home/ian/Documents/My Games/Kitten Space Agency/crashdumps/LastChance'. No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Brutal.Monitor.Subprocess.Collector.CollectSync(String folder, DumpType dumpType, CancellationTokenSource cancellationToken)
   at Brutal.Monitor.Subprocess.Collector.<>c__DisplayClass12_0.<Collect>b__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Brutal.Monitor.Subprocess.Collector.Collect(String folder, DumpType type)
   at Brutal.Monitor.Subprocess.Collector.CollectLastChance()
   at Brutal.Monitor.Subprocess.Subprocess.Run()
   at Brutal.Monitor.Subprocess.Subprocess..ctor(Process parentProcess)
   at Brutal.Monitor.Subprocess.Program.Main(String[] args)
 
Upvote 0