Unhandled ArgumentOutOfRangeException in Vehicle Builder on Linux

Grug

New Member
Feb 22, 2026
5
5
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
Still the same for me, just for information:

Code:
17:02:38 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.OrbitLinePass.AddLineVertices(Viewport viewport, Span`1 inPositions, Span`1 inColors)
   at KSA.Orbit.DrawLines(Viewport viewport, double3 currentPositionEgo, SimTime currentTimeSincePe, SimTime startTime, byte4 color, TrueAnomaly startTa, TrueAnomaly nextBurnTa, Boolean joinEnds, Boolean bypassVisibilityCheck, Boolean fadeOpacity)
   at KSA.Orbit.DrawLines(Viewport viewport, double3 currentPositionEgo, SimTime currentTimeSincePe, SimTime startTime, Boolean joinEnds, Boolean bypassVisibilityCheck, Boolean fadeOpacity)
   at KSA.Celestial.AddLineInstances(Viewport inViewport)
   at KSA.Celestial.OnPreRender(Viewport inViewport)
   at KSA.CelestialSystem.OnPreRender(Viewport inViewport)
   at KSA.Universe.OnPreRender(Viewport inViewport)
   at KSA.Program.OnPreRender(Double dtPlayer)
   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.OrbitLinePass.AddLineVertices(Viewport viewport, Span`1 inPositions, Span`1 inColors)
   at KSA.Orbit.DrawLines(Viewport viewport, double3 currentPositionEgo, SimTime currentTimeSincePe, SimTime startTime, byte4 color, TrueAnomaly startTa, TrueAnomaly nextBurnTa, Boolean joinEnds, Boolean bypassVisibilityCheck, Boolean fadeOpacity)
   at KSA.Orbit.DrawLines(Viewport viewport, double3 currentPositionEgo, SimTime currentTimeSincePe, SimTime startTime, Boolean joinEnds, Boolean bypassVisibilityCheck, Boolean fadeOpacity)
   at KSA.Celestial.AddLineInstances(Viewport inViewport)
   at KSA.Celestial.OnPreRender(Viewport inViewport)
   at KSA.CelestialSystem.OnPreRender(Viewport inViewport)
   at KSA.Universe.OnPreRender(Viewport inViewport)
   at KSA.Program.OnPreRender(Double dtPlayer)
   at KSA.Program.OnFrame(Double currentPlayerTime, Double dtPlayer)
   at KSA.App.Run()
   at KSA.Program.Main(String[] inArgs)
17:02:38  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/petov/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/petov/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)

Aborted                    (core dumped) ./KSA