When I first started working with CRM’s web service, I was really frustrated by the lack of a detailed error message when something went wrong, turns out there is an easy way to always get a descriptive error.
I used to only catch a generic Exception and most of the time the only error message you’ll get from that is “Server was unable to process request”. In the example below I’m creating a phone call activity and assigning it to a system user.
However, when you catch a SoapException (found in the System.Web.Services.Protocols namespace) instead, you can view the SoapException’s Detail Property which has an InnerXml property.
Ahhhhh, I was using a Guid for a system user which doesn’t exists… *facepalm*