Hi,
first, while what you receive looks like XML, it is Non-XML:
https://www.w3.org/TR/xml/#NT-XMLDecl
After "<?xml" comes VersionInfo [24], and that requires a leading space ("S").
So easiest is let each and every false request just fail and force sender to fix his system!
Only in case you cannot force sender to send non-junk input, as said the input is Non-XML. So you can fix with a GatewayScript action reading input with "session.input.readAsBuffer()" and then create new Buffer from that with space inserted between "<?xml" and "version...". Then just do "session.output.write(newBuf)" and the following rule action will get valid XML as input.
#DataPower#Support#SupportMigration