Very basic workflow keeps returning an INTERNAL SERVER ERROR

Very basic workflow keeps returning an INTERNAL SERVER ERROR

I'm trying to create a very simple workflow that creates a task to return missed calls. For some reason, the following line

// callId is an input argument of type INT
mp.put("What_Id",callId);

causes the workflow to return the following error

{"code":"INTERNAL_ERROR","details":{},"message":"Internal Server Error","status":"error"}

If I comment out that line then it works, however it doesn't add the missed call in the Related To field.

Zoho online support has been unhelpful as usual so I'm hoping someone here might be able to help. Here's the full code:

// Get call record
callDetails = zoho.crm.getRecordById("Calls",callId);
// Get caller name and/or number
caller = callDetails.get("Subject").toList("Missed call from ").get(1);
// Create new task map
mp = Map();
mp.put("Subject","Return missed call from " + caller);
// Note: Have tried setting $se_module to "Calls" but same issue appears.
mp.put("$se_module","Tasks");
// THIS IS THE LINE CAUSING ISSUES
mp.put("What_Id",callId);
mp.put("Status","Not Started");
mp.put("Priority","High");
mp.put("Due_Date",today.addDay(1));
// Create new task
createTask = zoho.crm.createRecord("Tasks",mp);
info createTask;