This patch fixes the error:

From 9de1cad8697781ac9a3729087cd38f1da7374ad4 Mon Sep 17 00:00:00 2001
From: Kaushal Modi <kaushal.modi@gmail.com>
Date: Wed, 5 Apr 2017 17:16:33 -0400
Subject: [PATCH] Check that file argument is a string

* lisp/vc/ediff-diff.el (ediff-exec-process): Check that the argument
  passed to `file-local-copy' is a string.  (Bug#26378)
---
 lisp/vc/ediff-diff.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el
index cfa08ef360..79db0dc042 100644
--- a/lisp/vc/ediff-diff.el
+++ b/lisp/vc/ediff-diff.el
@@ -1151,8 +1151,9 @@ ediff-exec-process
  args)
     (setq args (append (split-string options)
                        (mapcar (lambda (file)
-                                 (file-name-unquote
-                                  (or (file-local-copy file) file)))
+                                 (when (stringp file)
+                                   (file-name-unquote
+                                    (or (file-local-copy file) file))))
                                files)))
     (setq args (delete "" (delq nil args))) ; delete nil and "" from arguments
     ;; the --binary option, if present, should be used only for buffer jobs
-- 
2.11.0

Can you please review and commit this if alright?

Thanks.
--

Kaushal Modi