How to fix Error 3065 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 3065 — Block Blob Commit Failure

Why This Error Happens

This error occurs when SQL Server 2025 attempts to write a backup or data file directly to Azure Blob Storage, but the final “commit” operation for the block list fails. The root cause is typically an expired or invalid Shared Access Signature (SAS) token/credential, insufficient permissions on the storage container, network interruption during the transfer, or the blob exceeding the maximum allowed size for a single block blob (195 GB limit without striping). Transient storage service throttling (HTTP 500/503 errors) from the Azure backend can also trigger this failure mid-upload.

Step-by-Step Resolution Guide

Step 1: Validate the SQL Server Credential and SAS Token

  • Open SSMS and run SELECT * FROM sys.credentials; to locate the credential tied to the storage account URL.
  • Verify the SAS token embedded in the credential has not expired by checking the expiry parameter in Azure Portal under Storage Account > Shared Access Signature.
  • If expired, regenerate a new SAS token with Read, Write, Create, List permissions and recreate the credential using:
  • CREATE CREDENTIAL [https://youraccount.blob.core.windows.net/yourcontainer] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET='<new_sas_token>';

Step 2: Check Network Connectivity and Firewall Rules

  • Confirm Windows Server 2025 / Windows 11 can resolve and reach the storage endpoint using Test-NetConnection youraccount.blob.core.windows.net -Port 443.
  • Inspect the Azure Storage Account Networking blade to ensure the SQL Server’s public IP (or VNet) is on the allow-list and not blocked by firewall rules.
  • Check Windows Defender Firewall (wf.msc) for outbound rules blocking port 443 for sqlservr.exe.

Step 3: Verify Blob Size Limits and Striping Configuration

  • If backing up large databases, ensure the backup is configured for striping across multiple URLs rather than a single blob, since a single block blob cannot exceed 195 GB.
  • Example syntax for striped backup:
  • BACKUP DATABASE [YourDB] TO URL = 'https://youraccount.blob.core.windows.net/container/file1.bak', URL = 'https://youraccount.blob.core.windows.net/container/file2.bak' WITH COMPRESSION, STATS = 10;

Step 4: Review SQL Server Error Log and Azure Storage Metrics

  • Open the SQL Server Error Log (Management > SQL Server Logs in SSMS) and cross-reference the timestamp of Error 3065 with the Storage Errorcode listed in the message.
  • Correlate the Storage Errorcode with Azure Storage’s Insights/Metrics blade to check for throttling (Error 503) or authentication failures (Error 403) during that window.
  • If throttling is confirmed, consider upgrading the Storage Account tier or distributing backup load across multiple accounts.

Alternative or Verification Steps

  • Run a manual test backup to the same URL (BACKUP DATABASE [TestDB] TO URL = '...' WITH COPY_ONLY;) and confirm it completes without Error 3065 to validate the credential and connectivity fixes.
  • If the error persists, switch temporarily to a local disk backup, then use AzCopy to manually upload the file to Blob Storage — this isolates whether the issue is with SQL Server’s native backup-to-URL feature or the storage account itself.