Recursive types declaration in WSDL and Logic Apps SOAP Custom Connector

As you upload WSDL document for the creation of a Logic Apps SOAP Custom Connector you may encounter the following error:

'The translation of the WSDL document to an Open API definition failed with error 'Element named 'https://foobar' has a recursive definition. Recusive types are not supported.'.'. Status code: 'BadRequest'.

(Yes there is a typo in the last sentence which I will get fixed.)

You may notice in the Azure API Management documentation that Recursion types are not supported for SOAP to REST - /fi-fi/azure/api-management/api-management-api-import-restrictions This because we haven't found a way to express recursion in the underlying Liquid template used for transforming XML to Json and back.

There are a couple of workarounds you may consider:

  • If the type with recursion is only used in SOAP actions you are not using, remove both action and type declaration from the WSDL.
  • If the type is used in an action you need but the payloads of use to you don't actually have the recursion, remove the recursive reference in the type declaration.