---
cuppy_hub: azure
cuppy_path: reference/sql/errors.md
cuppy_section: docs
cuppy_doc: W0HQ-C7CK
cuppy_doc_uuid: b57f20c9-4201-40ab-aeca-aa6372f54863
cuppy_permalink: https://cuppy.io/azure/d/W0HQ-C7CK
cuppy_version: 1
cuppy_updated: 2026-10-23T16:16:52.575Z
cuppy_canonical: https://cuppy.io/azure/docs/reference/sql/errors
cuppy_mcp: https://cuppy.io/mcp
cuppy_body_sha256: d926feef250d02328b3c39af7bbbc717dc852f2edb1342a7bceeb88e84604346
# cuppy_body_sha256 is over the document body ALONE, excluding both generated blocks.
---


# Azure SQL Database errors

Messages are Microsoft's; `%…` and `<…>` are placeholders. Connection-level guidance: `reference/sql/connections-and-auth.md`.

## Login and network

| Error | Cause → fix | Check |
|---|---|---|
| **18456** `Login failed for user '<User name>'.This session has been assigned a tracing ID of '<Tracing ID>'. …` | Wrong credentials, disabled login, no database user; with Entra-only on, any SQL login. For apps: no `CREATE USER … FROM EXTERNAL PROVIDER` in **that** database, or the token is for the wrong identity. A stale hosts/DNS override pinned to an old gateway IP also does it | `SELECT name, is_disabled FROM sys.sql_logins;` / `sys.database_principals` in the app database |
| **4060** `Cannot open database "%.*ls" requested by the login. The login failed.` | The principal has no user in the requested database (tools default to `master`). Create the user there, or set the right database in the connection | Connection string `database` |
| **40615** `Cannot connect to < servername >` | Client IP not in any server or database IP rule | `az sql server firewall-rule list -g <rg> -s <server>` |
| **47073** `An instance-specific error occurred while establishing a connection to SQL Server. The public network interface on this server is not accessible. To connect to this server, use the Private Endpoint from inside your virtual network.` | Public network access is disabled: connect through a private endpoint (and its DNS), or enable selected networks | `az sql server show -g <rg> -n <server> --query publicNetworkAccess` |
| **42101** `Unable to create or modify firewall rules when public network interface for the server is disabled. …` | IP rules can't be managed while public access is off | Same |
| **47072** `Login failed with invalid TLS version` | Client below the server's minimum TLS (1.2 at least now) | Driver or OS TLS settings |
| **33134** (creating an Entra user) | Conditional Access blocks the server's Graph calls, or an app runs `CREATE USER`: allow Microsoft Graph in the policy, or run it as a user | — |
| **26** `… (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)` / **40** `… (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)` | The client can't reach the server: wrong name, DNS, firewall, or blocked 1433 (and 11000–11999 for Redirect) | `nslookup <server>.database.windows.net`; `Test-NetConnection -Port 1433` |

## Transient: retry with backoff

| Error | Meaning |
|---|---|
| **40613** `Database '%.*ls' on server '%.*ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them with the session tracing ID of '%.*ls'.` | Reconfiguration, failover, or a **paused serverless database resuming** (under a minute). Support case if it lasts past 60 seconds or recurs daily |
| **40197** `The service has encountered an error processing your request. Please try again. Error code %d.` | Upgrade, hardware failure or failover; log the inner code (40020, 40143, 40166, 40540) |
| **40501** `The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.` | Engine throttling: wait at least 10 seconds |
| **10928** `Resource ID: %d. The %s limit for the database is %d and has been reached. …` | Worker (or session) limit: reduce blocking and parallelism, then scale |
| **10929** `Resource ID: %d. The %s minimum guarantee is %d, maximum limit is %d, and the current usage for the database is %d. However, the server is currently too busy …` | Retry later; in elastic pools add capacity or move databases |

Microsoft's guidance: wait **5 seconds** before the first retry, grow the delay exponentially to **60 seconds**, cap the attempts, and after a failure mid-query **open a new connection** before retrying; retry an `UPDATE` only inside a transaction you know rolled back. Its sample also treats 10053, 10054, 10060, 233, 64, 40540 and 40143 as transient.

**Node.js (tedious, used by `mssql`):** tedious itself retries the login-time errors **4060, 10928, 10929, 40197, 40501 and 40613**, three times **500 ms apart** by default (`maxRetriesOnTransientErrors`, `connectionRetryInterval`): too short for a serverless resume. Login failures surface as `ConnectionError` with `code: 'ELOGIN'` and the server's message but **no error number**; query errors (`RequestError`) carry `number`. A retry wrapper must check both (`guides/sql/connect-from-typescript.md`).

## Session and resource limits

| Error | Fix |
|---|---|
| **40544** `The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.` | Raise `MAXSIZE` if the tier allows, clean up, or scale |
| **40549** `Session is terminated because you have a long-running transaction. Try shortening your transaction.` | Batch the work; look for blocking |
| **40550** `The session has been terminated because it has acquired too many locks. …` | Smaller transactions |
| **40551** `The session has been terminated because of excessive tempdb usage. …` | Fewer or smaller temp objects |
| **40552** `The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.` | Batch; bulk loads with a batch size; `REBUILD WITH ONLINE = ON` |
| **40553** `The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.` | Tune the query (sorts, grouping); scale |

## Management operations

| Error | Fix |
|---|---|
| **49918** `Cannot process request. Not enough resources to process request. The service is currently busy. Please retry the request later.` | Retry later |
| **49919** `Cannot process create or update request. Too many create or update operations in progress for subscription "%ld".` / **49920** `Cannot process request. Too many operations in progress for subscription "%ld".` | Wait for or cancel pending operations (`sys.dm_operation_status` in `master`); serialize automation |


---
<!-- cuppy -->
You are reading one file. The same content is free over MCP at https://cuppy.io/mcp with no signup: ranked search across all 107 documents in this hub, the merged view when you work in a layer, known workarounds matched to the error you hit, and depth control so you spend tokens on what you need. Start with the `_hello` tool. How to connect: https://cuppy.io/azure/ Something wrong in this document? Report it with the `session feedback` tool on the same endpoint.
<!-- /cuppy -->
