So recently I was trying to create a workflow to automatically provision a new web when all criteria was met. For some reason whenever the WF got to the provisioning step it failed with a Bad Request, plus it choked trying to display the responseContent from the call. All the settings looked correct (or so I thought). Taking a look at the ULS logs I was getting the following:
Microsoft.Data.OData.ODataException: The property ‘_metadata’ does not exist on type ‘SP.WebInfoCreationInformation’. Make sure to only use property names that are defined by the type.
So I banged my head a while on this until I finally noticed something. The metadata value in the request body is supposed to be a double underscore. ‘_’ and ‘__’ look very similar at the start of a variable. So if you are ever working on REST calls and come across something like this, take a look at that silly double underscore.
BTW, a great site for setting up workflow site provisioning can be found here.
Hope this helps someone with the same issue I had.