From e3d40d68a74ba4af09675d59e6abe03b512bd6aa Mon Sep 17 00:00:00 2001 From: openclaw-agent Date: Sat, 27 Jun 2026 04:06:03 +0000 Subject: [PATCH] fix(editor): guard STL/OBJ/GLB export against undefined geometry.index (Sentry EDITOR-E0) --- packages/editor/src/lib/glb-export.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/editor/src/lib/glb-export.ts b/packages/editor/src/lib/glb-export.ts index 7f614993c..f6997f540 100644 --- a/packages/editor/src/lib/glb-export.ts +++ b/packages/editor/src/lib/glb-export.ts @@ -120,6 +120,7 @@ export function prepareSceneForExport( } pruneNonRenderableMeshes(scene, identityNodes) + normalizeGeometryIndex(scene) convertMaterials(scene) const { clips, clipNamesByNode } = bakeAnimationClips(cloneByOriginal, nodes) @@ -219,6 +220,24 @@ function pruneNonRenderableMeshes(root: THREE.Object3D, identityNodes: Set { + const mesh = object as THREE.Mesh + if (!mesh.isMesh) return + const geometry = mesh.geometry as THREE.BufferGeometry | undefined + if (geometry && geometry.index === undefined) geometry.index = null + }) +} + function isRenderableMesh(mesh: THREE.Mesh): boolean { const position = mesh.geometry?.getAttribute('position') if (!position || position.count === 0) return false