Check the cookies and headers which are sent in HTTP request, check if they are received. Your website might require a lot of attributes to get routed to that particular CloudFront distribution and it might not be receiving all of it. This might be a reason.
While creating a CloudFront distribution, make sure you give "all" as the option for cache based on select request headers.
For more information on this, you can check out this official docs on Whole site delivery using a CDN.