View Single Post
Sorry for the delay in figuring this out!

The quick summary: BingoDisk works fine over the unencrypted http protocol, but has a bug in the way it handles WebDAV requests over the encrypted https protocol.

The details:

This problem is in BingoDisk's handling of the WebDAV MOVE command. OmniFocus uploads all its data into a temporary location (the one with "copy-in-progress" in the name), and when it's done it moves it into its final location using the WebDAV MOVE command. The MOVE command operates on two URLs, the source and the destination, so if we want to move https://demo.bingodisk.com/bingo/Omn...ss-huGoIbSftao to https://demo.bingodisk.com/bingo/OmniFocus.ofocus we're supposed to connect to https://demo.bingodisk.com/ and send this WebDAV command:

Code:
   MOVE /bingo/OmniFocus.ofocus-copy-in-progress-huGoIbSftao HTTP/1.1
   Host: demo.bingodisk.com
   Destination: https://demo.bingodisk.com/bingo/OmniFocus.ofocus
Unfortunately, as we've seen, this returns a Bad Gateway error: the BingoDisk server thinks that the destination is on a different server (because it doesn't realize that it's serving "https" and not just "http"), so it returns "Bad Gateway" to indicate that it can't do the move. If we modify our code to send an "http" destination instead (even though we're really connecting to https), it succeeds—but that could break other servers which do correctly understand that we're connecting to an https URL (and could legitimately refuse our request if we tried to change the destination to http instead).

I'll give this some thought: perhaps if the legitimate request fails, we can just rewrite our request to try the other destination and see whether that works. It would make things a bit slower, but at least it wouldn't fail altogether!