This occurs when importing CSV values to either Doc User Text or Block Attribute texts and happens constantly. Further, it’ll be REAL easy to find (I think).
This one CAN be a total killer as when it does occur you lose any unsaved changes you have.
Background and what this is:
So I have some fairly elaborate templates with a lot of predefined layouts for drawing packages.
These consist of separate template files for:
TOC (cover page, and 2 pages of drawings lists)
Plans and Elevations
Schematics
Rack Elevations
These all share a common (and fairly involved) Title Block block what has a combination of document user text fields and layout user text fields.
Between all the templates there’s some 500+ document user text items, and a couple hundred layout user text items.
To facilitate this I’ve written an Excel template that goes with the file where you fill in the job info:
On other tabs are tables for tracking revisions:
And a table for the overall drawing package:
As you add pages to the package itself, it generates the lists of layouts for each type of drawing file, the file names and all the various data that will go into the various blocks in Rhino.
Behind the scenes it sorts out which Doc User Text fields will be used by which drawing file (the table for the “table of contents” file shown here but there’s others for the other files types as well.
Once you’ve entered (or modified in the case of revisions) a button kicks a fairly involved VBA script that based on the folder the excel template is in, makes copies of the source Rhino templates, renames them via a standardized naming format, and creates an archive folder in the job folder.
Then it goes through the various file type tables and generates a series of CSV files that contain the populated key value pairs for the Document User Texts that are global to all the files, and the various individual layout user text and in some cases block user text files as needed and writes those out to the job folder as well.
At this point, normally I open the VBA copied and renamed TOC template file, select and delete all the place holder Doc User Text items, and go to the TOC index layouts and delete those layout user text items.
Next I import the document user text items from the pre-written CSV file and the table of contents layout user text files from a pair of CSV’s for those and save the TOC File.
Finally I open the various other file types, select and delete the placeholder Doc User Text and layout user text items and import the “new” Doc User Text and Layout User Text values from the just saved job TOC Rhino File and I’m done.
All the revs are in place, the layouts all have the proper page numbers, all that.
However..
For the last couple of months (not sure what update it was) that’s utterly broken.
Everything is fine right up to attempting to open any CSV to load either document user text or layout user text item. Hitting the open button (folder icon on the Doc User Text or Layout User Text panes) generates an instant fatal.
Further, if you’ve got unsaved changes when doing so (which is often the case during revisions) you lose those as well as the ability to go back to the temp file as well.
This bug has to be due to some change somebody made to that portion of the code as it always fails with this:
Process: Rhinoceros [32007]
Path: /Applications/Rhino 8.app/Contents/MacOS/Rhinoceros
Identifier: com.mcneel.rhinoceros.8
Version: 8.20 (8.20.25157.13002)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2025-07-02 07:59:30.6275 -0500
OS Version: macOS 15.4 (24E248)
Report Version: 12
Anonymous UUID: 9758C42E-7B7D-FBB6-4C2D-A0421E35CD6D
Time Awake Since Boot: 580000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process: Rhinoceros [32007]
Application Specific Information:
abort() called
Application Specific Backtrace 0:
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object.
- at Eto.Mac.Forms.SavePanelDelegate.ShouldEnableUrl(NSSavePanel panel, NSUrl url) in /Users/bozo/TeamCity/buildAgent/work/96e64af5b81c6f85/src4/DotNetSDK/Eto/src/Eto.Mac/Forms/MacFileDialog.cs:line 24*
- at InvokeStub_SavePanelDelegate.ShouldEnableUrl(Object, Span`1)*
- at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture)*
— End of stack trace from previous location — - at ObjCRuntime.Runtime.InvokeMethod(MethodBase method, Object instance, IntPtr native_parameters)*
- at ObjCRuntime.Runtime.InvokeMethod(MonoObject* methodobj, MonoObject* instanceobj, IntPtr native_parameters)*
- at ObjCRuntime.Runtime.bridge_runtime_invoke_method(MonoObject* method, MonoObject* instance, IntPtr parameters, IntPtr* exception_gchandle)*
[END ERROR]
Note this:
/Users/bozo/TeamCity/
I have no user named bozo on my system nor any folder called TeamCity, so it looks like somebody on your end inadvetantly hardcoded a path to their local machine in there somewhere.
Whoever has a user named Bozo on their system is likely your culprit.
FWIW, for some inexplicable reason this only occurs the FIRST time you try to use the copied template files to import the CSV values to.
It’ll crash, but if I restart and try to import them again, that time it’ll work, which is why I hadn’t taken the time write this up previously as I’ve been buried in production work and didn’t have the time to document it as I had a (albeit painful) work around which was to let it crash once for each file then reopen an import a 2nd time and move on.
System Info Below, but in this case I rather doubt the problem is a specific system / config / os build etc..
I reported it this time because I’d made a mess of revisions to a set of as builts and had forgot to save 3 of the 4 template files which were open when I updated the revision history and went to import that and the crash took out all 4 template file changes and a good 5 hours of work in the process.
And that provided the motivation to get around to reporting this.
Rhino 8 SR20 2025-6-6 (Rhino 8, 8.20.25157.13002, Git hash:master @ 73b00899cf43922900a763212f167c03dc6f27cc)
License type: Commercial, build 2025-06-06
License details: Cloud Zoo
Apple macOS Version 15.4 (Build 24E248) (Physical RAM: 192GB)
Mac Model Identifier: Mac14,14
Language: en-US (MacOS default)
.NET 8.0.14
Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
Apple M2 Ultra
GPU Vendor: Apple
USB devices
Generic: USB2.1 Hub
Generic: USB2.1 Hub
ASMT: USB 3.0 Destop HD EP0 Product string
Generic: USB3.0 Card Reader
Generic: USB Storage
GN Jabra A/S: Jabra PanaCast
JMicron: TREBLEET
Generic: USB2.1 Hub
Kensington: Kensington Slimblade Trackball
Apple, Inc: Apple Keyboard
3Dconnexion: SpaceMouse Enterprise
Bluetooth devices
None
Third party kernel extensions
None
Third party plugins
/usr/lib/swift/libswiftCore.dylib
/usr/lib/swift/libswiftObjectiveC.dylib
/usr/lib/swift/libswiftCoreFoundation.dylib
/usr/lib/swift/libswiftDarwin.dylib
/usr/lib/swift/libswiftDispatch.dylib
/usr/lib/swift/libswiftIOKit.dylib
/usr/lib/swift/libswiftSystem.dylib
/usr/lib/swift/libswiftXPC.dylib
/usr/lib/swift/libswift_Builtin_float.dylib
/usr/lib/swift/libswift_Concurrency.dylib
/usr/lib/swift/libswift_StringProcessing.dylib
/usr/lib/swift/libswift_errno.dylib
/usr/lib/swift/libswift_math.dylib
/usr/lib/swift/libswift_signal.dylib
/usr/lib/swift/libswift_stdio.dylib
/usr/lib/swift/libswift_time.dylib
/usr/lib/swift/libswiftos.dylib
/usr/lib/swift/libswiftsys_time.dylib
/usr/lib/swift/libswiftunistd.dylib
/usr/lib/swift/libswiftDistributed.dylib
/usr/lib/swift/libswiftObservation.dylib
/usr/lib/swift/libswiftSynchronization.dylib
/usr/lib/swift/libswiftMetal.dylib
/usr/lib/swift/libswiftOSLog.dylib
/usr/lib/swift/libswiftQuartzCore.dylib
/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
/usr/lib/swift/libswiftsimd.dylib
/usr/lib/swift/libswiftRegexBuilder.dylib
/usr/lib/swift/libswift_RegexParser.dylib
/usr/lib/swift/libswiftCoreAudio.dylib
/usr/lib/swift/libswiftCryptoTokenKit.dylib
/usr/lib/swift/libswiftAVFoundation.dylib
/usr/lib/swift/libswiftCoreLocation.dylib
/usr/lib/swift/libswiftCoreMIDI.dylib
/usr/lib/swift/libswiftCoreMedia.dylib
/usr/lib/swift/libswiftCoreImage.dylib
/usr/lib/swift/libswiftAccelerate.dylib
/usr/lib/swift/libswiftNaturalLanguage.dylib
/usr/lib/swift/libswiftMLCompute.dylib
/usr/lib/swift/libswiftCompression.dylib
/usr/lib/swift/libswiftDataDetection.dylib
/usr/lib/swift/libswiftCoreGraphics.dylib
/usr/lib/swift/libswiftFoundation.dylib
/usr/lib/swift/libswiftSwiftOnoneSupport.dylib
/Library/Frameworks/3DconnexionClient.framework/Versions/A/3DconnexionClient
/usr/lib/usd/libusd_ms.dylib
/usr/lib/swift/libswiftIntents.dylib
/usr/lib/swift/libswiftSpatial.dylib
/usr/lib/swift/libswiftAppleArchive.dylib
/usr/lib/swift/libswiftDemangle.dylib
/usr/lib/swift/libswiftVideoToolbox.dylib
/usr/lib/swift/libswiftGameplayKit.dylib
/usr/lib/swift/libswiftSpriteKit.dylib
/usr/lib/swift/libswiftPassKit.dylib
/usr/lib/swift/libswiftGLKit.dylib
/usr/lib/swift/libswiftMetalKit.dylib
/usr/lib/swift/libswiftModelIO.dylib
/usr/lib/swift/libswiftSceneKit.dylib
/usr/lib/swift/libswiftMapKit.dylib
/usr/lib/log/liblog_network.dylib
Rhino plugins that do not ship with Rhino
Rhino plugins that ship with Rhino
/Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework “Renderer Development Kit” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp “Commands” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp “Snapshots” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp “RDK_EtoUI” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp “MeshCommands” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp “Rhino Render” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp “RhinoCycles” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/PlugIns/AnimationTools.rhp “AnimationTools” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp “SectionTools” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/PlugIns/RhinoRender.rhp “Legacy Rhino Render” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/PlugIns/RhinoBonusTools.rhp “Rhino Bonus Tools” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp “Displacement” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp “PanelingTools” 8.20.25157.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp “IronPython” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp “Grasshopper” 8.20.25157.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp “RhinoCodePlugin” 8.20.25157.13002



