Civi returning 500 errors to Paypal Pro request to civicrm/extern/ipn.php
Civi gathers all the information it needs from Paypal's request to ipn.php and DOES correctly update the status, fee_amount, etc. from the array given to Civi by Paypal. Note: This is for ONE TIME (single) transactions, not for recurring transactions.
However despite this, Civi is returning a 500 error back to Paypal, who in turn tries and tries again, and eventually turns off IPN entirely.
The original report is here: https://civicrm.stackexchange.com/questions/26603/anyone-getting-ipn-warning-emails-from-paypal and I've discussed the issue with @xurizaemon and @eileen
CiviCRM.log does list the array received from Paypal which appears intact, but there is no mention of any error, per se, in CiviCRM.log. However in the server php error_log I find the attached error for the same transaction. Note there are several 500 because Paypal, after the initial perceived failure repeats the request several times in the subsequent minutes.
Note that comparatively the 'new URL' for IPN works fine, and returns 200 code: civicrm/payment/ipn/1