I have a PHP application using php7.4 fpm and apache2. There's a strange problem where most pages return a status code of 500, meaning internal server error, however the browser loads the page just fine and there are no errors in any apache or PHP logs that I can find. It doesn't make sense to me that the browser would ignore the 500 error... but it does
Since everything appears to work, there really isn't a problem. Except that there are some Ajax calls and other processes that are explicitly checking the status and aborting if it's not 200.
This application is a 3rd party ioncube encoded PHP application, so I can't view the source code. I've asked the original developers to take a look but they couldn't find anything wrong. I have the same application running on a dev machine that's setup pretty similar and it does not have this problem. So I've ruled out the application itself, it's got to be environmental.
I'm at a loss at where to look next, I'm not new at managing a Linux server and apache so I feel frustrated that I can't track this problem down. I've searched google relentlessly, tried swapping PHP versions, checked and double-checked file permissions and ownership. I've been looking for weeks and can't find the problem. I'm sure I'm missing something probably obvious, I just can tell what.
If anybody can give me some ideas as to where I can look next, I'd be grateful.
Screenshot of response headers on a page that otherwise loads fine. This page isn't doing much of anything other than displaying phpinfo() along with the applications menu system: Headers Screenshot