Temporary/persistent storage in payload Javascript decoder

we have a LoRa device which sends the data in multiple messages. So the payload decoder would have to store the first message a short/defined time and combine it with the second packet (a few seconds later) to get the final message.
Is this possible inside Chripstack Codec (didn’t find something in docs or forum) or only at application layer?

Application layer. Also, I would caution you against this approach, is it can easily get race-y - between lack of guaranteed order, one payload being dropped and the other not, etc.

Is there a reason your device/use case cannot send separate, self-contained payloads?

Thanks, unfortunately these are off-the-shelf products where we have not any influence/settings. We can solve it in app layer, but I will also investigate why the messages are separated (maybe because of the large payload size).

I see this with a wireless mbus to lorawan bridge. Reason is that the mbus telegram is larger than a lorawan telegram. I do no decoding in chirpstack and send data for concatenation to node-red. In the lorawan telegrams you get hints of the total number of parts and the sequence number.