Main Camera Error

An incomprehensible error occurs whenever I try to access Main Camera features. I have already acquired the Main Camera entitlement and granted the required permissions, yet the error persists. To make matters worse, even Apple’s provided sample code triggers the exact same issue. The error message is far too uninformative to diagnose the root cause, and I urgently need a resolution as this is completely blocking progress.

Multiline

[C:1-2] Error received: Invalidated by remote connection. failed to observe with mask <BLSXPCBacklightProxyObserverMask: 0x108accf80; didUpdateToState: YES; eventsArray: YES> error:<XPC error received on message reply handler (3:BSServiceConnectionErrorDomain) "The operation couldn’t be completed. XPC error received on message reply handler"> non-launching port is incompatible with service identifier "com.apple.PointerUI.pointeruid.default-service" nw_socket_copy_info [C1:2] getsockopt TCP_INFO failed [102: Operation not supported on socket] nw_socket_copy_info getsockopt TCP_INFO failed [102: Operation not supported on socket] Unable to find a compatible slice for binary archive at /System/Library/Frameworks/CoreImage.framework/ci_uberwrapper_bin.metallib *** Assertion failure in void ar_session_request_authorization(ar_session_t _Nonnull, ar_authorization_type_t, __strong ar_authorization_results_handler_t _Nonnull)_block_invoke(), session.m:1491, reason: This app failed to request an authorization. The NSWorldSensingUsageDescription / NSHandsTrackingUsageDescription / NSAccessoryTrackingUsageDescription / NSMainCameraUsageDescription keys may be missing from this app's Info.plist. <NSXPCConnection: 0x10e68dcc0> connection to service with pid 86 named com.apple.arkit.service.authorization: Exception caught during invocation of reply block to message 'requestAuthorizations:withReply:'.

Exception: This app failed to request an authorization. The NSWorldSensingUsageDescription / NSHandsTrackingUsageDescription / NSAccessoryTrackingUsageDescription / NSMainCameraUsageDescription keys may be missing from this app's Info.plist. ( 0 CoreFoundation 0x0000000198b756d4 686CE4EB-CE52-3DD5-8B23-EF6A6BBFACEA + 1205972 1 libobjc.A.dylib 0x000000018d3a71cc objc_exception_throw + 88 2 CoreFoundation 0x0000000198b755c0 686CE4EB-CE52-3DD5-8B23-EF6A6BBFACEA + 1205696 3 ARKitCore 0x00000002bbd640cc 53FDDDD4-8DD1-3E86-ACB0-8867D29AF781 + 479436 4 CoreFoundation 0x0000000198b7c5b4 686CE4EB-CE52-3DD5-8B23-EF6A6BBFACEA + 1234356 5 CoreFoundation 0x0000000198b79558 686CE4EB-CE52-3DD5-8B23-EF6A6BBFACEA + 1221976 6 Foundation 0x000000019de4220c 61E78A52-3B44-3DCE-AF6D-92C33FA0FACA + 2109964 7 Foundation 0x000000019de41dd0 61E78A52-3B44-3DCE-AF6D-92C33FA0FACA + 2108880 8 Foundation 0x000000019de4651c 61E78A52-3B44-3DCE-AF6D-92C33FA0FACA + 2127132 9 libxpc.dylib 0x00000002c43d5a00 CE0BB604-B358-3F22-B1DA-FFACEFCA20AD + 150016 10 libxpc.dylib 0x00000002c43c5678 CE0BB604-B358-3F22-B1DA-FFACEFCA20AD + 83576 11 libdispatch.dylib 0x00000002c41045fc 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 108028 12 libdispatch.dylib 0x00000002c41083ec 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 123884 13 libdispatch.dylib 0x00000002c40f37c0 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 38848 14 libdispatch.dylib 0x00000002c40f4450 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 42064 15 libdispatch.dylib 0x00000002c40fe3ec 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 82924 16 libdispatch.dylib 0x00000002c40fdd18 4CF750D7-AC3B-3175-9863-2F059D3D3715 + 81176 17 libsystem_pthread.dylib 0x00000002c4364e34 _pthread_wqthread + 292 18 libsystem_pthread.dylib 0x00000002c4362910 start_wqthread + 8 ) *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This app failed to request an authorization. The NSWorldSensingUsageDescription / NSHandsTrackingUsageDescription / NSAccessoryTrackingUsageDescription / NSMainCameraUsageDescription keys may be missing from this app's Info.plist.' *** First throw call stack: (0x198b756c8 0x18d3a71cc 0x198b755c0 0x2bbd640cc 0x198b7c5b4 0x198b79558 0x19de4220c 0x19de41dd0 0x19de4651c 0x2c43d5a00 0x2c43c5678 0x2c41045fc 0x2c41083ec 0x2c40f37c0 0x2c40f4450 0x2c40fe3ec 0x2c40fdd18 0x2c4364e34 0x2c4362910) *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This app failed to request an authorization. The NSWorldSensingUsageDescription / NSHandsTrackingUsageDescription / NSAccessoryTrackingUsageDescription / NSMainCameraUsageDescription keys may be missing from this app's Info.plist.' *** First throw call stack: (0x198b756c8 0x18d3a71cc 0x198b755c0 0x2bbd640cc 0x198b7c5b4 0x198b79558 0x19de4220c 0x19de41dd0 0x19de4651c 0x2c43d5a00 0x2c43c5678 0x2c41045fc 0x2c41083ec 0x2c40f37c0 0x2c40f4450 0x2c40fe3ec 0x2c40fdd18 0x2c4364e34 0x2c4362910) libc++abi: terminating due to uncaught exception of type NSException Xcode has killed the LLDB RPC server (pid: 2210) to allow the debugger to detach from your process.

