A client using Civicrm recently approached us with a problem: bounced emails, sent through the Sendgrid email service were no longer reporting as bounced. All emails, regardless of status, were reporting as being successful. Our custom module (D6 integration) was attempting to extract data from the post, thusly:
Unfortunately, the v2 to v3 upgrade changed the format of the POST request data to a nested json array, and required a little bit of tweaking to be properly extracted, and record bounces. The fix was fairly straightforward: get the contents of the request, and then run them throughjson_decode()
The patch to be applied to our custom module (civicrm_sendgrid_events) is attached.