It's the flywheel. The design of the engage angle is not correct. When it's new, there is no problem. But when it got worn, it's very easy for the starter pinion to slip and unable to engage. The ultimate solution is to replace the flywheel to an updated version. But it's a pain in the a$$.