From 61b64fae2550d78ece946258e285ad4d24d57bff Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Sun, 23 Aug 2026 00:31:04 +0200 Subject: [PATCH] Log the failing SQL statement in vectorization task Unique violations on packages_name_key happen on a statement that cannot logically touch name - log the exact query and a longer backtrace to identify what really fails. --- lib/tasks/vectorize_packages.rake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/tasks/vectorize_packages.rake b/lib/tasks/vectorize_packages.rake index 66bf7a2..aee5d45 100644 --- a/lib/tasks/vectorize_packages.rake +++ b/lib/tasks/vectorize_packages.rake @@ -30,6 +30,13 @@ namespace :debshots do done = 0 failed = 0 + # Remember the most recent SQL statement so failures can be traced + # to the exact query that triggered them. + last_sql = nil + ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| + last_sql = args.last[:sql] + end + scope.find_each do |package| begin raise ArgumentError, 'no description text' if package.embedding_text.blank? @@ -41,7 +48,8 @@ namespace :debshots do # enough detail to diagnose it and move on. failed += 1 logger.error "Failed for package #{package.name}: #{e.class}: #{e.message}" - logger.error e.backtrace.first(3).join("\n") if e.backtrace + logger.error "Last SQL: #{last_sql}" + logger.error e.backtrace.first(15).join("\n") if e.backtrace end processed = done + failed