HTTP integration not working in Chirpstack V4

Sorry for posting this here again, but I feel a little ignored with my first post about HTTP integration problems.
Maybe this is the better category for it.

I am using Datacake as HTTP integration on Chirpstack V3 without problems.

Datacake URL used in the integration is https://api.datacake.co/integrations/lorawan/chirpstack/

But after upgrading to Chirpstack V4 I am getting this error in the log:

Sep 26 10:04:21 vmi80688.contaboserver.net chirpstack[2042]: Sep 26 10:04:21.596 ERROR up{deduplication_id=909e37b1-2204-4b8d-bf72-b87c961ae26b}:data_up: chirpstack::integration::http: Posting event failed event=up url=https://api.datacake.co/integrations/lorawan/chirpstack/ error=HTTP status client error (400 Bad Request) for url (https://api.datacake.co/integrations/lorawan/chirpstack/?event=up)

The URL is the same I use on V3.

When I change the URL (take away the tailing /) the error message changes to

Sep 26 10:09:51 vmi80688.contaboserver.net chirpstack[2042]: Sep 26 10:09:51.684 ERROR up{deduplication_id=d572de12-14ac-41fb-a8d1-ddc74f57019f}:data_up: chirpstack::integration::http: Posting event failed event=up url=https://api.datacake.co/integrations/lorawan/chirpstack error=HTTP status client error (405 Method Not Allowed) for url (https://api.datacake.co/integrations/lorawan/chirpstack/?event=up)

Anyone knows why?

The log output in Chirpstack V3 shows the same URL and it works

Sep 26 16:17:44 Chirpstack chirpstack-application-server[550]: time=“2022-09-26T16:17:44.204661714+08:00” level=info msg=“integration/http: publishing event” ctx_id=e5845d07-b28d-442d-8ab4-7558133dcd4a dev_eui=ac1f09fffe03b855 event_type=up url=“https://api.datacake.co/integrations/lorawan/chirpstack/?event=up”

Tried Ubidots, worked on V3 as well, but now gives as well error message:

Sep 26 10:52:25 vmi80688.contaboserver.net chirpstack[1682]: Sep 26 10:52:25.115 INFO up{deduplication_id=1f072b63-2c0b-4329-9de7-425ffcb28730}:data_up: chirpstack::integration::http: Posting event event=up url=https://parse.ubidots.com/prv/rakstars/beegee-chirpstack

Sep 26 10:52:25 vmi80688.contaboserver.net chirpstack[1682]: Sep 26 10:52:25.617 ERROR up{deduplication_id=1f072b63-2c0b-4329-9de7-425ffcb28730}:data_up: chirpstack::integration::http: Posting event failed event=up url=https://parse.ubidots.com/prv/rakstars/beegee-chirpstack error=HTTP status server error (502 Bad Gateway) for url (https://parse.ubidots.com/prv/rakstars/beegee-chirpstack?event=up)

Please note that in v4, the JSON format of the integrations is slightly different from v3, which could explain the “400 Bad Request” error.

You mean all HTTP integrations are broken now and the integration providers like Datacake, Ubidots, … have to change their interface ???

If they rely on the ChirpStack v3 format, then yes there are some changes required at their side (or an option to choose which version is used).

A better way would be to create a dedicated integration within ChirpStack. That way, the JSON output can be made specific for an external service and a major version. See for example the Pilot Things integration: https://github.com/chirpstack/chirpstack/blob/master/chirpstack/src/integration/pilot_things.rs#L122.

1 Like

Thanks for confirming. I am approaching Datacake right now.

About the dedicated integration, I speak some languages like C, C++, a little bit of assembler, but I have no idea what that code is doing or how to change it.

@brocaar
Thanks for pointing me to the changed integration packet format.
Datacake.io is now working with Chirpstack V4. I was talking with them and they could solve it within a day.

1 Like

Minor correction, suffix is CO not IO, link should be https://datacake.co/