When running the currently latest version of macOS (26.1) on a machine with ARM CPU (I could not reproduce the issue with Intel-Based machines) Finder Sync extensions do not work any more in general.
Steps to reproduce the problem:
- In Xcode create a new macOS App project with default settings (in my case I chose XIB for the UI and Objective-C as language, and disabled testing, but that should not make any difference)
- In Xcode add a new target / "Finder Sync Extension" to the project with default settings, this adds a new Finder Sync Extension with example code to the app.
- Run the application and open Finder and navigate to "/Users/Shared/MySyncExtension Documents"
- In the system settings ("Login Items & Extensions") enable the extension (Listed as "File Provider").
- On systems where it is working, in the context menu of that folder an entry "Example Menu Item" will appear. On systems where it does not work it is missing.
Some findings:
- Adding the *.appex with "pluginkit -a" registers the extension as expected, it is then visible in the system settings, removing it with "pluginkit -r" is also reflected in the system settings.
- "pluginkit -m -i <extension identifier>" returns the extension on systems where it is working (assuming it is registered while this command is executed), on systems wehre it is not working, nothing is returned, regardless of the registration state.
- When enabling the extension in the system settings nothing more happens, there is no process started for the extension (unlike as on systems where it is working), and thus no context menu entries and no badges are displayed in Finder.
- Restarting Finder or the system does not help.
Any ideas what I could be missing here?
OK. The engineering team hasn't had a chance to look at it yet, but I can immediately tell you that they're going to need a sysdiagnose from the machine where the failure is happening.
Please take a look at the sysdiagnose you uploaded to the bug. If you uncompress the log, you'll find the following:
- Inside "crashes_and_spins", ~120 crash logs from your extension. Sampling those logs, all of them showed you crashing with this stack (more details on that shortly):
Thread 3 Crashed:: Dispatch queue:
0 libsystem_kernel.dylib 0x7ff809673826 __pthread_kill + 10
1 libsystem_pthread.dylib 0x7ff8096afb5a pthread_kill + 259
2 libsystem_c.dylib 0x7ff8095c0376 abort + 126
3 com.apple.finder.FinderSync 0x7ffb16fc19be -[FIFinderSyncExtension begin] + 718
4 com.apple.Foundation 0x7ff80a9ca9a5 __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S0__ + 10
5 com.apple.Foundation 0x7ff80b575b47 -[NSXPCConnection _decodeAndInvokeMessageWithEvent:reply:flags:] + 1656
6 com.apple.Foundation 0x7ff80b5775fa message_handler_message + 80
...
30 libdispatch.dylib 0x7ff809505705 _dispatch_workloop_worker_thread + 871
31 libsystem_pthread.dylib 0x7ff8096ac869 _pthread_wqthread + 298
32 libsystem_pthread.dylib 0x7ff8096ab843 start_wqthread + 15
- If you open the system_logs.logarchive and pick any one of your extension processes, you'll find that the last lines logged (before you crash) are all:
2025-11-07 13:32:56.454892+0100 <bundle id>: (ExtensionFoundation) [com.apple.extensionkit:default] NSExtensionPrincipalClass `<class name>` does not conform to NSExtensionRequestHandling protocol!
2025-11-07 13:32:56.455108+0100 <bundle id>: (ExtensionFoundation) [com.apple.extensionkit:NSExtension] in _willPerformHostCallback: block ( UUID: 705805DD-F751-4746-BD76-FCE82BD1B1A4 error: (null) )
- Following the lines above, you'll also find a similar entry from "ReportCrash" that is actually the message from the "abort()" call in your crash above.
2025-11-07 13:32:56.664650+0100 ReportCrash: ASI found [FinderSync] (sensitive) 'A FinderSync extension's NSExtensionPrincipalClass ((null)) must be a subclass of FIFinderSync.'
I obviously don't have any knowledge about your extensions implementation, but every indication here is that this is a bug in your code.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware