2 files changed, 5 insertions, 1 deletions
diff --git a/changelog.d/11827.bugfix b/changelog.d/11827.bugfix
new file mode 100644
index 0000000000..30222dfb62
--- /dev/null
+++ b/changelog.d/11827.bugfix
@@ -0,0 +1 @@
+Fix a bug introduced in Synapse 0.33.3 causing requests to sometimes log strings such as `HTTPStatus.OK` instead of integer status codes.
\ No newline at end of file
diff --git a/synapse/http/site.py b/synapse/http/site.py
index c180a1d323..40f6c04894 100644
--- a/synapse/http/site.py
+++ b/synapse/http/site.py
@@ -407,7 +407,10 @@ class SynapseRequest(Request):
user_agent = get_request_user_agent(self, "-")
- code = str(self.code)
+ # int(self.code) looks redundant, because self.code is already an int.
+ # But self.code might be an HTTPStatus (which inherits from int)---which has
+ # a different string representation. So ensure we really have an integer.
+ code = str(int(self.code))
if not self.finished:
# we didn't send the full response before we gave up (presumably because
# the connection dropped)
|