How to rotate KES by the official documentation? And where are the official docs on how to rotate KES?

Have just lost another block due to invalid KES signature - something that is supposed to be super trivial but apparently this tech is yet to be tamed. It is literally beyond me why cardano-node is incapable of telling whether or not the the KES is valid before it gets selected as a slot leader.

InvalidKesSignatureOCERT

Sep 28 02:32:44 wladyslawa bash[1480600]: [wladysla:cardano.node.Forge:Error:141] [2021-09-28 01:32:44.03 UTC] fromList [(“val”,Object (fromList [(“kind”,String “TraceForgedInvalidBlock”),(“reason”,Object (fromList [(“error”,Object (fromList [(“error”,Object (fromList [(“failures”,Array [Object (fromList [(“error”,String “Reject”),(“kind”,String “InvalidKesSignatureOCERT”),(“opCertExpectedKESEvolutions”,String “1”),(“opCertKESCurrentPeriod”,String “318”),(“opCertKESStartPeriod”,String “317”)])]),(“kind”,String “ChainTransitionError”)])),(“kind”,String “HeaderProtocolError”)])),(“kind”,String “ValidationError”)])),(“slot”,Number 4.1226473e7)])),(“credentials”,String “Cardano”)]

Screenshot from 2021-09-28 08-18-25
Screenshot from 2021-09-28 08-58-24
Screenshot from 2021-09-28 09-28-09