MetricSign
EN|NLRequest Access
High severityexecution

Power BI Refresh Error:
000625 (57014)

What does this error mean?

Snowflake aborted and rolled back a statement because it was waiting on a table-level lock held by another transaction and the queue of waiting statements exceeded the limit.

Common causes

  • 1Multiple concurrent DML operations (INSERT, UPDATE, MERGE) are targeting the same table simultaneously
  • 2A long-running transaction is holding a lock while other statements queue up beyond the 20-waiter limit
  • 3An explicit transaction was opened with BEGIN and not committed or rolled back, leaving locks open
  • 4Stored procedures with scoped transactions were not properly finalised

How to fix it

  1. 1Step 1: Identify blocking transactions: SELECT * FROM TABLE(INFORMATION_SCHEMA.TRANSACTION_HISTORY()) WHERE state = 'OPEN' ORDER BY start_time.
  2. 2Step 2: Terminate the blocking transaction if safe to do so: SELECT SYSTEM$ABORT_TRANSACTION(transaction_id).
  3. 3Step 3: Refactor concurrent DML to use Snowflake's MERGE statement for upserts instead of separate INSERT + UPDATE.
  4. 4Step 4: Ensure all stored procedures commit or roll back their transactions explicitly before returning.
  5. 5Step 5: Stagger job schedules to reduce simultaneous write contention on hot tables.

Frequently asked questions

Is Snowflake ACID-compliant, and does that protect against data corruption here?

Yes — Snowflake transactions are fully ACID-compliant. A rolled-back transaction leaves no partial writes; however, the pipeline that triggered the transaction must handle the error and retry to ensure the data eventually lands.

Can I use AUTOCOMMIT to avoid this issue?

AUTOCOMMIT is on by default in Snowflake. Problems arise when code explicitly opens a transaction with BEGIN and forgets to close it. Always pair BEGIN with a COMMIT or ROLLBACK in exception handlers.

Other execution errors