I am also curious about this:
Z = torch.stft(X, n_fft=512, center=False, window=torch.hann_window(512))
X2 = torch.istft(Z, n_fft=512, center=False, window=torch.hann_window(512))

gives:
~/opt/miniconda3/lib/python3.8/site-packages/torch/functional.py in istft(input, n_fft, hop_length, win_length, window, center, normalized, onesided, length, return_complex)
    652             length=length, return_complex=return_complex)
    653 
--> 654     return _VF.istft(input, n_fft, hop_length, win_length, window, center,  # type: ignore
    655                      normalized, onesided, length, return_complex)
    656 

RuntimeError: istft(torch.DoubleTensor[257, 686, 2], n_fft=512, hop_length=128, win_length=512, window=torch.FloatTensor{[512]}, center=0, normalized=0, onesided=None, length=None, return_complex=0) window overlap add min: 0