Migration event app-data-uploaded not received

Hello,
I’m implementing the automated migration using JCMA to our application and it seems the webook for event app-data-uploaded isn’t called.

I’m using the local server Jira on my laptop. The plugin has the same app key as the plugin in the marketplace. The cloud version of the app is hosted in the AWS and I created a development instance with an app key that is different than the key for production. But I don’t think this should matter, because the implementation of method getCloudAppKey returns correct key of development instance.

Anyway, when I set up the dev mode on my server Jira, running the migration using JCMA correctly executes the onStartAppMigration and I’m able to upload application data to cloud.

OutputStream firstDataStream = accessor.getCloudMigrationGateway().createAppData(transferId, "is-enabled-per-project");
firstDataStream.write(gson.toJson(isEnabledPerCloudProject).getBytes());
firstDataStream.close();

The cloud version of the app registers the webhook in the atlassian-connect.json.

"webhooks": [
      {
        "event": "app-data-uploaded",
        "url": "/migration-data-uploaded",
        "excludeBody": false
      }
]

And if I understand it correctly, the finished upload process using OutputStream should trigger this webhook, yet the endpoint is not called. It would really help me, if someone from Atlassian could check the logs, if the endpoint was really called. This should be helpful to identify my migrations:

Cloud Jira: http://closeit-tests.atlassian.net
Cloud app key: cz.closeit.atlassian.subtasks-navigation-Development
migrationId: 537a1ab7-0596-4593-b037-f68ec4c11455
migration name: Test Migration 06
migration date: today

In the past few days, I run several migrations with the same name but different number (01-06). When I’m writing this, the 06 is the latest one from today. All of them are still in progress because I wasn’t able to return the migration status from the cloud (because the webhook wasn’t called). Any help would be appreciated. Thank you.

Maybe, migration webhooks can’t be registered via atlassian-connect.json.
You may have to register it with notification API.
https://developer.atlassian.com/platform/app-migration/events/

1 Like

Hi @ludekN,

@takafumiohtake is correct. You have to register the webhook with a PUT request to The App migration platform REST API

That said, using the The App migration platform REST API also allows you to get all the recent 100 transfers that are still running and process them. This is useful if you miss a webhook.

I’m also going to give a plug for my DevDay talk on server to cloud app migration, which goes over a lot of these details

James.

1 Like

Thank you @takafumiohtake and @jrichards. I was aware of this API but I also found somewhere in the documentation that using atlassian-connect.json should work too. I will try the API instead.

Update: I’m currently unable to test the API because Jira API gives me 400 for pretty much any request I send. It’s a different problem than this, so I created a different thread for my question to keep this thread focused. Once that is solved, I will give the feedback/select solution/close this thread.

1 Like

So I registered the migration webhook using the API and it works.

I guess what confused me is the documentation about webhooks. It says they can be registered also using the atlassian-connect.json. So I thought the migration callback can be registered in the same way, since it’s also called a webhook.

Again, thank you for the help.

Hi @ludekN,

To use an Australia expression, yeah, nah. I’ll point you to the definitive answer in

I’ll add this discussion to the bug report.

James.