WebDAV-syncing doesn't work in Mountain Lion
Hi,
I'm using Zotero standalone on three different Systems:
1. Mac OS X 10.6
2. Ubuntu Linux 12.10
3. Mac OS X 10.8
The first two are working just fine, but whatever I do I cannot get the file sync with my own WebDAV-Server (running on Ubuntu 12.04, apache with mod_dav) to work under Mac OS X 10.8. I use the exact same settings as on the other two systems, but I always get the error "The server ***.dyndns.org could not be reached.". The entries sync with the Zotero Server, but I get the red exclamation mark because of WebDAV failure. I can access the WebDAV server through the browser just fine. The firewall ist turned off, and even turning it on and explicitly allowing all connections for Zotero doesn't help.
Here's the Debug output:
[JavaScript Error: "[Exception... "'WebDAV verification failed. Verify your file sync settings in the Sync pane of the Zotero preferences.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]"]
[JavaScript Error: "[Exception... "'WebDAV verification failed. Verify your file sync settings in the Sync pane of the Zotero preferences.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]"]
[JavaScript Error: "The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature." {file: "zotero://debug/" line: 0}]
version => 3.0.11.1, platform => MacIntel, oscpu => Intel Mac OS X 10.8, locale => en-US, appName => Zotero, appVersion => 3.0.11.1
=========================================================
(3)(+0000000): Verifying storage
(3)(+0000001): Getting WebDAV password
(3)(+0000001): HTTP OPTIONS for http://tom:********@***.dyndns.org/webdav/zotero/
I'm using Zotero standalone on three different Systems:
1. Mac OS X 10.6
2. Ubuntu Linux 12.10
3. Mac OS X 10.8
The first two are working just fine, but whatever I do I cannot get the file sync with my own WebDAV-Server (running on Ubuntu 12.04, apache with mod_dav) to work under Mac OS X 10.8. I use the exact same settings as on the other two systems, but I always get the error "The server ***.dyndns.org could not be reached.". The entries sync with the Zotero Server, but I get the red exclamation mark because of WebDAV failure. I can access the WebDAV server through the browser just fine. The firewall ist turned off, and even turning it on and explicitly allowing all connections for Zotero doesn't help.
Here's the Debug output:
[JavaScript Error: "[Exception... "'WebDAV verification failed. Verify your file sync settings in the Sync pane of the Zotero preferences.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]"]
[JavaScript Error: "[Exception... "'WebDAV verification failed. Verify your file sync settings in the Sync pane of the Zotero preferences.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]"]
[JavaScript Error: "The character encoding of the plain text document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the file needs to be declared in the transfer protocol or file needs to use a byte order mark as an encoding signature." {file: "zotero://debug/" line: 0}]
version => 3.0.11.1, platform => MacIntel, oscpu => Intel Mac OS X 10.8, locale => en-US, appName => Zotero, appVersion => 3.0.11.1
=========================================================
(3)(+0000000): Verifying storage
(3)(+0000001): Getting WebDAV password
(3)(+0000001): HTTP OPTIONS for http://tom:********@***.dyndns.org/webdav/zotero/
This is an old discussion that has not been active in a long time. Before commenting here, you should strongly consider starting a new discussion instead. If you think the content of this discussion is still relevant, you can link to it from your new discussion.
Did you mean to connect via HTTPS?
Here's the debug ID from the Mac with 10.6
D2028671790
If you can access your server from the browser, you can try with Zotero for Firefox instead. If you installed Zotero Standalone first, that will offer to share the same data directory by default. You just need to make sure Zotero Standalone is closed.
It's getting even more weird: I installed Ubuntu 12.10 inside VirtualBox on that machine and even there Zotero can't reach the server while I can reach it through the browser. Trying to connect using Nautilus I get "HTTP Error: Message Corrupt". I can't even find this error message through google.
So I guess it's not a problem with Zotero, but what is it?
If you're comfortable on the command line then you can try an OPTIONS request (which is the first request Zotero makes) with cURL, but that's pretty much all I can tell you.
$ curl --user *** ***/webdav/zotero/
Enter host password for user 'tom':
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /webdav/zotero</title>
</head>
<body>
<h1>Index of /webdav/zotero</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/webdav/">Parent Directory</a></td><td> </td><td align="right"> - </td><td> </td></tr>
[...]
<tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.2.22 (Ubuntu) Server at *** Port 80</address>
</body></html>
I'm able to connect to the WebDAV Server using Transmit (a WebDAV Client for Mac OS X). This leaves me completely puzzled. Any ideas?
So here it goes:
***$ curl -X OPTIONS --user *** ***/webdav/
Enter host password for user '***':
curl: (52) Empty reply from server
***$
If I do this on my other computer (on which WebDAV sync works) I get nothing:
***$ curl -X OPTIONS --user *** ***/webdav/
Enter host password for user '***':
***$
curl -X OPTIONS google.com
gives curl: (52) Empty reply from server
On the other machine I get HTML-Code telling me "error 405 (Method not allowed)"
Might curl be fucked up in OSX 10.8? And is Zotero using the curl command/lib that comes with Mac OS X?
$ curl -X OPTIONS google.com
Returns a 405 error page
You might want to try the MacPorts version of curl.
By the way
$ curl -X SOMETHING google.com
returns 405 error page, while OPTIONS doesn't.
What would you have to do on a client to prevent OPTIONS requests to go out?
I just cloned the git repository and modified the file
modules/zotero/chrome/content/zotero/xpcom/storage/webdav.js
so that Zotero doesn't care about the result of the OPTIONS request and with this build WebDAV-Sync is working, but this is not a real solution. At least I can sync for now.
As for why this is happening, a proxy or security software would be the most likely culprits. If neither of those apply in your case, I don't know.