OpenVSP crashes immediately when loading vsp3 file after repeated Undo on Stack Rotation

31 views
Skip to first unread message

PKG

unread,
Aug 7, 2026, 9:46:25 AM (7 days ago) Aug 7
to OpenVSP
Hello everyone,

I’m hoping someone can help me recover a project that I have been working on for a while.
The project is a fairly large aircraft model (approximately 2 MB) and all of the geometry was created natively in OpenVSP.

I was editing a Stack component and changing its rotation, I then repeatedly pressed 'undo' several times in succession, and OpenVSP subsequently crashed. After that, the vsp3 file could no longer be opened. Even despite downloading the latest OpenVSP version and trying to open the file in it, it's been of no use.
Upon opening the file, the application doesn't reach the normal GUI, a cmd window appears briefly and the app closes.

(P.S, I made the design on the OpenVSP 3.47.0 version)

Sidenote, I'd inspected the XML structure of the file and it appeared fine. No truncations or anything. I have no idea what happened, so I'd appreciate any guidance from someone familiar with the OpenVSP file format.

Attached to this message is the vsp3 file

Tailless Flying Wing Bomber (4Aug26).vsp3

Brandon Litherland

unread,
Aug 7, 2026, 10:37:40 AM (7 days ago) Aug 7
to OpenVSP
I'm not immediately seeing what could be causing the problem and I'm having trouble catching any error messages.  
Maybe Rob has a way to see the log that I don't  and can help.

Brandon Litherland

unread,
Aug 7, 2026, 10:40:01 AM (7 days ago) Aug 7
to OpenVSP
So, I through to try and load the model into the API and it killed my Python kernel.  Not sure what that's about.

vsp.ReadVSPFile("Tailless Flying Wing Bomber.vsp3")

The kernel died, restarting...

Brandon Litherland

unread,
Aug 7, 2026, 10:48:21 AM (7 days ago) Aug 7
to OpenVSP
I let Claude have a go at this and this was the response.  I don't know at the moment if this is strictly accurate but you can try.

Based on an analysis of the provided VSP3 XML data, your file is crashing OpenVSP because of two critical data corruption issues. OpenVSP relies on strict component typing and a strict "single-parent" hierarchy tree to allocate memory, build the model, and render it.

Here are the specific issues and how to fix them using a text editor (like Notepad++ or VS Code):

### 1. Component Type Mismatch (`AVEEBZCGMQ` - APU Core)
The component named **"APU Core"** contains a `<CustomGeom>` block defining a custom script geometry (`<ScriptFileModule>Duct</ScriptFileModule>`). However, if you look at its `<GeomBase>` at the bottom of the component block, it is mistakenly defined as a standard `Pod`:
```xml
<GeomBase>
  <TypeName>Pod</TypeName>
  <TypeID>3</TypeID>
...
```
When OpenVSP parses a `<CustomGeom>` block but encounters a standard `Pod` type instead of a `Custom` type, it fails to map the properties correctly in memory, resulting in a segmentation fault (crash).

**How to fix it:**
Search for `<ID>AVEEBZCGMQ</ID>` and scroll down to its `<GeomBase>`. Change the `TypeName` and `TypeID` to match a custom component:
```xml
<GeomBase>
  <TypeName>Custom</TypeName>
  <TypeID>9</TypeID>
  <TypeFixed>0</TypeFixed>
  <ParentID>XNPNKMWPRA</ParentID>
...
```

### 2. Corrupted Parent/Child Hierarchy
In OpenVSP, a child component can only have **one** parent. In your file, two different parent components are claiming the exact same children.
* Component **`DMZRAAYRKH` (LOX Converter)**
* Component **`AVEEBZCGMQ` (APU Core)**

Both of these have the exact same `<Child_List>` claiming `KJPYBIQARH` (APU Exhaust) and `MXSKUDYPER` (Solid State Batteries) as children:
```xml
<Child_List>
  <Child>
    <ID>KJPYBIQARH</ID>
  </Child>
  <Child>
    <ID>MXSKUDYPER</ID>
  </Child>
</Child_List>
```
Because the children explicitly define their `ParentID` as `AVEEBZCGMQ` further down the file, the list in **LOX Converter** is a corrupted duplicate. When OpenVSP tries to read this, it processes the children twice from two different branches, resulting in a "double-free" crash or infinite loop.

**How to fix it:**
Search for `<ID>DMZRAAYRKH</ID>` (LOX Converter) and scroll down to its `<GeomBase>`. Delete the child nodes so it reflects an empty list, like this:
```xml
<GeomBase>
  <TypeName>Pod</TypeName>
  <TypeID>3</TypeID>
  <TypeFixed>0</TypeFixed>
  <ParentID>DEDYHMTWLM</ParentID>
  <Child_List/>
  <Step_Child_List/>
</GeomBase>
```

### Summary
Make these two manual text edits, save the `.vsp3` file, and it should open in OpenVSP without crashing. The corruption usually happens due to a copy-paste glitch in the GUI or a plugin script attempting to re-parent geometry incorrectly.

Brandon Litherland

unread,
Aug 7, 2026, 12:38:58 PM (7 days ago) Aug 7
to OpenVSP
I think Claude got this one wrong, however.

Rob McDonald

unread,
Aug 7, 2026, 1:28:28 PM (7 days ago) Aug 7
to OpenVSP
I can't debug this properly until I'm back home, but here is the stack trace from the crash...

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   vsp                                  0x1045c5c17 SubSurface::UpdateOrientation() + 375
1   vsp                                  0x1045c5846 SubSurface::Update() + 1574
2   vsp                                  0x1045caafd SSXSecCurve::Update() + 797
3   vsp                                  0x1045cad68 SSXSecCurve::SetXSecCurveType(int) + 456
4   vsp                                  0x1045ca640 SSXSecCurve::SSXSecCurve(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int) + 976
5   vsp                                  0x1045cb337 SSIntersect::SSIntersect(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int) + 23
6   vsp                                  0x10441bd47 Geom::AddSubSurf(int, int) + 503
7   vsp                                  0x10440dddf Geom::DecodeXml(_xmlNode*&) + 543
8   vsp                                  0x1043d2ce6 FuselageGeom::DecodeXml(_xmlNode*&) + 22
9   vsp                                  0x10469c7c8 Vehicle::DecodeXmlGeomsOnly(_xmlNode*&) + 584
10  vsp                                  0x10469bf9d Vehicle::DecodeXml(_xmlNode*&) + 397

So, this tells us that the problem is in a FuselageGeom, with an Intersect type SubSurface.

If you want to edit the xml file, you can remove the intersection subsurfaces and see if that helps.

I did this.  I noticed that you had a bunch of intersection subsurfaces that didn't appear to have ever been intersected - maybe that was the problem.  I deleted them all and the file opened fine.

I will debug this later and hopefully be able to find a way to open the file without changes, but hopefully this gets you moving again.

rob




On Friday, August 7, 2026 at 9:46:25 AM UTC-4 PKG wrote:
Reply all
Reply to author
Forward
0 new messages