AAX plugin crash (works in AU)

I’m scratching my head trying to understand why my plugin is crashing in Pro Tools when it’s working fine in AU/VST3

The crash report PT is giving me is as follows. The plugin is successfully signed using the PACE/iLok system, its appearing in the list, so I’m a bit lost. I do use threads in my plugin, is this a nono for AAX? As mentioned above its fine in AU so yeah.

Confused dev over here.

9254.315005,00103,0b09: SLnk_Manager::RequestLink - 255.255.255.255 0 - eSLnk_LinkState_Linkable
9254.315807,00103,0b09: SLnk_Manager::UpdateOrderNumbers - 0, 255.255.255.255 0
9254.316093,00103,0b09: SLnk_MachineMgr::UpdateTrackIsSoloed
9254.319153,00103,0d02: Completed TCommand: Quick Start
9254.357168,00103,0000: rebuilding entire display entry list
9258.657332,0a703,0f10: UA_AppManSync::DoCheckIfAnalyticAllowed - request time out. Probably no AppManager around.
9263.995505,00103,0d02: Performing TCommand: TControlTracker  
9263.995522,00103,0d02: Completed TCommand: TControlTracker
9264.005776,00103,0033: SMgr_DSPCache::InstantiateMixer - pluginType: Native, numInputsDesired: 2, numOutputsRequired: 2, name: "Built-in Output 1-2"
9264.006677,00103,0033: SMgr_DSPCache::InstantiateMixer - returning mixer spec (0x600001eed500). numActualInputs: 2, numActualOutputs: 2, err = 0
9264.006899,00103,000f: TTrack::SetUID = rECrO0TGRagaaaGk
9264.009098,00103,0033: SMgr_DSPCache::SetMixerNumInputPorts - (0x6000019d9a00), num input ports: 4, name: "Built-in Output 1-2"
9264.009606,00103,0033: SMgr_DSPCache::SetMixerNumInputPorts - results - numActualInputs: 4, numActualOutputs: 2, err = 0
9264.093428,00103,0033: SMgr_DSPCache::InstantiateMixer - pluginType: Native, numInputsDesired: 2, numOutputsRequired: 2, name: "Private Solo Bus"
9264.094751,00103,0033: SMgr_DSPCache::InstantiateMixer - returning mixer spec (0x600001e86840). numActualInputs: 2, numActualOutputs: 2, err = 0
9264.094834,00103,0033: SMgr_DSPCache::SetMixerNumInputPorts - (0x6000019d9a00), num input ports: 6, name: "Built-in Output 1-2"
9264.095225,00103,0033: SMgr_DSPCache::SetMixerNumInputPorts - results - numActualInputs: 6, numActualOutputs: 2, err = 0
9277.107430,00103,0b09: Local wall clock: 10/ 5/2021 12:18:53
9291.468741,00103,0033: SMgr_DSPCache::InstantiatePlugIn - pluginType: Native, name: "BeatConnectRelay", track "Audio 1"
9291.601833,10d03,0034: [catch_exception_raise] got mach exception: 1
9291.601904,10d03,0e0f: Access Violation:
Stacktrace:
	0x130c5f4ee : void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (BeatConnectRelayAudioProcessor::*)(), BeatConnectRelayAudioProcessor*> >(void*) + 62
	0x7fff203c88fc : _pthread_start + 224 (libsystem_pthread.dylib @ 0x7fff203c2000)
	0x7fff203c4443 : thread_start + 15 (libsystem_pthread.dylib @ 0x7fff203c2000)

Launching your own threads is fine in AAX plugins.

The first thing I would do here would be launching the plugin in the PT developer build with a debugger attached and inspect what’s causing the access violation. Did you try that?

See: Protools setStateInfo + MML deadlock - #8 by railjonrogut

Rail

Thanks guys, I had completely forgotten I could actually attach a debugger in pro tools as I’ve been having difficulty getting it to work with garageband/logic but we’ve solved our problem and the world is now at peace.

The issue had to do with issues we’ve had with static vars.

Cheers!