Hi, I've found that catching errors at this spot in org-protocol-check-filename-for-protocol (currently line 618 in the file):
file:~/src/org-mode/lisp/org-protocol.el::(error Is causing a couple of problems. 1. Any error in the sub-protocol handler causes the handler to be called a second time with an old-style link string. I guess this is okay if the reason for the error is the handler's not handling new-style links, but if not, calling it a second time with the other string doesn't work. 2. Catching all errors here obscures any error in the sub-protocol handler. This makes it very difficult to debug the handler. For example, in my handler I was calling call-process-region with a final argument which should have been a string, but because of a bug in my code the argument was nil, and this caused call-process-region to give an error. But the error was caught and replaced with the warning, and then the handler was called a second time, which, of course, failed again. Even using edebug on the handler didn't help, because the error was still obscured. I had to take apart the handler and run each expression manually to get to the real error. (I tried temporarily removing the condition-case from org-protocol-check-filename-for-protocol, but for some reason that didn't help--I probably did something wrong.) Could this code be adjusted to help avoid this problem in the future? Thanks.