Skip to content

Commit

Permalink
Fix zero length media handling (#17570)
Browse files Browse the repository at this point in the history
Results in:

```
AssertionError: null
  File "synapse/http/server.py", line 332, in _async_render_wrapper
    callback_return = await self._async_render(request)
  File "synapse/http/server.py", line 544, in _async_render
    callback_return = await raw_callback_return
  File "synapse/federation/transport/server/_base.py", line 369, in new_func
    response = await func(
  File "synapse/federation/transport/server/federation.py", line 826, in on_GET
    await self.media_repo.get_local_media(
  File "synapse/media/media_repository.py", line 473, in get_local_media
    await respond_with_multipart_responder(
  File "synapse/media/_base.py", line 353, in respond_with_multipart_responder
    assert content_length is not None
```
  • Loading branch information
erikjohnston authored Aug 19, 2024
1 parent a5d25bb commit 993644d
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/17570.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix bug where we would respond with an error when a remote server asked for media that had a length of 0, using the new multipart federation media endpoint.
2 changes: 1 addition & 1 deletion synapse/media/media_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ def content_length(self) -> Optional[int]:
Calculate the content length of the multipart response
in bytes.
"""
if not self.length:
if self.length is None:
return None
# calculate length of json field and content-type, disposition headers
json_field = json.dumps(self.json_field)
Expand Down

0 comments on commit 993644d

Please sign in to comment.