diff --git a/services/web/pkg/announcement/announcement_test.go b/services/web/pkg/announcement/announcement_test.go index cff3ce46bc..986bc9d40b 100644 --- a/services/web/pkg/announcement/announcement_test.go +++ b/services/web/pkg/announcement/announcement_test.go @@ -170,7 +170,7 @@ var _ = Describe("Service", func() { s := newStore() newService(s, true).Set(resp, req) - Expect(resp.Code).To(Equal(http.StatusBadRequest)) + Expect(resp.Code).To(Equal(http.StatusRequestEntityTooLarge)) got, _ := s.Get() Expect(got.BannerText).To(BeEmpty()) }) diff --git a/services/web/pkg/announcement/service.go b/services/web/pkg/announcement/service.go index 39ef7c9443..2cd541b096 100644 --- a/services/web/pkg/announcement/service.go +++ b/services/web/pkg/announcement/service.go @@ -143,6 +143,11 @@ func (s Service) Set(w http.ResponseWriter, r *http.Request) { var body Announcement if err := json.NewDecoder(http.MaxBytesReader(w, r.Body, _maxBodySize)).Decode(&body); err != nil { + var maxBytesErr *http.MaxBytesError + if errors.As(err, &maxBytesErr) { + w.WriteHeader(http.StatusRequestEntityTooLarge) + return + } w.WriteHeader(http.StatusBadRequest) return }