1213 🐬 MySQL

MySQL ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

MySQL detected a deadlock between two transactions and rolled one back.

Seen on: MySQL

Meaning

The SQL-level page explains deadlocks generally; for MySQL, SHOW ENGINE INNODB STATUS shows the latest deadlock with both statements.

Common causes

  • Rows locked in different orders
  • Missing indexes causing gap locks
  • Long transactions

⚡ Quick fix

  1. Retry the transaction
  2. Access rows in a consistent order
  3. Add indexes

Detailed fix by platform

MySQL

  1. SHOW ENGINE INNODB STATUS\G

How to diagnose

  1. Statements — Which two?
  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.