Share via

Azure SQL BACPAC parallel imports stuck at 100% for extended periods – expected behavior?

FELDNER Ilanit 40 Reputation points
2025-12-25T08:00:42.6633333+00:00

Hi,

I’m looking for clarification on the expected behavior of Azure SQL Database** BACPAC imports**, particularly in environments where imports may be triggered in parallel and imports reach 100% but do not complete.

Environment

  • Azure SQL Database
  • SKUs tested:

General Purpose, Gen5, 8 vCores

  • Hyperscale, provisioned, 8 vCores
  • Imports are done on copy DB's from another logical server

Imports initiated via Azure.ResourceManager.Sql (tested with both production SDK versions and 1.4.0-beta.3)

Fully Managed Identity–based flow (no SAS, no stored credentials)

  • No pod-based - as we want to avoid pods hanging on long imports

Private Endpoint Connections are used and approved

  • BACPACs stored in Azure Blob Storage (same region)

All imports target the same logical SQL server

  • Users can trigger imports independently

The solution must support importing both small and large (including very large) BACPACs

Observed behavior

Imports often reach 100% and then get stuck at that state for days.

Some imports eventually fail after remaining at 100%.

  • This behavior occurs for small BACPACs, and is observed on both GP Gen5 and Hyperscale.

The issue reproduces across multiple attempts and SDK versions.

Questions

Is this behavior (parallel imports reaching 100% and then getting stuck or failing) expected by design for Azure SQL BACPAC imports?

  1. What does “100%” represent in the BACPAC import lifecycle, and what work (if any) happens after that point?

Is there a supported way to determine whether an import that reached 100% is still progressing versus effectively stuck?

Given the constraints above (parallel users, MI-only, no pod-based solution, mixed small and large BACPACs), are there recommended patterns to avoid imports getting stuck or failing?

Thanks for any clarification

Azure SQL Database

Answer accepted by question author

Anonymous
2025-12-25T08:17:02.2533333+00:00

Hi @FELDNER Ilanit

Thanks for reaching out to Microsoft Q&A! Here’s a step-by-step guide to help you fix the issue.

It seems like you're running into some really critical behavior with Azure SQL Database BACPAC imports getting stuck at 100%. Let me break things down a bit and outline what might be going on, along with a few things you can try next.

Is This Normal?

In short, no. A BACPAC import shouldn’t get stuck at 100% for too long. If that’s happening, it usually means something in the background is causing a slowdown—especially if multiple imports are running at the same time.

What Does “100%” Actually Mean?

When the progress hits 100%, it typically means the data transfer itself is done. However, that’s not the end of the process. Azure might still be doing things like creating indexes, updating metadata, or finalizing the schema. If the database is under heavy load or there’s competition for resources, this is where things often get hung up.

How to Check If It's Truly Stuck

Instead of just relying on the Azure Portal, here are a couple of ways to get a clearer picture:

  • Use Get-AzSqlDatabaseImportExportStatus in Azure PowerShell to track the import’s real-time status.
  • Keep an eye on the database metrics to see if the CPU, DTUs, or storage are maxing out.

Avoid Stuck Imports

Given you're running parallel imports and using Managed Identity without pods, here are a few things you can try:

  • Reduce Parallel Imports: If possible, space out your imports so they don’t all run at once.
  • Temporarily Scale Up: Moving to a higher tier during imports can give you more resources to handle the load.
  • Try SqlPackage: If you're dealing with larger BACPACs (especially over 150GB), SqlPackage is often more reliable than imports through the portal.
  • Check for Clustered Indexes: Large tables without clustered indexes can really slow things down.
  • Validate Source DB Settings: Ensure the source database doesn’t have unsupported configurations, logins, or settings that could cause issues during the import.

A Few Questions to help find the Issue:

  • Have you checked your Azure SQL Database metrics for any CPU or DTU bottlenecks?
  • Would staggering the imports be an option to reduce the load?
  • What sizes are the BACPAC files you're working with?

Reference B articles -

Was this answer helpful?

0 comments No comments

1 additional answer

Sort by: Most helpful
  1. AI answer

    2025-12-25T08:01:00.1033333+00:00

    When using the Azure SQL Database Import/Export service, it is not uncommon for imports to reach 100% and then appear to get stuck for extended periods. This behavior can be attributed to several factors:

    1. What does “100%” represent?
      The 100% completion status indicates that the service has finished processing the data transfer. However, it does not necessarily mean that all finalization tasks are complete. After reaching 100%, the service may still be performing additional work related to the logical backup, such as finalizing the import process and ensuring data integrity.
    2. Determining Progress:
      Unfortunately, there is no straightforward method to determine if an import that has reached 100% is still progressing or effectively stuck. The service has a limited number of compute virtual machines (VMs) per region to handle import/export operations, and if multiple requests are made simultaneously, it can lead to delays. If an import remains at 100% for an extended period (e.g., days), it may indicate that the operation has encountered an issue.
    3. Recommended Patterns:
      To avoid imports getting stuck or failing, consider the following best practices:
      • Limit the number of parallel imports to reduce contention for resources.
      • Use the SqlPackage command-line utility for larger BACPAC files, as it may handle imports more efficiently than the Azure portal or PowerShell.
      • Ensure that the target database is empty before starting the import to avoid conflicts with existing objects.
      • Monitor the performance and resource utilization of the Azure SQL Database to ensure it is adequately provisioned for the workload.
      • Utilize Business Critical or Premium tiers for better performance during import operations.

    By following these recommendations, you may improve the reliability and performance of your BACPAC imports in Azure SQL Database.

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.