DescribeSObject call using the v45.0 Partner API are failing due to a complex type(json) that isn't defined in the WSDL
Last updated 2022-02-10 ·Reference W-6222075 ·Reported By 15 users
Summary
Some calls to describeSObjects() using the older versions of the Partner API are failing due to a complex type that isn't defined in the WSDL being returned.
In Summer ‘19, Real-Time Event Monitoring Beta was released and made available to orgs with Event Monitoring license. As a result, some objects which were originally implemented in earlier versions of the API may now be visible. Some of the objects include a field with JSON data type which were not defined in earlier versions of the WSDL when these objects were not available, so describe calls referencing these objects may fail.
Repro
1.Call describeSObjects() using the v45.0 or older Partner API against a v46.0 org.
2. The call will fail with this error message ‘System.InvalidOperationException: Instance validation error: 'tns:json' is not a valid value for soapType.’
Workaround
1) Use the latest partner WSDL.
2) Update your pre-v46-versioned partner wsdl with (If you wanted to connect to an Org with Event Monitoring enabled from the WSDL generated from a non enabled org)
<simpleType name="json">
<restriction base="xsd:string"/>
</simpleType>
below <simpleType name="ID">...</simpleType>
Add
<enumeration value="json"/>
to <simpleType name="fieldType">
Add
<enumeration value="tns:json"/>
To <simpleType name="soapType">
Is it Fixed?
Any unreleased services, features, statuses, or dates referenced in this or other public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make their purchase decisions based upon features that are currently available.