# Reciprocal lattice and k-lattice belong to different groups in VASP

I am trying to do geometry optimization of TiO2 with VASP. Here is the POSCAR file, which I get from the Materials Project.

TiO2_mp-390_primitive
1.0
5.5664000511         0.0000000000         0.0000000000
2.9685780783         4.7087528839         0.0000000000
-4.2674858950        -2.3543746932         2.6889205026
Ti    O
2    4
Cartesian
2.783201610         0.000000874         1.344460251
0.000000000         0.000000000         0.000000000
4.542772778         0.970757411         1.344460251
6.775406962         3.737996347         0.000000000
1.023630465        -0.970755627         1.344460251
1.759571040         0.970756466         0.000000000


I generate the K-Points with vaspkit tool:

K-Spacing Value to Generate K-Mesh: 0.030
0
Gamma
9   9  12
0.0  0.0  0.0


But I found that there is an error message about the mismatch between Reciprocal lattice and k-lattice. Here is the error message:

 VERY BAD NEWS! internal error in subroutine IBZKPT:
Reciprocal lattice and k-lattice belong to different class of lattices. Often results are still useful...      60

VERY BAD NEWS! internal error in subroutine IBZKPT:
Reciprocal lattice and k-lattice belong to different class of lattices. Often results are still useful...


And if I use the following K-Points, there would be no errors.

K-Points
0
Gamma
9   9  9
0.0  0.0  0.0


This seems weird, because it is obvious the three lattice vectors' lengths aren't the same, why would I have to use the same number of K points in three different directions?

The DFT code will typically reduce the number of Brillouin-zone sampling $$k$$-points to the irreducible Brillouin zone by applying point group operations. For this approach to work, the $$k$$-point grid must transform to itself under these point group operations. Depending on number of grid subdivisions or shifts of the overall mesh, the $$k$$-point grid can break the point group symmetry of the system, as was the case in the example of the OP.
The $$k$$-point grids corresponding to the primitive cells of body-centered tetragonal structures (such as rutile TiO$$_2$$ considered by the OP) are cases where indeed having equal number of $$k$$-points along each reciprocal unit cell vector solves the problem of otherwise broken symmetries. A smart alternative for generating a symmetry-compatible $$k$$-point without the requirement of equal grid subdivisions for such cases is given in the VASP manual (which will work with other DFT codes, too): generate a $$k$$-point grid for the conventional tetragonal unit cell (i.e. a cell containing twice as many atoms with orthogonal unit cell vectors) and explicitly provide this full grid as input to VASP together with the atomic structure input of the primitive cell (i.e., the POSCAR in the question). VASP will then reduce this grid to the irreducible Brillouin zone corresponding to the primitive cell.