ORA-00054 🗃️ SQL

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

  1. Find and finish the blocking session
  2. Use DDL_LOCK_TIMEOUT to wait
  3. Schedule DDL off-peak

Detailed fix by platform

SQL

  1. ALTER SESSION SET DDL_LOCK_TIMEOUT = 60;

How to diagnose

  1. Blocker — v$locked_object / v$session
  2. 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.