From 54472e41502cb98fb5535b42c24d4b1ba18f97c2 Mon Sep 17 00:00:00 2001
From: Joffrey JAFFEUX <j.jaffeux@gmail.com>
Date: Wed, 28 Apr 2021 20:05:45 +0200
Subject: [PATCH] DEV: raises a GrantError instead of a log and a variable
 exception (#12875)

The message in logs will now look like:

```
BadgeGranter::GrantError: Failed to backfill 'Some Badge' badge: {:post_ids=>[]}. Reason: ERROR:  column "email" does not exist
LINE 6: ...t id as user_id, current_timestamp as granted_at, email from...
```
---
 app/services/badge_granter.rb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/services/badge_granter.rb b/app/services/badge_granter.rb
index 1d52ea6ec78..96dec02e98c 100644
--- a/app/services/badge_granter.rb
+++ b/app/services/badge_granter.rb
@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 
 class BadgeGranter
+  class GrantError < StandardError; end
 
   def self.disable_queue
     @queue_disabled = true
@@ -390,8 +391,7 @@ class BadgeGranter
 
     badge.reset_grant_count!
   rescue => e
-    Rails.logger.error("Failed to backfill '#{badge.name}' badge: #{opts}")
-    raise e
+    raise GrantError, "Failed to backfill '#{badge.name}' badge: #{opts}. Reason: #{e.message}"
   end
 
   def self.revoke_ungranted_titles!