The reason why this happens is shown here: https://stackoverflow.com/questions/38141269/google-analytics-e-commerce-with-measurement-protocol-not-set-landing-page .
Basically, this happens because when pushing a lead or sale via the Measurement Protocol and that happend 30+ minutes after the session. This happens because Google Analytics session has a default max 30 minutes duration.
Another reason could be due to inconsistent tracking codes.
Several solutions are written in this blog: https://www.idimension.com/2017/12/landing-page-not-set-why/