DirectX 12 Nvidia driver crash

Evening, I have a dx12 error that only happens on Nvidia drivers with the debug layer on (confirmed not to happen on the WARP or Intel driver, unknown on AMD). If I switch off the debug layer my application works fine.

When I have the dx12 debug layer on it says this:

D3D12 ERROR: ID3D12CommandAllocator::Reset: A command allocator is being reset before previous executions associated with the allocator have completed. [ EXECUTION ERROR #552: COMMAND_ALLOCATOR_SYNC]
D3D12: BREAK enabled for the previous message, which was: [ ERROR EXECUTION #552: COMMAND_ALLOCATOR_SYNC ]
Exception thrown at 0x00007FFA5B6FB7D8 (KernelBase.dll) in NA.exe: 0x0000087A (parameters: 0x0000000000000001, 0x000000000014B1D0, 0x000000000014D0F0).
Unhandled exception at 0x00007FFA5B6FB7D8 (KernelBase.dll) in NA.exe: 0x0000087A (parameters: 0x0000000000000001, 0x000000000014B1D0, 0x000000000014D0F0).

The call stack looks like this:

dxgi.dll!CDXGISwapChain::AcquireBufferNormal(void)	Unknown
dxgi.dll!CDXGISwapChain::AcquireBuffer(struct IDXGIResource *,unsigned int)	Unknown
dxgi.dll![thunk]:ATL::CComObject<class CDXGILightweightDevice>::Release`adjustor{8}' (void)	Unknown
dxgi.dll!CDXGISwapChain::PresentImplCore(struct SPresentArgs const *,unsigned int,struct tagRECT const *,unsigned int,struct DXGI_SCROLL_RECT const *,struct IDXGIResource *,bool &,bool &,bool &)	Unknown
dxgi.dll!CDXGISwapChain::Present(unsigned int,unsigned int)	Unknown

NA.exe!DX12Renderer::Present() Line 10938 C++
NA.exe!DX12Renderer::Render() Line 3114 C++
NA.exe!Win32Window::Draw() Line 109 C++
NA.exe!RunApp() Line 25 C++
NA.exe!main() Line 35 C++
NA.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 214 C++

Any idea whats going wrong?

It seems you are not synchronizing the GPU correctly.
Can you double check the D3D12HelloFrameBuffering sample runs fine on your computer?

Note that if you are double buffering, you will need 2 command allocators, one for each alternating frame.
Same as with the frame resources that you also have to swap every time.