Migration progress not updating in CCMA UI

After reviewing this doc page and this thread, I’m pretty sure I’m using the API correctly (based on http method, url path, json payload keys and types).

And I’m getting HTTP 200 OK responses when POSTing progress from 0 to 100 percent which seems to confirm I’m using it correctly (although I also get 200 OK when using outdated keys per above thread).

But there is no change in the UI on the server, the row for this app’s migration status continues to say “READY”.

Taking into account a potential delay (per this thread), it still shows READY after a few hours.

Is there another step to take besides just sending those POST requests, to get CCMA to show the current percent progress for the app (under the “App migration progress” header)?

Hi @Steven,

Thanks for your question. We’ve talked about this and we’re going to update the documentation because we realise this isn’t so clear.

If you’re seeing READY it means one of a few things

  1. The app migration platform isn’t linking your server and cloud apps together. This is likely because in your implementation of AppCloudMigrationListenerV1 the result of getCloudAppKey() and getServerAppKey() don’t match your Marketplace entries. Or if it’s a private or testing app, they need to match each other. Please note our sample apps have this issue and will display READY.
  2. onStartAppMigration() isn’t called or isn’t visible via OSGi.

Can you let us know what the appKeys are for your cloud and server app?
Can you have a look at the server logs and ensure that onStartAppMigration() is being called?
Can you test again and provide the transferId so I can check our logs?

When everything is configured correctly, you’ll see STARTING instead of READY and the progress will update every 10 minutes. The final progress status needs to be one of SUCCESS/FAILURE/INCOMPLETE and progress value of 100.

We’ve logged what you’re seeing here

and I think depending on the investigation here, we’re likely to have an update to the documentation or updates to the platform.


1 Like

On the Confluence Server side, the app migration component reports the following cloud and server app keys:

  public String getCloudAppKey() {
    return "tableau-for-confluence";
  public String getServerAppKey() {
    return "tableau-plugin";

Which matches what we posted to the migration API endpoint.

From what I understood, this is what tied the two apps together in CCMA, and in fact onStartAppMigration() is being called, the correct ACE endpoint is being called, and the migration does in fact proceed and finish correctly. So it seems the migration platform does know they’re connected.

Just ran a test migration that sent two transfers under transferId e8c85c9d-c62b-388b-9a23-cd799310e0d6:

  • {"status":"IN_PROGRESS","message":"Migrating Tableau macros","percent":0}
  • {"status":"SUCCESS","message":"Finished migrating Tableau macros","percent":100}

The whole time, and 20 minutes after the migration, this is what CCMA shows:

Hi @Steven,

Thanks for the detailed update. I’ve been pouring through the logs and the code, and also run a sample migration and I can’t reproduce what’s going on for you.

Originally, I thought that sending a 0 percentage with IN_PROGRESS status was going to cause an error, but that’s valid in the code and works for metm. You’re sending SUCCESS immediately after sending IN_PROGRESS, and I thought this might be an issue, but I can’t confirm as there are no errors in the logs.

What I do note is that for every test I’ve run, CCMA will show a green RUNNING status at the start which shows onStartAppMigration() has been called, and because you aren’t seeing it I suspect there’s an issue with the registration part. But, and this is the weird part, I can clearly see you’re sending data through createAppData() calls so I’m pretty sure onStartAppMigration() is running correctly.

Let’s check a few items.

  1. Because you’re this far, you have the dark feature migration-assistant.app-migration.feature on, do you also have migration-assistant.app-migration.dev-mode in use as well?
  2. Did you complete App Assessment and mark the app as Needed in Cloud?
  3. And I think this will be the case, but is the app installed in Cloud?
  4. Do the server logs show a message starting with Cloud app key is null for server app key ...?

I suspect now that because the server and cloud keys don’t match, then we still have a few gaps where they aren’t linked correctly in the code.

Let me know about the answer to those questions and we’ll continue on from there.


  1. Yep, have both of these enabled the every time I’ve tried:

    • migration-assistant.app-migration.dev-mode
    • migration-assistant.app-migration.feature
  2. Yep.

  3. Yep. The macro migration succeeds in the cloud app, and Tableau macros are always migrated correctly in the cloud site.

  4. Just ran it again with transferId 9a08c6ec-74c1-3bd9-bd60-a65e8ce5110f while tailing logs/atlassian-confluence.log and there’s no mention of the string “Cloud app key” in there, or in any logs/* at all.

  5. Originally, I thought that sending a 0 percentage with IN_PROGRESS status was going to cause an error, but that’s valid in the code and works for me™.

    Early on, I also tested this with sending 10 as the first update. Same result. The initial 0 was an early attempt to fix this by “kick starting” the progress UI, which of course had no effect, but I left it in anyway.

  6. I’m not sure if this affects anything at all, but I’m running Confluence in Docker using the following command, and accessing it at http://localhost:8090:

    docker run \
        -d \
        -e JVM_SUPPORT_RECOMMENDED_ARGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005" \
        -v confluenceVolume:/var/atlassian/application-data/confluence \
        --name="confluence" \
        -p 8090:8090 -p 8091:8091 -p 5005:5005 \
        --network confluencenet \

After disabling the migration dev-mode flag, it now shows “Running” with 0%. Sure enough, after about 10 minutes it shows 100% and “Complete”.

1 Like

Hi @Steven,

Thanks for the great feedback. I’ve got no idea why the dev-mode is causing this, but I’ve logged this now as a bug and will start to look for a fix.