From 3232ce8265a72a8cca6058fbcf1e670d41dd158f Mon Sep 17 00:00:00 2001
From: Arpit Jalan <arpit@techapj.com>
Date: Fri, 24 Jun 2016 14:06:27 +0530
Subject: [PATCH] FIX: better error message when trying to approve post for
 closed/deleted topic

---
 app/controllers/queued_posts_controller.rb | 16 ++++++++++------
 app/models/queued_post.rb                  |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/app/controllers/queued_posts_controller.rb b/app/controllers/queued_posts_controller.rb
index d13de9708..6b225b5e6 100644
--- a/app/controllers/queued_posts_controller.rb
+++ b/app/controllers/queued_posts_controller.rb
@@ -25,13 +25,17 @@ class QueuedPostsController < ApplicationController
     end
 
     state = params[:queued_post][:state]
-    if state == 'approved'
-      qp.approve!(current_user)
-    elsif state == 'rejected'
-      qp.reject!(current_user)
-      if params[:queued_post][:delete_user] == 'true' && guardian.can_delete_user?(qp.user)
-        UserDestroyer.new(current_user).destroy(qp.user, user_deletion_opts)
+    begin
+      if state == 'approved'
+        qp.approve!(current_user)
+      elsif state == 'rejected'
+        qp.reject!(current_user)
+        if params[:queued_post][:delete_user] == 'true' && guardian.can_delete_user?(qp.user)
+          UserDestroyer.new(current_user).destroy(qp.user, user_deletion_opts)
+        end
       end
+    rescue StandardError => e
+      return render_json_error e.message
     end
 
     render_serialized(qp, QueuedPostSerializer, root: :queued_posts)
diff --git a/app/models/queued_post.rb b/app/models/queued_post.rb
index 9dd479a73..351187a2e 100644
--- a/app/models/queued_post.rb
+++ b/app/models/queued_post.rb
@@ -70,7 +70,7 @@ class QueuedPost < ActiveRecord::Base
       created_post = creator.create
 
       unless created_post && creator.errors.blank?
-        raise StandardError, "Failed to create post #{raw[0..100]} #{creator.errors.full_messages.inspect}"
+        raise StandardError.new(creator.errors.full_messages.join(" "))
       end
 
     end