Please Help: Thread 1: EXC_BAD_ACCESS (code=2, address=0x30ecb2ff8)

I have been trying to figure this out for like 5 hours, and I can't seem to see what its happening.

My app is trying to get users signIn with using Google or Apple methods. Once they finish the SignUp with any provider, It should take them to another screen (OnboardingViewPart2) to finish the profile setup. However, the issue is that when I finish entering my email on the Google SignUp, the screen closes and the app get stuck for like 10 secs and throws the Bad Access error. My debug takes me that there is something going on with AuthService, but I can't figure out what. Firebase recognizes that the method was used, but doesn't create any Collections or Documents. Please Help :)

  • EXC_BAD_ACCESS code=2 may be caused by various reasons, but one possible reason is infinite recursive call. Do you think of any places where it may cause infinite recursive calls? Or can you show the stack trace?

Add a Comment

Replies

Hi OOPer, for sure here is the stack trace after it reaches the error.

thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x30e112ff8)   frame #0: 0x0000000114f3920f libswiftCore.dylib_swift_getGenericMetadata(swift::MetadataRequest, void const* const*, swift::TargetTypeContextDescriptor<swift::InProcess> const*) + 31   frame #1: 0x000000011d0ad75d SwiftUI__swift_instantiateGenericMetadata + 29   frame #2: 0x000000011d1ceafd SwiftUImerged closure #1 (inout SwiftUI.ModifiedContent<τ_0_0, τ_0_1>) -> AttributeGraph.PointerOffset<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>, τ_0_1> in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeView(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewInputs) -> SwiftUI._ViewOutputs + 37   frame #3: 0x000000011d1d11ea SwiftUImerged partial apply forwarder for closure #1 (inout SwiftUI.ModifiedContent<τ_0_0, τ_0_1>) -> AttributeGraph.PointerOffset<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>, τ_0_1> in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeView(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewInputs) -> SwiftUI._ViewOutputs + 40

  frame #4: 0x000000011da9d305 SwiftUISwiftUI._GraphValue.subscript.getter : <τ_0_0>(offset: (inout τ_0_0) -> AttributeGraph.PointerOffset<τ_0_0, τ_1_0>) -> SwiftUI._GraphValue<τ_1_0> + 57   frame #5: 0x000000011d1cd946 SwiftUIstatic SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 198   frame #6: 0x000000011d1cdc78 SwiftUIprotocol witness for static SwiftUI.View._makeViewList(view: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in conformance < where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier> SwiftUI.ModifiedContent<τ_0_0, τ_0_1> : SwiftUI.View in SwiftUI + 28   frame #7: 0x000000011d1cdb6f SwiftUIclosure #2 (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 319

  frame #8: 0x000000011d1d1236 SwiftUIpartial apply forwarder for closure #2 (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 37   frame #9: 0x000000011d1c8f20 SwiftUIstatic SwiftUI.ViewModifier.makeMultiViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs + 211   frame #10: 0x000000011d1c7ab4 SwiftUIstatic SwiftUI.MultiViewModifier._makeViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs + 106   frame #11: 0x000000011d1cf3e1 SwiftUIprotocol witness for static SwiftUI.ViewModifier._makeViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs in conformance SwiftUI._BackgroundStyleModifier<τ_0_0> : SwiftUI.ViewModifier in SwiftUI + 16   frame #12: 0x000000011d1cda07 SwiftUIstatic SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 391   frame #13: 0x000000011d1cdc78 SwiftUIprotocol witness for static SwiftUI.View._makeViewList(view: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in conformance < where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier> SwiftUI.ModifiedContent<τ_0_0, τ_0_1> : SwiftUI.View in SwiftUI + 28   frame #14: 0x000000011d1cdb6f SwiftUIclosure #2 (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 319   frame #15: 0x000000011d1d1236 SwiftUIpartial apply forwarder for closure #2 (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs in static SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 37   frame #16: 0x000000011d0bd677 SwiftUImerged generic specialization <SwiftUI.LayoutPriorityLayout> of static SwiftUI.MultiViewModifier._makeViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs + 49   frame #17: 0x000000011d0bd45e SwiftUIgeneric specialization <SwiftUI._SafeAreaIgnoringLayout> of static SwiftUI.MultiViewModifier._makeViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs + 16   frame #18: 0x000000011d1cfb82 SwiftUIprotocol witness for static SwiftUI.ViewModifier._makeViewList(modifier: SwiftUI._GraphValue<τ_0_0>, inputs: SwiftUI._ViewListInputs, body: (SwiftUI._Graph, SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs) -> SwiftUI._ViewListOutputs in conformance SwiftUI._SafeAreaIgnoringLayout : SwiftUI.ViewModifier in SwiftUI + 40   frame #19: 0x000000011d1cda07 SwiftUIstatic SwiftUI.ModifiedContent< where τ_0_0: SwiftUI.View, τ_0_1: SwiftUI.ViewModifier>._makeViewList(view: SwiftUI._GraphValue<SwiftUI.ModifiedContent<τ_0_0, τ_0_1>>, inputs: SwiftUI._ViewListInputs) -> SwiftUI._ViewListOutputs + 391

  • Thanks for showing the stack trace. (If it was formatted properly, it would be better.) It shows that it is not a simple recursion thing and is very likely related to SwiftUI things. You may have broken some restrictions of SwiftUI (unfortunately, many of them are not documented clearly) or it may be a bug of SwiftUI. Which is the view causing this crash?

  • Sorry for the formatting and thanks for your reply :)... The view causing the crash is the AuthService, which gets called on OnboardingView.swift

  • Thanks. Seems you are passing an instance of OnboardingView to a method !!! As you know, in SwiftUI, View is a struct -- value type, and passing or assigning a view would cause any unexpected behavior and that is one thing you should never do. You may need to find a way to achieve what you want without passing a View.

It breaks right after this Function in AuthService.swift