Hey, HTTP_METHOD_PATCH is not handled by relayd at all. Well, actually in fals under default in switch(). PATCH is like PUT, eg. data is expected.
One-liner below fixes this. Tested in production.
--- relay_http.c Mon Dec 14 16:16:07 2015
+++ relay_http.c.my Mon Dec 14 21:18:50 2015
@@ -371,6 +371,7 @@
break;
case HTTP_METHOD_POST:
case HTTP_METHOD_PUT:
+ case HTTP_METHOD_PATCH:
case HTTP_METHOD_RESPONSE:
/* HTTP request payload */
if (cre->toread > 0)
