To expand on @nate’s answer, there are two basic well-posedness issues that come up with pure Neumann BCs. The first is compatibility of the Neumann data with the volume source term. If you have the interior PDE
integrating both sides over \Omega and applying the divergence theorem on the left implies that
If you also have the Neumann BC of \nabla u\cdot\mathbf{n} = g, then you need
i.e., you cannot choose g and f independently from each other. Physically, this is just saying that the flux through the boundary (g) must be balanced by the rate of production on the interior (f) to have a steady equilibrium solution. The second issue is that, even with compatible problem data, you can arbitrarily add a constant to u and get another solution, since only derivatives of u appear in both the PDE and the BC. This arbitrary constant corresponds physically to the initial distribution of u in \Omega, before the problem reached a steady state. These two issues correspond to the two classes of singular linear problems: in the first case, there are no solutions, and in the second, there are infinitely-many solutions. In either case, you’re not guaranteed to get meaningful output from the linear solver.
The demo that @nate linked eliminates the singularity at the linear algebraic level. You may find it easier to physically interpret the demo here, which introduces an auxiliary constraint to make u unique, enforced by a Lagrange multiplier that corrects f by a constant, to be compatible with g.