Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

BitBucket Cloud Migration Assistant throwing exception and stuck at awaiting migration

faizal_haji_admin
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 1, 2025

 
We had successful migrations using (BitBucket Cloud Migration Assistant) BCMA for a while but starting today, December 1, 2025, we are having problems using this plugin.

The BCMA plugin was uninstalled and installed but still not luck.

We have confirmed we have the latest version of the BCMA plugin.

Logs show that the BCMA is throwing exception:


c.a.b.p.b.m.MigrationServiceClient Requesting: https://api-private.atlassian.com/migrations/v1/migration/f2aabbdf-2c65-4440-8b3a-eb4a36699680?heartbeat=true
2025-12-01 13:42:37,872 DEBUG [bcma-4] c.a.b.p.b.j.V4MigrationJobPollerDelegate No command found for poller V4Poller-bitbucketRepositoryDataUpload-100eb364-478a-41b9-a0dc-d99f299f18bb, will keep trying
2025-12-01 13:42:37,873 DEBUG [bcma-4] c.a.b.p.b.j.V4MigrationJobPollerDelegate Polling command for poller: V4Poller-bitbucketRepositoryDataUpload-100eb364-478a-41b9-a0dc-d99f299f18bb
2025-12-01 13:42:37,882 ERROR [bcma-1] c.a.b.plugin.bcma.polling.Poller Unexpected error whilst executing polling loop
com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClientErrorException: Error occurred during migration
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceExceptions.clientError(Exceptions.kt:35)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.defaultUnexpectedStatusCodeExceptionHandler(MigrationServiceClient.kt:736)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.access$defaultUnexpectedStatusCodeExceptionHandler(MigrationServiceClient.kt:42)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient$runHandlingHttpCallExceptions$1.invoke(MigrationServiceClient.kt:730)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient$runHandlingHttpCallExceptions$1.invoke(MigrationServiceClient.kt:730)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.runHandlingHttpCallExceptions(MigrationServiceClient.kt:746)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.runHandlingHttpCallExceptions(MigrationServiceClient.kt:730)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.execute(MigrationServiceClient.kt:726)
at com.atlassian.bitbucket.plugin.bcma.migrationservice.MigrationServiceClient.getMigration(MigrationServiceClient.kt:174)
at com.atlassian.bitbucket.plugin.bcma.polling.StatusPollerDelegate.doInvoke(StatusPollerDelegate.kt:43)
at com.atlassian.bitbucket.plugin.bcma.polling.StatusPollerDelegate.run(StatusPollerDelegate.kt:23)
at com.atlassian.bitbucket.plugin.bcma.polling.Poller.doPoll(Poller.kt:121)
at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:34)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.lang.Thread.run(Thread.java:750)
... 1 frame trimmed
Caused by: com.atlassian.bitbucket.plugin.bcma.httpclient.exceptions.UnexpectedStatusCodeException: Received an unexpected status code; expected [200], but received 403: {"timestamp":"2025-12-01T20:42:37.865+00:00","path":"/migrations/v1/migration/f2aabbdf-2c65-4440-8b3a-eb4a36699680","status":403,"error":"Forbidden","requestId":"51ce9bb9-585403","message":"ASAP token is unauthorized"}

 

1 answer

0 votes
Marco Aponte
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 3, 2025

Hi, were you able to fix this? 

Same thing is happening to me, I was told it was a networking issue, but I only have a proxy in front of the BB server

That being said, when I execute a plan, I have inconsistent behavior, some repos are shown as completed and others as incomplete, even though the information got migrated 

If you have any other info please do let me know, I'll do the same

faizal_haji_admin
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 3, 2025

No, we are not able to fix this. For now, we just use the view details to confirm that the repo got migrated fine. The overall status is left pending forever spinning in la la land. I believe its an Atlassian issue and not networking issue since its the call to their endpoint that is failing with auth error. 

Received an unexpected status code; expected [200], but received 403: {"timestamp":"2025-12-01T20:42:37.865+00:00","path":"/migrations/v1/migration/f2aabbdf-2c65-4440-8b3a-eb4a36699680","status":403,"error":"Forbidden","requestId":"51ce9bb9-585403","message":"ASAP token is unauthorized"}
Marco Aponte
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 4, 2025

Same here, exact same error as you, the problem I have is that I have more than 9k repos, and how can I trust BCMA if there's no consistent behavior

I'm just checking proxy configurations, https headers and buffer, but I don't think that's the problem either. 

Dave Snyder
Contributor
December 9, 2025

Same issue here too. I thought it was an isolated issue with our environment. I've shared this link in my migration support ticket.

I was told to try the following (I've done #1 and #4 is N/A in our situation), but everything was fine a couple weeks ago:

Authentication Refresh: Sometimes the stored trust connection becomes stale.
Go to the Migration Assistant in Bitbucket.
Locate the connected Cloud site.
Remove (disconnect) the site and then Add (reconnect) it again. This forces a fresh security key exchange.


Time Synchronization: Verify that all Bitbucket nodes are synchronized via NTP. Even a small drift (clock skew) will cause the security token to expire instantly.


Network Allowlist: Ensure your firewall allows outbound connections to https://api-private.atlassian.com and the other required domains listed in our Bitbucket Cloud Migration Assistant network requirements.


Proxy Configuration: If you use a proxy, ensure it is not configured to strip the Authorization headers for traffic going to Atlassian domains.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PERMISSIONS LEVEL
Product Admin Site Admin
TAGS
AUG Leaders

Atlassian Community Events