diff --git a/app/controllers/draft_controller.rb b/app/controllers/draft_controller.rb
index 34b55c7ad82..cd5a7ef09e0 100644
--- a/app/controllers/draft_controller.rb
+++ b/app/controllers/draft_controller.rb
@@ -12,7 +12,9 @@ class DraftController < ApplicationController
     Draft.set(current_user, params[:draft_key], params[:sequence].to_i, params[:data])
 
     if data = JSON::parse(params[:data])
-      if data["postId"].present? && data["originalText"].present?
+      # this is a bit of a kludge we need to remove (all the parsing) too many special cases here
+      # we need to catch action edit and action editSharedDraft
+      if data["postId"].present? && data["originalText"].present? && data["action"].to_s.start_with?("edit")
         post = Post.find_by(id: data["postId"])
         if post && post.raw != data["originalText"]
           conflict_user = BasicUserSerializer.new(post.last_editor, root: false)
diff --git a/spec/requests/draft_controller_spec.rb b/spec/requests/draft_controller_spec.rb
index b00e7be0383..633f57cbda7 100644
--- a/spec/requests/draft_controller_spec.rb
+++ b/spec/requests/draft_controller_spec.rb
@@ -29,7 +29,8 @@ describe DraftController do
       sequence: 0,
       data: {
         postId: post.id,
-        originalText: post.raw
+        originalText: post.raw,
+        action: "edit"
       }.to_json
     }
 
@@ -41,7 +42,8 @@ describe DraftController do
       sequence: 0,
       data: {
         postId: post.id,
-        originalText: "something else"
+        originalText: "something else",
+        action: "edit"
       }.to_json
     }