In my case when I added the domain for LetsEncrypt I forgot /public from the Laravel path. Registration worked for some reason (?), but renewal a few months later failed.
I updated /etc/letsencrypt/renewal/*.conf and changed the path to /public and it worked.