Attempting to set Project Avatar causes Internal Server Error 500

I am running a self-hosted instance of GitLab 12.8 and everything appears to be operational on my server except for the fact that attempts to set any project’s avatar image yields an Internal Server Error 500. (Interestingly, setting user avatar images is fully operational and working just fine.)

Steps to reproduce:

  1. Open any project’s “General Settings” page.
  2. Click the “Choose file…” button below “Project Avatar”
  3. Select any file.
  4. The only observable change is that the “No file chosen” text is replaced with the filename of the selected file – (no crop dialogue appears, unlike on the user-avatar page.)
  5. Click “Save changes”
  6. Observe 500 error. Avatar image is also not updated.

I have checked the logs both in the admin U.I. and on the server – no errors are logged.

I have checked the Javascript console and the only error that appears in the console seems to be unrelated to the issue because it appears immediately upon loading the “General Settings” page – it is a 404 error for https://[redacted]/assets/select2x2.png

Please help me. Where should I even start looking for this problem because nothing appears in the logs? (It could be that I’m failing to grep the logs, correctly, but I found nothing.)

Here is some diagnostic output from the server that might be of use:

System information
System:
Current User:   gitlab
Using RVM:      no
Ruby Version:   2.6.5p114
Gem Version:    3.1.2
Bundler Version:2.1.4
Rake Version:   12.3.3
Redis Version:  5.0.7
Git Version:    2.24.1
Sidekiq Version:5.2.7
Go Version:     go1.13.8 linux/amd64

GitLab information
Version:        12.8.7
Revision:       2774ddc308f
Directory:      /var/gitlab/gitlab
DB Adapter:     PostgreSQL
DB Version:     12.2
URL:            https://[redacted]
HTTP Clone URL: https://[redacted]/some-group/some-project.git
SSH Clone URL:  gitlab@[redacted]:some-group/some-project.git
Using LDAP:     no
Using Omniauth: no

GitLab Shell
Version:        11.0.0
Repository storage paths:
- default:      /var/gitlab/repositories
GitLab Shell path:              /var/gitlab/gitlab-shell
Git:            /usr/bin/git


GitLab Check:
Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 11.0.0 ? ... OK (11.0.0)
Running /var/gitlab/gitlab-shell/bin/check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful

Checking GitLab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... yes
Number of Sidekiq processes ... 1

Checking Sidekiq ... Finished

Checking Incoming Email ...

Incoming Email: ... Reply by email is disabled in config/gitlab.yml

Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab App ...

Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Init script exists? ... yes

Redis version >= 2.8.0? ... yes
Ruby version >= 2.5.3 ? ... yes (2.6.5)
Git version >= 2.22.0 ? ... yes (2.24.1)
Git user has default SSH configuration? ... yes
Active users: ... 3
Is authorized keys file accessible? ... skipped (authorized keys not enabled)

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished

Further information: the issue appears to be limited to .jpg files.

Setting project avatars from .png files appears to work.

Still nothing in the logs. I also checked the unicorn logs.