While testing a dynamic music system on Xbox One X, periodically and seemingly randomly, the Quartz Clock or the Quartz Clock Proxy will become invalid when checked and then fail. This is a C++ implementation where I have saved the UQuartzClockHandle into a pointer after calling CreateNewClock from the Quartz Subsystem.
This is how I create a new Quartz Clock:
UQuartzClockHandle* Metronome = nullptr;
Metronome = QuartzSubsystem->CreateNewClock(WorldObject, "MyClock", settings);
if (Metronome->IsValidLowLevel())
{
Metronome->SetBeatsPerMinute(WorldObject, quantizationBoundary, delegateBP, Metronome, CurrentSong->BPM);
// Bind our beat event to the function
BeatEvent.BindUFunction(this, "OnBeat");
Metronome->SubscribeToQuantizationEvent(WorldObject, EQuartzCommandQuantization::Beat, BeatEvent, Metronome);
}
However, while testing it will consistently fail at:
Metronome->DoesClockExist(WorldObject)
And:
Metronome->GetEstimatedRunTime(WorldObject)
Even though in the previous line it checks to see if the Metronome or UQuartzClockHandle* is valid.
These lines are consistently what causes the crashes:
[2025.07.16-09.22.49:512][478]LogXboxCommonOutputDevices: Error: [Callstack] 0x00007ff6739a5c5d Cobalt.exe!Audio::FQuartzClockProxy::DoesClockExist []
And
[2025.07.16-09.45.34:340][703]LogXboxCommonOutputDevices: Error: [Callstack] 0x00007ff79f75cc5d Cobalt.exe!Audio::FQuartzClockProxy::GetEstimatedClockRunTimeSeconds []
Is there anything that I missed with setting up the Quartz Clock or starting it that may cause a periodic crash from the Quartz Clock Proxy?