diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# consumers-2.3.3.1 (2025-04-03)
+* Do not prepare query that updates jobs in the monitor thread.
+
 # consumers-2.3.3.0 (2025-03-03)
 * Add `ccJobLogData` to `ConsumerConfig` to improve logging.
 
diff --git a/consumers.cabal b/consumers.cabal
--- a/consumers.cabal
+++ b/consumers.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               consumers
-version:            2.3.3.0
+version:            2.3.3.1
 synopsis:           Concurrent PostgreSQL data consumers
 
 description:        Library for setting up concurrent consumers of data
@@ -78,7 +78,7 @@
   build-depends:      base,
                       consumers,
                       hpqtypes,
-                      hpqtypes-extras,
+                      hpqtypes-extras >= 1.17.0.1,
                       log-base,
                       text
 
diff --git a/example/Example.hs b/example/Example.hs
--- a/example/Example.hs
+++ b/example/Example.hs
@@ -69,7 +69,7 @@
       prog <- getProgName
       putStrLn $ "Usage: " <> prog <> " <connection info string>"
 
-    tables = [consumersTable, jobsTable]
+    definitions = emptyDbDefinitions {dbTables = [consumersTable, jobsTable]}
     -- NB: order of migrations is important.
     migrations =
       [ createTableMigration consumersTable
@@ -80,25 +80,17 @@
     createTables = do
       migrateDatabase
         defaultExtrasOptions
-        [] -- extensions
-        [] -- composites
-        [] -- domains
-        tables
+        definitions
         migrations
       checkDatabase
         defaultExtrasOptions
-        [] -- composites
-        [] -- domains
-        tables
+        definitions
 
     dropTables :: AppM ()
     dropTables = do
       migrateDatabase
         defaultExtrasOptions
-        [] -- extensions
-        [] -- composites
-        [] -- domains
-        [] -- tables
+        emptyDbDefinitions
         [ dropTableMigration jobsTable
         , dropTableMigration consumersTable
         ]
diff --git a/src/Database/PostgreSQL/Consumers/Components.hs b/src/Database/PostgreSQL/Consumers/Components.hs
--- a/src/Database/PostgreSQL/Consumers/Components.hs
+++ b/src/Database/PostgreSQL/Consumers/Components.hs
@@ -277,7 +277,7 @@
           results <- forM stuckJobs $ \job -> do
             action <- lift $ ccOnException (toException ThreadKilled) job
             pure (ccJobIndex job, Failed action)
-          runPreparedSQL_ (preparedSqlName "updateJobs" ccJobsTable) $ updateJobsQuery ccJobsTable results now
+          runSQL_ $ updateJobsQuery ccJobsTable results now
         runPreparedSQL_ (preparedSqlName "removeInactive" ccConsumersTable) $
           smconcat
             [ "DELETE FROM" <+> raw ccConsumersTable
@@ -424,6 +424,9 @@
 ----------------------------------------
 
 -- | Generate a single SQL query for updating all given jobs.
+--
+-- /Note:/ this query can't be run as prepared because it has a variable number
+-- of query parameters (see retryToSQL helper).
 updateJobsQuery
   :: (Show idx, ToSQL idx)
   => RawSQL ()
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -114,7 +114,7 @@
       prog <- getProgName
       putStrLn $ "Usage: " <> prog <> " <connection info string>"
 
-    tables = [consumersTable, jobsTable]
+    definitions = emptyDbDefinitions {dbTables = [consumersTable, jobsTable]}
     -- NB: order of migrations is important.
     migrations =
       [ createTableMigration consumersTable
@@ -125,25 +125,17 @@
     createTables = do
       migrateDatabase
         defaultExtrasOptions
-        [] -- extensions
-        [] -- composites
-        [] -- domains
-        tables
+        definitions
         migrations
       checkDatabase
         defaultExtrasOptions
-        [] -- composites
-        [] -- domains
-        tables
+        definitions
 
     dropTables :: TestEnv ()
     dropTables = do
       migrateDatabase
         defaultExtrasOptions
-        [] -- extensions
-        [] -- composites
-        [] -- domains
-        [] -- tables
+        emptyDbDefinitions
         [ dropTableMigration jobsTable
         , dropTableMigration consumersTable
         ]
