With reference to the error you get, it seems that some geometries are invalid (in this case, the
lake layer). You may check it by running several tools, for example the Check validity algorithm from Processing Toolbox. It will return three outputs:
- Valid output (i.e. the layer or the features eventually valid);
- Invalid output (i.e. the layer or the features eventually not valid);
- Error output (i.e. a point vector layer where each point indicates a geometry issue, for example a self-intersection).
The last output is useful for quickly identifying the issues, so you can repair the geometry where needed. Once you have done this operation, the splitting operation should work.