Hello,
getSaveFilePath intermittently causes an assertion within macOS. I can’t figure out the conditions that cause it to happen. In another app I am working on I have had the same problem, and not passing any file types into getSaveFilePath (i.e. no 2nd argument) often helped.
Assertion failure in -[NSSavePanel _attachSandboxExtensions:toURL:orURLs:]
I’ve tried one of the sample apps that uses getSaveFilePath and it doesn’t have this issue (which suggests that something is amiss with my project, but I can’t think of what I might have modified that is relevant). I’m running 10.15.7.
Any tips or thoughts on how to debug?
I’m using the dev branch of libcinder, but I believe I had this issue also with the latest stable release, too. (I’ve made some tweaks to ImGui to update it to its latest release.)
Chaim
2021-07-29 19:47:46.224255-0700 Castle2d[49141:3256573] Metal API Validation Enabled
2021-07-29 19:47:54.709993-0700 Castle2d[49141:3256573] *** Assertion failure in -[NSSavePanel _attachSandboxExtensions:toURL:orURLs:], /AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1894.60.101/Nav.subproj/OpenAndSavePanelRemote/NSVBOpenAndSavePanels.m:712
2021-07-29 19:47:54.712770-0700 Castle2d[49141:3256573] -[NSSavePanel observeValueForKeyPath:ofObject:change:context:] caught non-fatal NSInternalInconsistencyException 'ROSP: sandbox extension failure: nil result or wrong class type ((null)) for enumerated URL (file:///Users/chaim/Documents/Projects/Castles/Castle2d/assets/maps/box.c2d, /Users/chaim/Documents/Projects/Castles/Castle2d/assets/maps/box.c2d)!' with backtrace (
0 CoreFoundation 0x00007fff327f5627 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6b6d55bf objc_exception_throw + 48
2 CoreFoundation 0x00007fff3281e7c8 +[NSException raise:format:arguments:] + 88
3 Foundation 0x00007fff34f1090d -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
4 AppKit 0x00007fff303decee __53-[NSSavePanel _attachSandboxExtensions:toURL:orURLs:]_block_invoke + 309
5 CoreFoundation 0x00007fff3276cfc7 __NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ + 7
6 CoreFoundation 0x00007fff327837b5 -[__NSSingleObjectArrayI enumerateObjectsWithOptions:usingBlock:] + 80
7 AppKit 0x00007fff303dea89 -[NSSavePanel _attachSandboxExtensions:toURL:orURLs:] + 125
8 AppKit 0x00007fff303e3826 -[NSSavePanel _URLsWithSecurityScoped:] + 193
9 AppKit 0x00007fff303ded27 -[NSSavePanel _attachSandboxExtensionsAndStartAccessing] + 48
10 AppKit 0x00007fff303df6c2 -[NSSavePanel nameFieldStringValue] + 27
11 AppKit 0x00007fff303e00d3 -[NSSavePanel completeWithReturnCode:url:urls:] + 259
12 AppKit 0x00007fff303e2062 -[NSSavePanel observeValueForKeyPath:ofObject:change:context:] + 341
13 Foundation 0x00007fff34de6d70 NSKeyValueNotifyObserver + 335
14 Foundation 0x00007fff34ed619c NSKeyValueDidChange + 437
15 Foundation 0x00007fff34f77eb1 NSKeyValueDidChangeWithPerThreadPendingNotifications + 146
16 ViewBridge 0x00007fff65533310 __41-[NSViewBridge setObject:forKey:withKVO:]_block_invoke + 360
17 ViewBridge 0x00007fff655b6d20 withHintInProgress + 472
18 ViewBridge 0x00007fff65529a33 -[NSViewBridge setObject:forKey:withKVO:] + 856
19 ViewBridge 0x00007fff6552b136 -[NSViewBridge nonLocalChangeInProgress:block:] + 352
20 ViewBridge 0x00007fff6552ad93 -[NSRemoteViewMarshal exceptionSafeSetRemoteObject:forKey:withReply:] + 264
21 ViewBridge 0x00007fff6552ac47 -[NSRemoteViewMarshal setRemoteObject:forKey:withReply:] + 56
22 CoreFoundation 0x00007fff3275b37c __invoking___ + 140
23 CoreFoundation 0x00007fff3275b221 -[NSInvocation invoke] + 303
24 ViewBridge 0x00007fff655283e4 __deferNSXPCInvocationOntoMainThread_block_invoke + 228
25 ViewBridge 0x00007fff65516e38 __wrapBlockWithVoucher_block_invoke + 37
26 ViewBridge 0x00007fff65516c07 __deferBlockOntoMainThread_block_invoke_2 + 507
27 CoreFoundation 0x00007fff3277947c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
28 CoreFoundation 0x00007fff327793c4 __CFRunLoopDoBlocks + 379
29 CoreFoundation 0x00007fff327788bd __CFRunLoopRun + 2450
30 CoreFoundation 0x00007fff327778ce CFRunLoopRunSpecific + 462
31 HIToolbox 0x00007fff313a3abd RunCurrentEventLoopInMode + 292
32 HIToolbox 0x00007fff313a37d5 ReceiveNextEventCommon + 584
33 HIToolbox 0x00007fff313a3579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
34 AppKit 0x00007fff2f9ea039 _DPSNextEvent + 883
35 AppKit 0x00007fff2f9e8880 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
36 AppKit 0x00007fff2fceaef2 -[NSApplication _doModalLoop:peek:] + 315
37 AppKit 0x00007fff2fce9c85 __35-[NSApplication runModalForWindow:]_block_invoke_2 + 64
38 AppKit 0x00007fff2fce9c32 __35-[NSApplication runModalForWindow:]_block_invoke + 70
39 AppKit 0x00007fff2fce94c4 _NSTryRunModal + 100
40 AppKit 0x00007fff2fce93a9 -[NSApplication runModalForWindow:] + 128
41 AppKit 0x00007fff303e3127 -[NSSavePanel runModal] + 145
42 Castle2d 0x000000010005ad47 _ZN6cinder3app13PlatformCocoa15getSaveFilePathERKN3ghc10filesystem4pathERKNSt3__16vectorINS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENSC_ISE_EEEE + 503
43 Castle2d 0x000000010006d6fb _ZN6cinder3app7AppBase15getSaveFilePathERKN3ghc10filesystem4pathERKNSt3__16vectorINS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENSC_ISE_EEEE + 43
44 Castle2d 0x0000000100031469 _ZN11Castle2dApp8saveFileEN3ghc10filesystem4pathEb + 153
45 Castle2d 0x0000000100031295 _ZN11Castle2dApp7keyDownEN6cinder3app8KeyEventE + 469
46 Castle2d 0x000000010016abfe _ZN6cinder3app6Window11emitKeyDownEPNS0_8KeyEventE + 190
47 Castle2d 0x00000001000b4944 -[CinderViewMac keyDown:] + 436
48 AppKit 0x00007fff2fb90d5d -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 6512
49 AppKit 0x00007fff2fb8f1c9 -[NSWindow(NSEventRouting) sendEvent:] + 349
50 AppKit 0x00007fff2fb8defe -[NSApplication(NSEvent) sendEvent:] + 2826
51 AppKit 0x00007fff2f9da5bf -[NSApplication run] + 707
52 Castle2d 0x0000000100149d7f _ZN6cinder3app6AppMac6launchEv + 47
53 Castle2d 0x0000000100032641 _ZN6cinder3app6AppMac4mainI11Castle2dAppEEvRKNSt3__110shared_ptrINS0_8RendererEEEPKciPKPcRKNS4_8functionIFvPNS0_7AppBase8SettingsEEEE + 417
54 Castle2d 0x000000010003238c main + 172
55 libdyld.dylib 0x00007fff6c87dcc9 start + 1
)