Skip to content

Media api failure over unix socket: AttributeError: 'UNIXAddress' object has no attribute 'host' #18940

@zimward

Description

@zimward

Description

When switching a working configuration to use unix sockets as listeners the media api breaks (no images/profile pictures etc load).

Steps to reproduce

  • take known good configuration
  • replace port and bind_addresses with path to unix socket
  • route through nginx reverse proxy (proxyPass: "http://unix:/path/to/unix.socket"
  • observe messages generally working but media being broken

Homeserver

zimward.moe

Synapse Version

1.138.0

Installation Method

Other (please mention below)

Database

PostgreSQL, non ported, non restored, single server

Workers

Single process

Platform

  • system: "aarch64-linux"
  • host os: Linux 6.12.47, NixOS, 25.11 (Xantusia), 25.11.20250918.971d10c
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 2.28.5
  • channels(root): "nixos"
  • nixpkgs: /nix/store/sanhljbdmv6kcyhzab7gj14zqzr7xwlf-source

Configuration

app_service_config_files: []
database:
  args:
    database: matrix-synapse
    user: matrix-synapse
  name: psycopg2
dynamic_thumbnails: false
enable_metrics: false
enable_registration: false
extraConfig: 'max_upload_size: "100M"
 '
instance_map: {}
listeners:
- mode: 432
  path: /run/matrix-synapse/matrix-synapse.sock
  resources:
  - compress: false
    names:
    - client
    - federation
  type: http
  x_forwarded: true
- bind_addresses:
  - ::1
  port: 8008
  resources:
  - compress: false
    names:
    - client
  tls: false
  type: http
  x_forwarded: false
log_config: /nix/store/7b8a7m13n8prjsxwzp9r66msm9bnwb1k-log_config
max_image_pixels: 32M
max_upload_size: 50M
media_retention:
  remote_media_lifetime: 30d
media_store_path: /nix/persist/system/matrix-synapse//media_store
pid_file: /run/matrix-synapse.pid
presence:
  enabled: true
public_baseurl: https://zimward.moe
redis:
  enabled: false
registration_shared_secret: REDACTED
report_stats: false
server_name: zimward.moe
signing_key_path: /nix/persist/system/matrix-synapse//homeserver.signing.key
trusted_key_servers:
- server_name: matrix.org
  verify_keys:
    ed25519:auto: Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw
turn_allow_guests: true
turn_shared_secret: REDACTED
turn_uris:
- turn:matrix.zimward.moe:3478?transport=udp
- turn:matrix.zimward.moe:3478?transport=tcp
turn_user_lifetime: 1h
url_preview_enabled: true
url_preview_ip_range_blacklist:
- 10.0.0.0/8
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.168.0.0/16
- 192.88.99.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 2001:db8::/32
- 203.0.113.0/24
- 224.0.0.0/4
- ::1/128
- fc00::/7
- fe80::/10
- fec0::/10
- ff00::/8
url_preview_ip_range_whitelist: []
url_preview_url_blacklist: []

switching back to use TCP/IP as listener fixes the broken media api

Relevant log output

synapse.http.server: [GET-6988] Failed handle request via 'ThumbnailResource': <XForwardedForRequest at 0xffff76e390a0 method='GET' uri='/_matrix/client/v1/media/thumbnail/matrix.org/MhDaVRNQnsIMuvgEQgrSIjjU?width=48&height=48&method=crop&allow_redirect=true' clientproto='HTTP/1.0' site='unix'>
                                     Traceback (most recent call last):
                                       File "/nix/store/gnzhv1i13mca9bx710x3lq090f2bmkja-matrix-synapse-1.138.0/lib/python3.13/site-packages/synapse/http/server.py", line 337, in _async_render_wrapper
                                         callback_return = await self._async_render(request)
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                       File "/nix/store/gnzhv1i13mca9bx710x3lq090f2bmkja-matrix-synapse-1.138.0/lib/python3.13/site-packages/synapse/http/server.py", line 562, in _async_render
                                         callback_return = await raw_callback_return
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^
                                       File "/nix/store/gnzhv1i13mca9bx710x3lq090f2bmkja-matrix-synapse-1.138.0/lib/python3.13/site-packages/synapse/rest/client/media.py", line 195, in on_GET
                                         ip_address = request.getClientAddress().host
                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                     AttributeError: 'UNIXAddress' object has no attribute 'host'

Anything else that would be useful to know?

the error appears on every media request from what i can tell.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions