Calling Logic App from Cleo VLTrader

Here are anonymized notes from a live troubleshooting session for customers who were trying to send AS2 messages from Cleo VLTrader client to Logic App with HTTP request trigger and AS2 connector.

The client is using 3rd party software VLTrader from Cleo. https://www.cleo.com/cleo-vltrader/

Initially VLTrader client was receiving a 400 Bad Request response and Logic App did not have a log entry in either overview or activity log.

The Logic App user provided http request trigger URL in the form https://<instance>.<region>.logic.azure.com:443/workflows/<logic app unique ID>/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<base 64 encoded token>
The URL format is correct.

I tested the provided URL with a Hello World request message from partners foo to bar with PostMan (https://www.getpostman.com/). Although the call resulted in an error response by the Logic App (below), user was able to see the request in the Logic App run history.

{ "error": { "code": "NoResponse", "message": "The server did not received a response from an upstream server. Request tracking id '<tracking number>'." } }

It was not possible for client to install network tracing software, e.g. Fiddler https://www.telerik.com/fiddler, on client system to capture and analyze the calls made.

Further studying the VLTrader user interface, I pointed out that the query string parameters were copied in the relative path URL while the user interface had a dedicated field for query parameters. Client shared that this was attempted before, although without removing the query string separator character ‘?’. So these were tested now:

Path: /workflows/<logic app unique ID>/triggers/manual/paths/invoke
Parameter: api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<base 64 encoded token>

Now the client was receiving as response 401 Unauthorized.

Receiver spotted that the VLTrader output showed unexpected characters in the actual call log query string:

2018/02/20 11:35:00 HTTP: "POST /workflows/<logic app unique ID&gt/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%252Ftriggers%252Fmanual%252Frun&sv=1.0&sig=<base 64 encoded token>"

I identified the added characters as escape characters for the already escaped characters. i.e. % of %2F for / was escaped again as %25 in %252F. So instead I suggested to use in the user interface the un-escaped query parameters string:

api-version=2016-10-01&sp=/triggers/manual/run&sv=1.0&sig=<base 64 encoded token>

VLTrader client then received 200 OK response from Logic App with a synchronous MDN.

In case you get an MIC mismatch on the MDN response for SHA-256, try using SHA-1 instead.