Mathematical boundedness
The model is bounded if all eigenvalues of $Q$ are positive. As @prubin already answered this is the case with high probability.
Mathematically, the distribution of eigenvalues for this matrix has been analyzed already (the Wishart distribution). This distribution is continuous, so the probability of an eigenvalue being exactly $0$ is nil.
Solver troubles
The solver may have trouble with it because the generated matrix has really bad conditioning. The ratio between larger and smaller eigenvalues is typically around $10^5$ for a $100 \times 100$ matrix, and $10^6$ for a $1000 \times 1000$ matrix, but is often as high as $10^8$ and $10^{10}$.
In Python:
H = np.random.randn(100, 100)
Q = H @ H.transpose()
eig = np.sort(np.linalg.eigvalsh(Q))
print(f"{eig[-1] / eig[0]}")
This is called the condition number. A high condition number means that the smallest eigenvalue is very close to $0$ compared to the largest.
Depending on the solver, this can cause numerical issues, and this is probably why the model is declared unbounded.
A plot of the condition number across matrices:
Avoiding the issue
If this is indeed the issue for your solver, you could generate matrices with better eigenvalue distributions.
A very simple way to improve the conditioning (flatten the eigenvalue distribution) is to make your initial matrix $H$ non-square ($n \times m$ with $m > n$).
I plotted the condition number for varying $m$, averaged over 100 matrices. We see that it improves the condition number very quickly (note the log scale!).
Please tell me if it helps with your solver.