Group avatar not displayed on top-level groups for users with "Minimal Access" (HTTP 404)
Summary
Group avatars are not displayed on top-level groups where users are assigned with "Minimal Access".
A HTTP 404 error is returned while trying to fetch the related avatar.png
image.
Steps to reproduce
- Create a top-level group
- Upload an group avatar image
- Add another user with "Minimal Access" to the group
- Log in as the other user and browse the groups
What is the current bug behavior?
Group avatar images are not displayed for top-level groups where users are assigned with "Minimal Access". Group names and descriptions are shown. Regardless of whether the user has higher privileges in a subgroup or not.
What is the expected correct behavior?
Group avatar images are displayed as expected, same as the group names and descriptions.
Relevant logs and/or screenshots
Log extracts with the related HTTP 404 errors:
192.0.2.123 - - [03/Sep/2025:07:56:00 +0000] "GET /uploads/-/system/group/avatar/92/avatar.png HTTP/2.0" 404 838 "https://git.example.com/dashboard/groups" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0" 1.90
{"method":"GET","path":"/uploads/-/system/group/avatar/92/avatar.png","format":"html","controller":"UploadsController","action":"show","status":404,"time":"2025-09-03T07:56:00.390Z","params":[{"key":"model","value":"group"},{"key":"mounted_as","value":"avatar"},{"key":"id","value":"92"},{"key":"filename","value":"avatar.png"}],"correlation_id":"01K4796MRHSXJ6GMZZTA7M2V15","meta.caller_id":"UploadsController#show","meta.feature_category":"groups_and_projects","meta.organization_id":1,"meta.remote_ip":"192.0.2.123","meta.user":"example-user","meta.user_id":14,"meta.client_id":"user/14","remote_ip":"192.0.2.123","user_id":14,"username":"example-user","ua":"Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0","queue_duration_s":0.031891,"request_urgency":"default","target_duration_s":1,"redis_calls":8,"redis_allowed_cross_slot_calls":1,"redis_duration_s":0.001791,"redis_read_bytes":876,"redis_write_bytes":933,"redis_db_load_balancing_calls":2,"redis_db_load_balancing_duration_s":0.000241,"redis_db_load_balancing_write_bytes":106,"redis_feature_flag_calls":3,"redis_feature_flag_duration_s":0.00073,"redis_feature_flag_read_bytes":597,"redis_feature_flag_write_bytes":210,"redis_sessions_calls":3,"redis_sessions_allowed_cross_slot_calls":1,"redis_sessions_duration_s":0.00082,"redis_sessions_read_bytes":279,"redis_sessions_write_bytes":617,"db_count":11,"db_write_count":0,"db_cached_count":0,"db_txn_count":0,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":11,"db_replica_write_count":0,"db_primary_write_count":0,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.018,"db_main_txn_count":0,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":11,"db_ci_count":0,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":0,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":0,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.0,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.0,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.018,"db_ci_duration_s":0.0,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.197644,"mem_objects":137570,"mem_bytes":12848360,"mem_mallocs":49046,"mem_total_bytes":18351160,"pid":1075298,"worker_id":"puma_3","rate_limiting_gates":[],"db_duration_s":0.0165,"view_duration_s":0.0,"duration_s":0.05137}
GitLab information
Tested on 17.11.2-ee and v18.3.1-ee self-managed.
Edited by 🤖 GitLab Bot 🤖