Skip to content

Uploading a 6 MiB avatar returns “413 Request Entity Too Large”. #1977

@RokeJulianLockhart

Description

@RokeJulianLockhart

meta:295396

What The Problem Is

When I attempt to upload a new avatar, if the submitted file is ⪆ 4 MiB:

  1. #!/usr/bin/env sh
    mediainfo --Output=JSON "$HOME/JPEG.JPEG" | yq -P
  2. creatingLibrary:
      name: MediaInfoLib
      version: "25.10"
    media:
      '@ref': /home/RokeJulianLockhart/JPEG.JPEG
      track:
        - '@type': General
          ImageCount: "1"
          FileExtension: JPEG
          Format: JPEG
          FileSize: "6404703"
          StreamSize: "17260"
        - '@type': Image
          Format: JPEG
          Width: "3072"
          Height: "3072"
          ColorSpace: YUV
          ChromaSubsampling: 4:4:4
          BitDepth: "8"
          Compression_Mode: Lossy
          StreamSize: "6387443"
          colour_primaries: BT.709
          transfer_characteristics: sRGB/sYCC
          extra:
            ColorSpace_ICC: RGB
            colour_primaries_ICC_Description: GIMP built-in sRGB

…I observe a nondescript error message:

<html>
<head><title>413 Request Entity Too Large</title></head>
<body>
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx/1.18.0 (Ubuntu)</center>
<script defer src="[https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015](view-source:https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015)" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fa0c13a4688940dfbd0ead60ec559af0","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>

How To Reproduce It

  1. #!/usr/bin/env pwsh
    Start-Process 'https://powerusers.codidact.com/users/edit/profile#user_avatar:~:text=user%20avatar-,Avatar,-An%20optional%20profile'
  2. #!/usr/bin/env xdg-open
    (() => {
      const run = () => {
        const fileInput = document.querySelector('#user_avatar');
        const onChange = () => {
          if (fileInput.files && fileInput.files.length > 0) {
            document.querySelector('input.button').click();
          }
          fileInput.removeEventListener('change', onChange);
        };
        fileInput.addEventListener('change', onChange, { once: true });
        fileInput.click();
      };
      if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', run, { once: true });
      } else {
        run();
      }
    })();

If that fails:

  1. Visit powerusers.codidact.com/users/edit/profile#user_avatar.

  2. Select “Choose”, under “Avatar”.

  3. Select an image > 6 MiB.

  4. Select “Save”.

To demonstrate this:

@.Date.20260205T120121+0000.Type.Video.Origin.webm

The Expected Behaviour

I should be informed that the image is too large, after which QPixel should allow me to re-upload a new avatar file.

Metadata

Metadata

Assignees

Labels

area: frontendChanges to front-end codecomplexity: unassessedNeeds further developer investigation before complexity/feasibility can be determined.priority: medium

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions