+ Start a Discussion
Mike WestMike West 

"savelog api method failed unexpectedly"

This regards the usage of Open CTI.
We have an Open CTI integration. The softphone component is purely html and JavaScript in the browser, and uses the standard "sforce.interaction" namespace to access the Open CTI API.
In some fairly rare customer circumstances, a call to "sforce.interaction.saveLog" will result in a failure. The returned error string is: "saveLog API method failed unexpectedly". The behaviour is that (obviously) the requested call log is not saved. Also, based on the total lack of network activity regarding this API call, the error is happening entirely within the browser; there is no reaching out to Salesforce at all. Basically, the saveLog API method fails directly within the method, returning the above error string.
What does the error string "saveLog API method failed unexpectedly" really mean? It is incredibly general with no indication as to the underlying issue. What causes this error? Is it bad input data? (Our data looks well formed, and this error is never seen by the vast majority of our users.) Is it a user permissions error? Is it an object permissions error? What is the specific failures that will cause this error?
Did you ever find a resolution to this? I'm experiencing the same issue. The generic error message is almost entirely useless.
Mike WestMike West
I apologize for taking a month to reply.
There was never a definitive answer that I got to the issue. Each time I had the customer open a ticket with Salesforce to determine the root cause, and each time the ticket got resolved and I wasn't told much. I believe the issue is that a back-end process (custom and specific to that customer's environment, like a trigger) will be in conflict with the Activity save attempt that is done in the saveLog method. Unfortunately, what the issue is, is unique to each customer. And there really isn't much the Open CTI Adapter provider can do about it.
In summary, if you see that error, have the customer open a ticket with Salesforce to find their unique cause to the conflict.