BlockQuote

visionOS 27 beta 5

Hi @sadaotokuyama

Thanks for reporting this. As a workaround, add NSMainCameraUsageDescription to your Info.plist (as a sibling to Application Scene Manifest). So I can investigate further, can you provide the exact version of Xcode and visionOS you're using?

@Vision Pro Engineer As you can see from the attached image, NSMainCameraUsageDescription is already present in the Info.plist, at the same level as Application Scene Manifest.

So I do not understand what your recommendation to “add NSMainCameraUsageDescription to your Info.plist” is supposed to address in this case.

The key is already configured, yet I still receive the failed to request an authorization error. Moreover, the exact same issue occurs with Apple’s own sample code.

Given this situation, why was adding NSMainCameraUsageDescription suggested as a workaround? The attached image clearly shows that it is already configured.

When there is a time difference and I receive an answer that does not appear to address the actual issue, it is difficult to know what I should investigate next. Your response has unfortunately left my development completely blocked.

Please investigate why the authorization request is failing even though NSMainCameraUsageDescription is already configured, especially considering that the issue is also reproducible with Apple’s sample code.

My development environment is Xcode 27 beta 5, running on an Apple Vision Pro (M5) with visionOS 27 beta 8.

add.

add

Hi @sadaotokuyama,

Apologies for missing the key in your screenshot.

I reproduced the issue by downloading Accessing the main camera and opening it with the latest Xcode, and adding NSMainCameraUsageDescription to the Info.plist worked around it for me. Your screenshots look like they're from your own project, so that change evidently didn't help there. Can you confirm that, and let me know whether the same change fixed our sample on your machine?

Your entitlement and profile look correct, so let's set those aside. The error you are seeing happens when the system can't find a usage string for main camera access, so the question is what reached the built app rather than what's in your source plist.

Did this ever work for you? Asking to understand whether this is a regression.

Xcode updates project files when it opens a project authored by an earlier version, and I want to rule out that something went wrong there. Specifically, whether NSMainCameraUsageDescription moved out of Info.plist and into an INFOPLIST_KEY_NSMainCameraUsageDescription build setting. Your screenshot shows it in the plist, so I'm interested in whether the build setting is also present. If your project is in source control, check for recent changes to:

  • <YourProject>.xcodeproj/project.pbxproj
  • <YourProject>.xcodeproj/xcshareddata/xcschemes/<YourScheme>.xcscheme
  • <YourProject>/Info.plist

I know you also reproduced this with our sample, but a copy of your project would really help me troubleshoot, so I can see for myself whether those files changed. Please file at Feedback Assistant and attach it as-is, and optionally a sysdiagnose captured right after the crash.

Reply with the FB number and I'll dig in.

Main Camera Error
 
 
Q