patch 7.4.1831
Problem:    When timer_stop() is called with a string there is no proper error
            message.
Solution:   Require getting a number. (Bjorn Linse)
diff --git a/src/eval.c b/src/eval.c
index 83bac72..005485d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -20733,8 +20733,14 @@
     static void
 f_timer_stop(typval_T *argvars, typval_T *rettv UNUSED)
 {
-    timer_T *timer = find_timer(get_tv_number(&argvars[0]));
+    timer_T *timer;
 
+    if (argvars[0].v_type != VAR_NUMBER)
+    {
+         EMSG(_(e_number_exp));
+         return;
+    }
+    timer = find_timer(get_tv_number(&argvars[0]));
     if (timer != NULL)
 	stop_timer(timer);
 }