The way this bug comes about is actually pretty fascinating. But it leads to the most unhelpful possible error message.
If you try to take the SVD of a 0x0 matrix, it will notice that the matrix is at least 20% wider than tall (because 0 is 20% more than 0), and thus it will take the SVD of its transpose instead. And its transpose is also 20% wider than tall. Repeat.
This should just give a reasonable error message.