diff --git a/src/Persistence_SQL.php b/src/Persistence_SQL.php
index <HASH>..<HASH> 100644
--- a/src/Persistence_SQL.php
+++ b/src/Persistence_SQL.php
@@ -424,9 +424,20 @@ class Persistence_SQL extends Persistence
             $insert->set($f->actual ?: $f->short_name, $value);
         }
 
-        $m->hook('beforeInsertQuery', [$insert]);
 
-        $insert->execute();
+        try {
+
+            $m->hook('beforeInsertQuery', [$insert]);
+            $insert->execute();
+
+        } catch (\Exception $e) {
+            throw new Exception([
+                'Unable to execute insert query',
+                'query'      => $insert->getDebugQuery(false),
+                'model'      => $m,
+                'conditions' => $m->conditions,
+            ], null, $e);
+        }
 
         return $insert->connection->lastInsertID();
     }
capture insert-related errors and report them.