affaan-m/ECC · error · SystemExit
unsupported mesh format
Error message
unsupported mesh format: {suffix} What it means
Format dispatch guard in build: the mesh file's extension is not one of the supported importers (.glb, .gltf, .obj, .fbx), so no importer can be selected and the build exits before touching Blender state.
Solutions
- Convert the mesh to .glb, .gltf, .obj, or .fbx with a 3D tool or Blender export
- Check the file extension for typos (e.g. .blend is not accepted here)
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at skills/taste-application/scripts/blender_prop.py:185 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/83e6e583478e9ab1.
Report an issue: GitHub.
Appendix: source
Thrown at skills/taste-application/scripts/blender_prop.py:185
if out is not None and receipt is not None and out.absolute() == receipt.absolute():
raise ValueError("receipt and scene output must be distinct")
source_hash = _sha256(mesh)
grade = pack / "grade.json"
grade_hash = _sha256(grade) if grade.is_file() else None
import bpy
import mathutils
bpy.ops.wm.read_factory_settings(use_empty=True)
suffix = mesh.suffix.lower()
if suffix in (".glb", ".gltf"):
bpy.ops.import_scene.gltf(filepath=str(mesh))
elif suffix == ".obj":
bpy.ops.wm.obj_import(filepath=str(mesh))
elif suffix == ".fbx":
bpy.ops.import_scene.fbx(filepath=str(mesh))
else:
raise SystemExit(f"unsupported mesh format: {suffix}")
objs = [o for o in bpy.context.scene.objects if o.type == "MESH"]
if not objs:
raise SystemExit(f"no mesh geometry found in {mesh}")
mn = mathutils.Vector((float("inf"),) * 3)
mx = mathutils.Vector((-float("inf"),) * 3)
for o in objs:
for c in o.bound_box:
w = o.matrix_world @ mathutils.Vector(c)
mn = mathutils.Vector(min(mn[i], w[i]) for i in range(3))
mx = mathutils.Vector(max(mx[i], w[i]) for i in range(3))
validate_bounds(mn, mx)
center = (mn + mx) / 2.0
radius = max((mx - mn).length / 2.0, 1e-4)
print(f"[prop] {len(objs)} mesh object(s), radius {radius:.4f}")
pivot = bpy.data.objects.new("turntable_pivot", None)View on GitHub (pinned to 8321021c54)