Consistent Fatal Crash, totally reproducible, bad hardcoded path

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

I’m not seeing this in a blank file, can you post a small example file that we can replicate in?

This is most likely a non-factor, bozo/TeamCity is part of the build process i believe.

Well being as it’s literally the first thing referenced in the fatal crash:

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*

Looks to me to be a factor..

As for a sample, sure I can send you the working files, just not going to post them on the forum (have customer data etc). Got a drop box or something?

Here is the link to upload to McNeel privately, please put a link to this thread as well.

On a side note, looking at your crash reports many seem related to metal, there was improvements put in by Apple in 15.6 ( you are currently on 15.4 i believe)

Will know shortly. Been super buried with a mess of stuff, but will be revising some of this stuff and if it’s still there will encounter it.

Thanks.