Open
Description
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.
- I can reproduce the issue with the latest versions of Parse Server and the Parse Swift SDK.
Issue Description
I'm getting a crash report in crashlytics which I can't seem to reproduce and the description of error says
Fatal error: Duplicate elements of type 'ParseFile' were found in a Set. This usually means either that the type violates Hashable's requirements, or that members of such a set were mutated after insertion
Steps to reproduce
Actual Outcome
Expected Outcome
Environment
Client
- Parse Swift SDK version:
14.4.2
- Xcode version:
14.2
- Operating system (iOS, macOS, watchOS, etc.):
iOS
- Operating system version:
iOS 16.2
Server
- Parse Server version:
5.2.1
- Operating system:
Linux
- Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc):
Digital Ocean
Database
- System (MongoDB or Postgres):
MongoDB
- Database version:
6.0
- Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc):
MongoDB Atlas
Logs
Crashed: com.apple.root.background-qos.cooperative
0 libswiftCore.dylib 0x125b8 _assertionFailure(_:_:flags:) + 228
1 libswiftCore.dylib 0x193648 KEY_TYPE_OF_DICTIONARY_VIOLATES_HASHABLE_REQUIREMENTS(_:) + 192
2 libswiftCore.dylib 0x193588 KEY_TYPE_OF_DICTIONARY_VIOLATES_HASHABLE_REQUIREMENTS(_:) + 70
3 Creator 0x7e1a70 specialized _NativeSet.insertNew(_:at:isUnique:) (<compiler-generated>)
4 Creator 0x7e0ce0 specialized Set._Variant.insert(_:) (<compiler-generated>)
5 Creator 0x7f0810 _ParseEncoder.deepFindAndReplaceParseFiles(_:) + 392 (ParseEncoder.swift:392)
6 Creator 0x7f3438 _ParseEncoderKeyedEncodingContainer.encode<A>(_:forKey:) + 518 (ParseEncoder.swift:518)
7 Creator 0x7f4b00 protocol witness for KeyedEncodingContainerProtocol.encode<A>(_:forKey:) in conformance _ParseEncoderKeyedEncodingContainer<A> (<compiler-generated>)
8 libswiftCore.dylib 0x511d0 KeyedEncodingContainerProtocol.encodeIfPresent<A>(_:forKey:) + 464
9 Creator 0x7f4d2c protocol witness for KeyedEncodingContainerProtocol.encodeIfPresent<A>(_:forKey:) in conformance _ParseEncoderKeyedEncodingContainer<A> (<compiler-generated>)
10 libswiftCore.dylib 0x5fc3c _KeyedEncodingContainerBox.encodeIfPresent<A, B>(_:forKey:) + 368
11 libswiftCore.dylib 0x51d38 KeyedEncodingContainer.encodeIfPresent<A>(_:forKey:) + 76
12 Creator 0x1c8318 AudioSegment.encode(to:) (<compiler-generated>)
13 Creator 0x1c86a8 protocol witness for Encodable.encode(to:) in conformance AudioSegment (<compiler-generated>)
14 libswiftCore.dylib 0x39aae8 dispatch thunk of Encodable.encode(to:) + 32
15 Creator 0x7ef1d4 _ParseEncoder.box_(_:) + 976 (ParseEncoder.swift:976)
16 Creator 0x7f5320 _ParseEncoderUnkeyedEncodingContainer.encode<A>(_:) + 941 (ParseEncoder.swift:941)
17 Creator 0x7f5e5c protocol witness for UnkeyedEncodingContainer.encode<A>(_:) in conformance _ParseEncoderUnkeyedEncodingContainer (<compiler-generated>)
18 libswiftCore.dylib 0x77a20 Array<A>.encode(to:) + 560
19 libswiftCore.dylib 0x77b70 protocol witness for Encodable.encode(to:) in conformance <A> [A] + 32
20 libswiftCore.dylib 0x39aae8 dispatch thunk of Encodable.encode(to:) + 32
21 Creator 0x7ef1d4 _ParseEncoder.box_(_:) + 976 (ParseEncoder.swift:976)
22 Creator 0x7f3aa0 _ParseEncoderKeyedEncodingContainer.encode<A>(_:forKey:) + 941 (ParseEncoder.swift:941)
23 Creator 0x7f4b00 protocol witness for KeyedEncodingContainerProtocol.encode<A>(_:forKey:) in conformance _ParseEncoderKeyedEncodingContainer<A> (<compiler-generated>)
24 libswiftCore.dylib 0x5dc74 _KeyedEncodingContainerBox.encode<A, B>(_:forKey:) + 368
25 libswiftCore.dylib 0x517a8 KeyedEncodingContainer.encode<A>(_:forKey:) + 68
26 Creator 0x219b90 CRTimelineSection.encode(to:) (<compiler-generated>)
27 Creator 0x219d94 protocol witness for Encodable.encode(to:) in conformance CRTimelineSection (<compiler-generated>)
28 libswiftCore.dylib 0x39aae8 dispatch thunk of Encodable.encode(to:) + 32
29 Creator 0x7ef1d4 _ParseEncoder.box_(_:) + 976 (ParseEncoder.swift:976)
30 Creator 0x7f5320 _ParseEncoderUnkeyedEncodingContainer.encode<A>(_:) + 941 (ParseEncoder.swift:941)
31 Creator 0x7f5e5c protocol witness for UnkeyedEncodingContainer.encode<A>(_:) in conformance _ParseEncoderUnkeyedEncodingContainer (<compiler-generated>)
32 libswiftCore.dylib 0x77a20 Array<A>.encode(to:) + 560
33 libswiftCore.dylib 0x77b70 protocol witness for Encodable.encode(to:) in conformance <A> [A] + 32
34 libswiftCore.dylib 0x39aae8 dispatch thunk of Encodable.encode(to:) + 32
35 Creator 0x7ef1d4 _ParseEncoder.box_(_:) + 976 (ParseEncoder.swift:976)
36 Creator 0x7f3aa0 _ParseEncoderKeyedEncodingContainer.encode<A>(_:forKey:) + 941 (ParseEncoder.swift:941)
37 Creator 0x7f4b00 protocol witness for KeyedEncodingContainerProtocol.encode<A>(_:forKey:) in conformance _ParseEncoderKeyedEncodingContainer<A> (<compiler-generated>)
38 libswiftCore.dylib 0x511d0 KeyedEncodingContainerProtocol.encodeIfPresent<A>(_:forKey:) + 464
39 Creator 0x7f4d2c protocol witness for KeyedEncodingContainerProtocol.encodeIfPresent<A>(_:forKey:) in conformance _ParseEncoderKeyedEncodingContainer<A> (<compiler-generated>)
40 libswiftCore.dylib 0x5fc3c _KeyedEncodingContainerBox.encodeIfPresent<A, B>(_:forKey:) + 368
41 libswiftCore.dylib 0x51d38 KeyedEncodingContainer.encodeIfPresent<A>(_:forKey:) + 76
42 Creator 0x20d43c CRSong.encode(to:) (<compiler-generated>)
43 Creator 0x20eff0 protocol witness for Encodable.encode(to:) in conformance CRSong (<compiler-generated>)
44 libswiftCore.dylib 0x39aae8 dispatch thunk of Encodable.encode(to:) + 32
45 Creator 0x7ef1d4 _ParseEncoder.box_(_:) + 976 (ParseEncoder.swift:976)
46 Creator 0x7edb98 _ParseEncoder.encodeObject(_:batching:collectChildren:uniquePointer:objectsSavedBeforeThisOne:filesSavedBeforeThisOne:) + 283 (ParseEncoder.swift:283)
47 Creator 0x7ed40c ParseEncoder.encode<A>(_:objectsSavedBeforeThisOne:filesSavedBeforeThisOne:) + 167 (ParseEncoder.swift:167)
48 Creator 0x86053c ParseObject.ensureDeepSave(options:isShouldReturnIfChildObjectsFound:) + 299 (ParseObject+async.swift:299)
49 libswift_Concurrency.dylib 0x40f6c swift::runJobInEstablishedExecutorContext(swift::Job*) + 420
50 libswift_Concurrency.dylib 0x41e78 swift_job_runImpl(swift::Job*, swift::ExecutorRef) + 72
51 libdispatch.dylib 0x15a6c _dispatch_root_queue_drain + 396
52 libdispatch.dylib 0x16284 _dispatch_worker_thread2 + 164
53 libsystem_pthread.dylib 0xdbc _pthread_wqthread + 228
54 libsystem_pthread.dylib 0xb98 start_wqthread + 8