zoho.crm.getRecordById("Products", productId.toLong()); sending status failure message

zoho.crm.getRecordById("Products", productId.toLong()); sending status failure message

Hi,

I am using custom updateCommissions function to grab the Quote details using workflow when the deal is updated. This works successfully following code from Calculate commissions from quote where I am using getRecordById to fetch the Quote record.   I was able to get the value of Total fine and make the Quote Total field updates I needed to do. 

To improve the detail for company - I wanted to separate OneTime and Recurring products so I added a custom Products field called Product Type (Product_Type) which I could check for in order to calculate OneTime total and Recurring total separately.  Looking at the Quote record json, the custom Product fields are never fetched - only the Quoted Item details (see attached for Quote Product Details JSON).  This meant that I need loop foreach product, find [n]['id'] which stores their Products object IDs and from there make a separate getRecordById call to Products in order to grab the custom Product_Type value.

While I am able to get the product details json and product id from the loop and confirm using info, the code sends {"status":"failure"} once zoho.crm.getRecordById("Products", productId.toLong()) is run and sends a success message.  However, the product records are never fetched.

Is there an issue with zoho.crm.getRecordById("Products", productId.toLong()) specifically?  Is there an alternative object record fetch? 

Thanks,