Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Media Download / View Failed in Element #4112

Open
NassemKa opened this issue Feb 26, 2025 · 0 comments
Open

Media Download / View Failed in Element #4112

NassemKa opened this issue Feb 26, 2025 · 0 comments
Labels

Comments

@NassemKa
Copy link

NassemKa commented Feb 26, 2025

Describe the bug
I am experiencing issues with media uploads and display in Element. The problem manifests in the following ways:

Media Upload Failure:

Media files (images, videos, etc.) are not displaying in the chat after being uploaded.

Attempting to download the media also fails.
Image
Image
Profile Pictures Not Displaying:

User profile pictures are not showing up in Element.

Media Visibility in Synapse Admin:

The media files are visible and accessible via the Synapse admin panel, confirming that the files are being uploaded successfully to the server.
Image

To Reproduce
My vars.yml file looks like this:

# The bare domain name which represents your Matrix identity.
# Matrix user ids for your server will be of the form (`@user:<matrix-domain>`).
#
# Note: this playbook does not touch the server referenced here.
# Installation happens on another server ("matrix.<matrix-domain>").
#
# If you've deployed using the wrong domain, you'll have to run the Uninstalling step,
# because you can't change the Domain after deployment.
#
# Example value: example.com
matrix_domain: sec.xyz
#
# Configuring Well Known
matrix_static_files_container_labels_base_domain_enabled: true
# The Matrix homeserver software to install.
# See:
#  - `roles/custom/matrix-base/defaults/main.yml` for valid options
# - the `docs/configuring-playbook-IMPLEMENTATION_NAME.md` documentation page, if one is available for your implementation choice
#
# Controlling Matrix federation (optional)
# Federating only with select servers
# To make your server only federate with servers of your choosing, add this to your configuration file (inventory/host_vars/matrix.<your-domain>/vars.yml):
# matrix_synapse_federation_domain_whitelist:
#   - example.com
#   - another.com
#
# Exposing the room directory over federation
matrix_synapse_allow_public_rooms_over_federation: true
#
matrix_homeserver_implementation: synapse
#
# A secret used as a base, for generating various other secrets.
# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`).
matrix_homeserver_generic_secret_key: 'SECRETCODE'
#
# By default, the playbook manages its own Traefik (https://doc.traefik.io/traefik/) reverse-proxy server.
# It will retrieve SSL certificates for you on-demand and forward requests to all other components.
# For alternatives, see `docs/configuring-playbook-own-webserver.md`.
# A Postgres password to use for the superuser Postgres user (called `matrix` by default).
#
# The playbook creates additional Postgres users and databases (one for each enabled service)
# using this superuser account.
postgres_connection_password: 'SECRETCODE'
#
# By default, we configure Coturn's external IP address using the value specified for `ansible_host` in your `inventory/hosts` file.
# If this value is an external IP address, you can skip this section.
#
# If `ansible_host` is not the server's external IP address, you have 2 choices:
# 1. Uncomment the line below, to allow IP address auto-detection to happen (more on this below)
# 2. Uncomment and adjust the line below to specify an IP address manually
#
# By default, auto-detection will be attempted using the `https://ifconfig.co/json` API.
# Default values for this are specified in `matrix_coturn_turn_external_ip_address_auto_detection_*` variables in the Coturn role
# (see `roles/custom/matrix-coturn/defaults/main.yml`).
#
# If your server has multiple IP addresses, you may define them in another variable which allows a list of addresses.
# Example: `matrix_coturn_turn_external_ip_addresses: ['1.2.3.4', '4.5.6.7']`
#
# matrix_coturn_turn_external_ip_address: ''
#
# matrix admin console enable install
matrix_synapse_admin_enabled: true

# jitsi install
jitsi_enabled: true
jitsi_jvb_container_extra_arguments:
  - '--env "JVB_DISABLE_STUN=true"'
