423 Locked: Trace the Lock and Release It
423 Locked means a resource is locked against changes. Find the lock that's blocking you in 3 steps, then release it. Free instant check, no sign-up.
Check your domain for this issue now
Free, no sign-up. Runs the exact check this guide describes and shows what to fix.
Problem
You send a request — a save, a PUT, a MOVE, an API write — and back comes 423 Locked. Nothing is wrong with what you sent. The resource itself is off-limits: something has placed a lock on it, and the server refuses to let a second writer touch it until that lock is gone. This isn’t a state conflict or a permission problem. It’s a reservation. Somebody, or some process, is holding the resource, and the server is protecting whoever holds it from being overwritten. Your job is to find out who holds the lock — and whether that’s you.
Symptoms
- The response status is
423 Locked. In WebDAV, the body is XML carrying a precondition element such as<DAV:lock-token-submitted>or<DAV:no-conflicting-lock>. - In SharePoint, OneDrive, or Office, the human-facing version reads “This file is locked for editing” or “locked for shared use by
.” - The same write succeeds once the lock clears — closing the document, ending the session, or waiting out a timeout makes the error disappear on its own.
- A browser typing the URL never sees a 423; browsers treat it as a generic
400. If you’re looking at a real 423, you’re using a WebDAV client, an API, or reading server logs.
What This Error Actually Means
423 was defined in RFC 4918 §11.3, the WebDAV specification: “the source or destination resource of a method is locked.” WebDAV added the ability to LOCK a resource before editing it so two authors editing the same file over HTTP couldn’t silently clobber each other — the “lost update problem.” When you take a lock, the server hands you a lock token. To make a change while the lock is held, you present that token back in the If request header. No token, or the wrong one, and the write is refused with 423 and a DAV:lock-token-submitted precondition. A conflicting depth-infinity LOCK over a collection that already contains a locked member fails the same way, with DAV:no-conflicting-lock.
Plain web servers don’t lock resources on their own, so most 423s today come from two places. The first is the WebDAV world it was designed for — SharePoint, OneDrive, Nextcloud, and any Office-over-WebDAV setup, where a file open in a desktop application is locked against edits until the app closes. The second is modern APIs that borrowed 423 as a general “this resource is reserved” signal: a record checked out by a workflow, a document held by an editing session, a job that locked its own row while running, an account frozen mid-operation. Same meaning in both: the resource is spoken for, and the fix is to release the reservation, not to retry harder.
Top 3 Causes
- A file is open in a desktop app (SharePoint / Office / OneDrive) - The overwhelmingly common cause outside pure WebDAV. Someone has the document open in Word, Excel, or a synced client, which holds an editing lock. Until that app closes — and the post-close grace period elapses — every other write gets 423. If the app crashed, the lock is stale and outlives the person who set it.
- You didn’t submit the lock token you’re supposed to hold - You (or your client)
LOCKed the resource but the follow-up write omitted the token, or sent a stale one, in theIfheader. The server can’t tell your write apart from an intruder’s, so it refuses withDAV:lock-token-submitted. This is a client-side bug: acquire the lock, then thread its token through every subsequent request. - An application-level lock the API sets on purpose - The endpoint deliberately locks the resource during a workflow — a document checked out for editing, a booking held during checkout, a job that reserves its record while it runs, a temporarily frozen account. The 423 is working as designed; you clear it by finishing or cancelling the operation that took the lock, or by waiting for its timeout.
Diagnose with DechoNet
- HTTP Check confirms the endpoint really returns
423and captures the response headers and body — which, for a well-behaved WebDAV or API server, is where the lock owner, the precondition element, or aRetry-Afterhint lives. That body is the difference between “wait it out” and “submit a token.” - It also confirms the 423 comes from the origin rather than a proxy or gateway that rewrote something else into it, so you’re chasing the layer that actually holds the lock. If the failing endpoint is a hostname that won’t resolve at all, DNS Check rules out a plain reachability problem masquerading as an application error.
Resolution Checklist
- Read the response body, not just the status. WebDAV names the problem:
lock-token-submittedmeans you need to present a token;no-conflicting-lockmeans an existing lock is in your way. An API often names the owner or the operation holding the resource. - If it’s your lock, submit the token. Put the active lock token in the
Ifheader on the write, or re-LOCKif the token expired. If your client acquired a lock and never released it,UNLOCKit. - If a desktop app holds it, close the app fully on every machine that had the file open, then wait out the grace period. In SharePoint/OneDrive, check the file’s “locked by” detail — a synced client on a machine nobody’s watching is the classic culprit.
- If the lock is stale — the holder is gone but the lock survives — don’t retry blindly. Wait for the timeout, or have an admin/owner force-release it (SharePoint’s “check in” / discard checkout, an
UNLOCKwith the token, or the API’s admin unlock). - Confirm you’re not confusing 423 with its neighbors: no lock but a state clash is
409, a failedIf-Matchis412, a required-but-missing precondition is428, and a cascade from another failure is424. The fix for each is different.
When to Escalate
- If the resource stays locked with no identifiable owner and no timeout in sight, it’s a stale lock the system won’t reap on its own. That’s an operator action — force-release or lock cleanup — not something a caller can fix by retrying.
- If 423s appear under concurrency (many writers hitting the same resource at once), the lock is doing its job but your workflow is serializing on a hot resource. That’s a design problem — shorten lock hold times, narrow lock scope, or queue writers — not a bug in any single request.
- If you own the API returning 423, make sure the response body says who holds the lock and when it expires. A bare 423 with no owner and no
Retry-Afterturns a self-service wait into a support ticket.
Related Tools
Related Guides
Share this guide