ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
DDL or a NOWAIT lock couldn’t get the lock because another session holds it.
Seen on:
SQL
Meaning
ALTER/DROP on a table with active transactions, or SELECT … FOR UPDATE NOWAIT on locked rows.
Common causes
- Uncommitted transactions on the table
- DDL during busy hours
- NOWAIT locks on rows in use
⚡ Quick fix
- Find and finish the blocking session
- Use DDL_LOCK_TIMEOUT to wait
- Schedule DDL off-peak
Detailed fix by platform
SQL
ALTER SESSION SET DDL_LOCK_TIMEOUT = 60;
How to diagnose
- Blocker — v$locked_object / v$session
- Recent change — Did it start after a deploy, upgrade, or configuration change? Compare with the last working version.
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026