#
# Enabling metrics and graphs for your Matrix server 
prometheus_enabled: true
#
# You can remove this, if unnecessary.
prometheus_node_exporter_enabled: true
#
# You can remove this, if unnecessary.
prometheus_postgres_exporter_enabled: true
# You can remove this, if unnecessary.
#
matrix_prometheus_nginxlog_exporter_enabled: true
grafana_enabled: true
grafana_anonymous_access: false
#
# Changing the username subsequently won't work.
grafana_default_admin_user: admin
# Changing the password subsequently won't work.
grafana_default_admin_password: SECRETCODE
#
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
#
# This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains.
#
# In case SSL renewal fails at some point, you'll also get an email notification there.
#
# If you decide to use another method for managing SSL certificates (different than the default Let's Encrypt),
# you won't be required to define this variable (see `docs/configuring-playbook-ssl-certificates.md`).
#
# Example value: [email protected]
#traefik_config_certificatesResolvers_acme_email: '[email protected]'
# Disable ACME / Let's Encrypt support.
traefik_config_certificatesResolvers_acme_enabled: false

# Disabling ACME support (above) automatically disables the creation of the SSL directory.
# Force-enable it here, because we'll add our certificate files there.
traefik_ssl_dir_enabled: true

# Tell Traefik to load our custom ssl key pair by extending provider configuration.
# The key pair files are created below, in `aux_file_definitions`.
# The `/ssl/…` path is an in-container path, not a path on the host (like `/matrix/traefik/ssl`). Do not change it!
traefik_provider_configuration_extension_yaml:
  tls:
    certificates:
      - certFile: /ssl/cert.pem
        keyFile: /ssl/privkey.pem
    stores:
      default:
        defaultCertificate:
          certFile: /ssl/cert.pem
          keyFile: /ssl/privkey.pem

# Use the aux role to create our custom files on the server.
# If you'd like to do this manually, you remove this `aux_file_definitions` variable.
aux_file_definitions:
  # Create the privkey.pem file on the server by
  # uploading a file from the computer where Ansible is running.
  - dest: "{{ traefik_ssl_dir_path }}/privkey.pem"
    src: /home/ubuntu/projects/matrix-docker-ansible-deploy/ssl/privkey.pem
    # Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
    # Note the indentation level.
    # content: |
    #   FILE CONTENT
    #   HERE

  # Create the cert.pem file on the server
  # uploading a file from the computer where Ansible is running.
  - dest: "{{ traefik_ssl_dir_path }}/cert.pem"
    src: /home/ubuntu/projects/matrix-docker-ansible-deploy/ssl/cert.pem
    # Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
    # Note the indentation level.
    # content: |
    #   FILE CONTENT
    #   HERE
#
# Etherpad
etherpad_enabled: true
#
# Uncomment below to enable the admin web UI
etherpad_admin_username: admin
etherpad_admin_password: SECRETCODE
#
#
# Setting up synapse-usage-exporter (optional)
matrix_synapse_usage_exporter_enabled: true
#
#
# Synapse Auto Invite Accept
matrix_synapse_auto_accept_invites_enabled: true
#
#
# Bots
# matrix-reminder-bot
matrix_bot_matrix_reminder_bot_enabled: true
# Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bot_matrix_reminder_bot_matrix_user_id_localpart: bot.matrix-reminder-bot
# Generate a strong password here. Consider generating it with `pwgen -s 64 1`
matrix_bot_matrix_reminder_bot_matrix_user_password: SECRETCODE
 

Expected behavior

  • Uploaded media should display correctly in the chat.

  • Users should be able to download media files without issues.

  • Profile pictures should be visible for all users.

Steps to Reproduce:
1- Upload any media file (image, video, etc.) in an Element chat.

2- Observe that the media does not display in the chat.

3- Attempt to download the media file (download fails).

4- Check user profile pictures (they do not display).

5- Verify media files in the Synapse admin panel (media is present and accessible)

Matrix Server:

  • OS: Ubuntu: 24.04.2 LTS
  • Architecture: amd64
@NassemKa NassemKa added the bug label Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant