diff --git a/java/res/values/research_strings.xml b/java/res/values/research_strings.xml
index 2d9dad1..f67943e 100644
--- a/java/res/values/research_strings.xml
+++ b/java/res/values/research_strings.xml
@@ -23,4 +23,7 @@
     <string name="research_splash_content" translatable="false"></string>
     <string name="research_account_type" translatable="false"></string>
     <string name="research_allowed_account_domain" translatable="false"></string>
+    <!-- Message informing the user that the feedback string must not be empty [CHAR LIMIT=100] -->
+    <!-- TODO: remove translatable=false attribute once text is stable -->
+    <string name="research_feedback_empty_feedback_error_message" translatable="false">The feedback field must not be empty.</string>
 </resources>
diff --git a/java/src/com/android/inputmethod/research/FeedbackFragment.java b/java/src/com/android/inputmethod/research/FeedbackFragment.java
index 11a833a..69ddf82 100644
--- a/java/src/com/android/inputmethod/research/FeedbackFragment.java
+++ b/java/src/com/android/inputmethod/research/FeedbackFragment.java
@@ -20,6 +20,7 @@
 import android.app.Fragment;
 import android.os.Bundle;
 import android.text.Editable;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -28,6 +29,7 @@
 import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.EditText;
+import android.widget.Toast;
 
 import com.android.inputmethod.latin.R;
 
@@ -96,12 +98,18 @@
         } else if (view == mSendButton) {
             final Editable editable = mEditText.getText();
             final String feedbackContents = editable.toString();
-            final boolean isIncludingAccountName = isIncludingAccountName();
-            researchLogger.sendFeedback(feedbackContents,
-                    false /* isIncludingHistory */, isIncludingAccountName, hasUserRecording());
-            getActivity().finish();
-            researchLogger.setFeedbackDialogBundle(null);
-            researchLogger.onLeavingSendFeedbackDialog();
+            if (TextUtils.isEmpty(feedbackContents)) {
+                Toast.makeText(getActivity(),
+                        R.string.research_feedback_empty_feedback_error_message,
+                        Toast.LENGTH_LONG).show();
+            } else {
+                final boolean isIncludingAccountName = isIncludingAccountName();
+                researchLogger.sendFeedback(feedbackContents,
+                        false /* isIncludingHistory */, isIncludingAccountName, hasUserRecording());
+                getActivity().finish();
+                researchLogger.setFeedbackDialogBundle(null);
+                researchLogger.onLeavingSendFeedbackDialog();
+            }
         } else if (view == mCancelButton) {
             Log.d(TAG, "Finishing");
             getActivity().finish();
