Update on this issue. The S3 trigger seemed to have a timing issue. I was able to resolve this by using Cloudwatch EventBridge to monitor S3 CreateObject event and use that as a trigger. Once I removed the S3 trigger, changed to this trigger (and adjusted code for the changes to JSON event), it works perfectly now.