HTTPS Node Missing URI Error

Hi,

I am attempting to send a POST call to the Thingpark API using the output HTTP node - but I am receiving an error as follows from a downstream debug node:

  "data": {
    "error": {
      "error": {
        "message": "Missing URI",
        "name": "MissingFieldError"
      }

I can successfully create this API call from within postman, and have combed the example call to try and identify why this error is being raised. I’m failing to understand what is missing which is causing the node to fail. I’ve attempted to use a Bearer token as well as basic Authorisation with no change in the end result.

I am attempting to make this call using either button in the following workflow from a dashboard to allow user update of a device via LoRaWAN downlink.

The application is as follows: /applications/Uat-push-service/workflows/Thingpark Downlink

Thank you in advanced for any help anyone can provide.

Kind regards,
Ben
PiP IoT

Can you please provide which API endpoint you’re attempting to POST to (a link to Thingpark docs would be perfect)?

Can you also paste a screenshot of the HTTP Node configuration (make sure to remove your auth token)?

Hi Brandon,

Thank you for your response.

Unfortunately with Actility’s documentation with their API it requires authentication in order to view their swagger pages ect. I’ve added a screenshot of the view of the downlink API call to this response from their DX-API site:

Here’s a screenshot(s) of the node:

Where payload.data.url is: https://dx-api-au1.thingpark.com/core/latest/api/devices/303931355D386E09/downlinkMessages?flushDownlinkQueue=true&confirmDownlink=true

Tue Feb 25, 2020 13:14:27 GMT+13:00

Please find below the copy of the workflow - note I’ve replaced the string for my API Key with

thingpark-downlink-develop.flow (5.2 KB)

Thank you advanced for any help you can provide.

Kind regards,
Ben
PiP IoT

Looking at the HTTP Node screenshot, I expect the issue is that you’ve got payload as part of the URL Template field.

The only place that payload is required in inside the Function Node, because we have to the put the payload on some variable in order for your code to access it. Outside of the Function Node, in all template the fields, there’s no need for the extra variable.

I would try changing the URL Template field to just data.url. I can confirm this if you paste a screenshot of the Debug Output that shows where that field is on the payload.

Hi Brandon,

Spot on, removing the payload from the template and url removed the error!

Thank you for your help.

Kind regards,
Ben
PiP IoT

Awesome! I’ve done the exact same thing. Glad we found the issue.