Receiving multiple payloads to my listener even after sending acknowledgement to JMCA with 200

Hi Guys,

We are getting multiple payloads for the same transferid with 2m of interval. Even though after sending a successful 200 status JSON response to JCMA.

we are not doing anything with LISTENER_TRIGGERED event, we just skip it and looking for the APP_DATA_UPLOADED event. Once we got that payload, we start our migration on the cloud side. If migration successful we return a JSON response object with 200 status code to the JCMA
as shown below ( is this correct format to send 200 to JCMA for acknowledgment as shown below.)

{
statusCode: 200,
body: JSON.stringify(“Success”),
}

Even after sending this JSON response with 200, we are getting multiple payloads for the same transferid. Can you please suggest on this. Are we sending the proper formatted 200 status code to JCMA.

Refer to below screenshot as per my code, for sending 200 status format to JCMA after migration completed. is this format is correct to avoid multiple payloads.

Hello @DharmaTeja ,

Could your code be taking more than 10 seconds to reply?
That’s the time-out we have and a late response would be considered a failure.
More details at Webhooks and events

Regards,

Andre

Hi @DharmaTeja,

Just coming back to this post. Is this still happening?

Regards,
James.

Hi @jrichards,

Thanks for your reply. As per the initial design, we are sending a post-event 200 response and the response sending time will take more than 10sec here, so we are getting multi payloads.

Now we changed the design and sent the pre-event 200 responses first, which is taking less than 10sec. In this case, also we are receiving more than 1 payload. But the subsequent payload is failing with 404 errors.

Hi @DharmaTeja,

Are you send responses for both listener-triggered and app-data-uploaded events? And what do you mean by

… subsequent payload is failing with 404 errors.

Do you mean when you try and retrieve uploaded data?

Regards,
James.

Hi @jrichards,

Currently we are not sending any 200 response for listener-triggered event. And we are sending only post-event 200 response for app-data-uploaded event.

My intention was, we are getting multiple payloads because within 10sec we are not sending the 200 response for app-data-uploaded event, so getting multiple payloads, in this case, we observed the first received payload process success and sending 200 and after a few secs will receive the same payload, while processing that we are getting 404 errors on JCMA endpoints.

Let me correct my 2nd comment which I posted previously. It was a proposed design but not yet implemented.

Hi @DharmaTeja,

You need to send HTTP 2xx for both listener-triggered and app-data-uploaded events, even if you do no processing on them just to let the App migration platform know you’ve received them, otherwise the platform will continue to send the events multiple times for a few days. You don’t need to send a payload with the response, a HTTP 204 by itself is sufficient. I’d like to make sure that the code you posted, I’m not sure how the response is used and what statusCode is, but it must be a HTTP status code, not a json blob with {"statusCode": 200}

I still don’t understand what you mean by

But the subsequent payload is failing with 404 errors.

What payload are we talking about? Where is the HTTP 404 coming from? Is it an endpoint in Jira or somewhere else? Can you be more specific with logs, or example code or a step by step details of what you’re doing?

Regards,
James.