diff --git a/internal/builds/register.go b/internal/builds/register.go
index 7fda74bdedcf37bbd57a73ce19014aa84a0fb9ab..09249fb69793072a93817427878b5fc364a04ab4 100644
--- a/internal/builds/register.go
+++ b/internal/builds/register.go
@@ -95,7 +95,7 @@ func RegisterHandler(h http.Handler, watchHandler WatchKeyHandler, pollingDurati
 		requestBody, err := readRunnerBody(w, r)
 		if err != nil {
 			registerHandlerHits.WithLabelValues("body-read-error").Inc()
-			helper.Fail500(w, r, &largeBodyError{err})
+			helper.RequestEntityTooLarge(w, r, &largeBodyError{err})
 			return
 		}
 
@@ -118,7 +118,7 @@ func RegisterHandler(h http.Handler, watchHandler WatchKeyHandler, pollingDurati
 			runnerRequest.LastUpdate, pollingDuration)
 		if err != nil {
 			registerHandlerHits.WithLabelValues("watch-error").Inc()
-			helper.Fail500(w, newRequest, &watchError{err})
+			proxyRegisterRequest(h, w, newRequest)
 			return
 		}
 
diff --git a/internal/helper/helpers.go b/internal/helper/helpers.go
index d3f2200acbb915df8f4897be1884e4807e017985..d039d49bda6f8c785123e9f9ccddea97266a2e65 100644
--- a/internal/helper/helpers.go
+++ b/internal/helper/helpers.go
@@ -41,6 +41,12 @@ func TooManyRequests(w http.ResponseWriter, r *http.Request, err error) {
 	printError(r, err)
 }
 
+func RequestEntityTooLarge(w http.ResponseWriter, r *http.Request, err error) {
+	http.Error(w, "Request Entity Too Large", http.StatusRequestEntityTooLarge)
+	captureRavenError(r, err)
+	printError(r, err)
+}
+
 func printError(r *http.Request, err error) {
 	if r != nil {
 		log.Printf("error: %s %q: %v", r.Method, r.RequestURI, err)