This might seem like an oddly specific question, but hear me out.
I have an application that I distribute freely to whoever wants to use it that talks to Salesforce via the Partner API. Right now the current release is using the Spring '19 WSDL (v45.0) and the corresponding API endpoints.
That works great, but now the Summer '19 (v46.0) release is hitting sandboxes and very soon production orgs as well. I'm starting to get error reports from people using my tool against Summer '19 sandboxes.
The following error is coming back from a describeSObjects()
Partner API v45.0 call.
System.InvalidOperationException: Instance validation error: 'tns:json' is not a valid value for soapType.
It was recommended that I check the v46.0 Partner API WSDL. Sure enough, it now has json
as a fieldType
and a soapType
of tns:json
.
So it would appear that a field type defined in v46.0 is leaking back into a v45.0 API call. That's a bit of a problem as it potentially breaks any pre-Summer `19 integration that makes a describe sObject call on the corresponding type(s).
I'm going to raise a support case for this, but I don't know under what circumstances the new tns:json field type is coming back. The first question Salesforce support is going to ask is how to reproduce the error. It isn't in any of the sandboxes I have access to.
So my question is:
Which sObject type(s) are returning a field with the soapType tns:json?
Update: Raised as case 23206206
APIEvent.RecordData
will replicate the problem.RecordData