Parse-SDK-iOS-OSX
Parse-SDK-iOS-OSX copied to clipboard
New unexpected issue in Parse.initialize
New Issue Checklist
- [X] I am not disclosing a vulnerability.
- [X] I am not just asking a question.
- [X] I have searched through existing issues.
- [X] I can reproduce the issue with the latest versions of Parse Server and the Parse ObjC SDK.
Issue Description
- Running app on Simulator without any recent change in versions used (for months…).
- For information, an Xcode crash led me just before to delete existing schemes to create new ones
Then recurrent crash in Parse.initialize which has not been changed.
let configuration = ParseClientConfiguration {
$0.isLocalDatastoreEnabled = false
$0.applicationId = holisService.applicationId
$0.clientKey = holisService.clientKey
$0.server = holisService.server
$0.networkRetryAttempts = 3
}
Parse.initialize(with: configuration)
Finally solved by adding the subclassing below for all reserved classes, but as explained in #1792 and #1809 it should not be needed anymore.
PFInstallation.registerSubclass()
PFUser.registerSubclass()
PFSession.registerSubclass()
PFRole.registerSubclass()
Steps to reproduce
Not sure that it can be reproduced as this has been already solved by #1792 and #1809 and it could come from local unknown configuration.
Actual Outcome
Crash
Expected Outcome
Is there any setting in the schemes that could change this behaviour?
Environment
- Xcode:
16.3 - iOS:
18.0 - Operating system:
MacOS Sequoia 15.4
Client
- Parse ObjC SDK version:
5.1.1
Server
- Parse Server version:
3.6.0 - Operating system:
UNKNOWN - Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc):
REMOTE
Database
- System (MongoDB or Postgres):
MongoDB - Database version:
3.6.0 - Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc):
REMOTE
Logs
2025-05-08 18:39:14.684534+0200 APPNAME[52544:1867994] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid class name. Class names cannot start with an underscore.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001804c88c0 __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00000001800937cc objc_exception_throw + 72
2 CoreFoundation 0x00000001804c87d0 -[NSException initWithCoder:] + 0
3 APPNAME.debug.dylib 0x0000000107adb508 +[PFObject(Private) _assertValidInstanceClassName:] + 112
4 APPNAME.debug.dylib 0x0000000107ae01c0 -[PFObject init] + 268
5 APPNAME.debug.dylib 0x0000000107ae0470 +[PFObject objectWithClassName:objectId:completeData:] + 172
6 APPNAME.debug.dylib 0x0000000107ae06e4 +[PFObject objectWithoutDataWithClassName:objectId:] + 160
7 APPNAME.debug.dylib 0x0000000107aa0ef8 +[PFObjectFile2025-05-08 18:39:14.684569+0200 APPNAME[52544:1868000] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid class name. Class names cannot start with an underscore.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001804c88c0 __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00000001800937cc objc_exception_throw + 72
2 CoreFoundation 0x00000001804c87d0 -[NSException initWithCoder:] + 0
3 APPNAME.debug.dylib 0x0000000107adb508 +[PFObject(Private) _assertValidInstanceClassName:] + 112
4 APPNAME.debug.dylib 0x0000000107ae01c0 -[PFObject init] + 268
5 APPNAME.debug.dylib 0x0000000107ae0470 +[PFObject objectWithClassName:objectId:completeData:] + 172
6 APPNAME.debug.dylib 0x0000000107ae07c0 +[PFObject object] + 160
7 APPNAME.debug.dylib 0x0000000107a8c284 __56-[PFCurrentInstallationController getCurrentObjectAsync]_block_invoke.9 + 196
8 APPNAME.debug.d
Coder objectFromData:usingDecoder:] + 276
8 APPNAME
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid class name. Class names cannot start with an underscore.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001804c88c0 __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00000001800937cc objc_exception_throw + 72
2 CoreFoundation 0x00000001804c87d0 -[NSException initWithCoder:] + 0
3 APPNAME.debug.dylib 0x0000000107adb508 +[PFObject(Private) _assertValidInstanceClassName:] + 112
4 APPNAME.debug.dylib 0x0000000107ae01c0 -[PFObject init] + 268
5 APPNAME.debug.dylib 0x0000000107ae0470 +[PFObject objectWithClassName:objectId:completeData:] + 172
6 APPNAME.debug.dylib 0x0000000107ae06e4 +[PFObject objectWithoutDataWithClassName:objectId:] + 160
7 APPNAME.debug.dylib 0x0000000107aa0ef8 +[PFObjectFileCoder objectFromData:usingDecoder:] + 276
8 APPNAME.debug.dylib 0x0000000107aa2df0 __69-[PFObjectFilePersistenceController loadPersistentObjectAsyncForKey:]_block_invoke.2 + 92
9 APPNAME.debug.dylib 0x0000000107afbd78 __62-[BFTask continueWithExecutor:successBlock:cancellationToken:]_block_invoke + 76
10 APPNAME.debug.dylib 0x0000000107afb88c __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
11 APPNAME.debug.dylib 0x0000000107af98d0 __29+[BFExecutor defaultExecutor]_block_invoke_2 + 128
12 APPNAME.debug.dylib 0x0000000107af9d8c -[BFExecutor execute:] + 60
13 APPNAME.debug.dylib 0x0000000107afb54c -[BFTask runContinuations] + 272
14 APPNAME.debug.dylib 0x0000000107afb180 -[BFTask trySetResult:] + 112
15 APPNAME.debug.dylib 0x0000000107afc2a4 -[BFTaskCompletionSource setResult:] + 60
16 APPNAME.debug.dylib 0x0000000107afba34 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke_2 + 160
17 APPNAME.debug.dylib 0x0000000107afb88c __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
18 APPNAME.debug.dylib 0x0000000107af98d0 __29+[BFExecutor defaultExecutor]_block_invoke_2 + 128
19 APPNAME.debug.dylib 0x0000000107af9d8c -[BFExecutor execute:] + 60
20 APPNAME.debug.dylib 0x0000000107afb54c -[BFTask runContinuations] + 272
21 APPNAME.debug.dylib 0x0000000107afb180 -[BFTask trySetResult:] + 112
22 APPNAME.debug.dylib 0x0000000107afc2a4 -[BFTaskCompletionSource setResult:] + 60
23 APPNAME.debug.dylib 0x0000000107afb940 __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 252
24 libdispatch.dylib 0x0000000100743ec8 _dispatch_call_block_and_release + 24
25 libdispatch.dylib 0x000000010075d798 _dispatch_client_callout + 12
26 libdispatch.dylib 0x000000010077b624 _dispatch_queue_override_invoke + 976
27 libdispatch.dylib 0x0000000100757290 _dispatch_root_queue_drain + 356
28 libdispatch.dylib 0x0000000100757dd4 _dispatch_worker_thread2 + 256
29 libsystem_pthread.dylib 0x0000000100c66b90 _pthread_wqthread + 228
30 libsystem_pthread.dylib 0x0000000100c6598c start_wqthread + 8
)
libc++abi: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid class name. Class names cannot start with an underscore.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001804c88c0 __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00000001800937cc objc_exception_throw + 72
2 CoreFoundation 0x00000001804c87d0 -[NSException initWithCoder:] + 0
3 APPNAME.debug.dylib 0x0000000107adb508 +[PFObject(Private) _assertValidInstanceClassName:] + 112
4 APPNAME.debug.dylib 0x0000000107ae01c0 -[PFObject init] + 268
5 APPNAME.debug.dylib 0x0000000107ae0470 +[PFObject objectWithClassName:objectId:completeData:] + 172
6 APPNAME.debug.dylib 0x0000000107ae07c0 +[PFObject object] + 160
7 APPNAME.debug.dylib 0x0000000107a8c284 __56-[PFCurrentInstallationController getCurrentObjectAsync]_block_invoke.9 + 196
8 APPNAME.debug.dylib 0x0000000107afbd78 __62-[BFTask continueWithExecutor:successBlock:cancellationToken:]_block_invoke + 76
9 APPNAME.debug.dylib 0x0000000107afb88c __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
10 APPNAME.debug.dylib 0x0000000107af98d0 __29+[BFExecutor defaultExecutor]_block_invoke_2 + 128
11 APPNAME.debug.dylib 0x0000000107af9d8c -[BFExecutor execute:] + 60
12 APPNAME.debug.dylib 0x0000000107afb54c -[BFTask runContinuations] + 272
13 APPNAME.debug.dylib 0x0000000107afb180 -[BFTask trySetResult:] + 112
14 APPNAME.debug.dylib 0x0000000107afc428 -[BFTaskCompletionSource trySetResult:] + 60
15 APPNAME.debug.dylib 0x0000000107aa9ed0 __28-[PFAsyncTaskQueue enqueue:]_block_invoke_2 + 140
16 APPNAME.debug.dylib 0x0000000107afb88c __55-[BFTask continueWithExecutor:block:cancellationToken:]_block_invoke + 72
17 libdispatch.dylib 0x0000000100743ec8 _dispatch_call_block_and_release + 24
18 libdispatch.dylib 0x000000010075d798 _dispatch_client_callout + 12
19 libdispatch.dylib 0x000000010077b624 _dispatch_queue_override_invoke + 976
20 libdispatch.dylib 0x0000000100757290 _dispatch_root_queue_drain + 356
21 libdispatch.dylib 0x0000000100757dd4 _dispatch_worker_thread2 + 256
22 libsystem_pthread.dylib 0x0000000100c66b90 _pthread_wqthread + 228
23 libsystem_pthread.dylib 0x0000000100c6598c start_wqthread + 8
)
terminating due to uncaught exception of type NSException
libc++abi: terminating due to uncaught exception of type NSException
🚀 Thanks for opening this issue!
ℹ️ You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.
If this cannot be reproduced, then my guess is that this is an issue with your app or environment. You also mentioned an Xcode crash before; so it may he a Xcode cache issue or Simulator issue.