Gurobi fails to properly report an ERROR, when NonConvex is 0

You’re thinking too much about the edge cases of Gurobi’s behavior. If you have a nonconvex model AND you set the nonconvex parameter to 0 AND it can be solved in presolve then gurobi will report optimal. If it cannot be presolved to optimality Gurobi will error. This behavior seems like it is intended and it is not a bug.