Students are failing AP tests because the College Board can’t handle HEIC images
Here&#x27;s the relevant frontend source code for the file upload picker, if anyone&#x27;s wondering (webpack:&#x2F;&#x2F;src&#x2F;components&#x2F;exam&#x2F;submissions&#x2F;FileInput.js):<p><pre><code>  &lt;input
            type=&quot;file&quot;
            ref={inputRef}
            name=&quot;fileupload&quot;
            disabled={disabled}
            accept={EXTENSIONS[type]}
            data-cb-element=&quot;no-cb&quot;
            onChange={async e =&gt; {
              const [file] = Object.keys(e.target.files).map(key =&gt; e.target.files[key])
              const fileSizeInMb = file.size&#x2F;(CONVERSION_BASE*CONVERSION_BASE)
              const fileSizeInKb = file.size&#x2F;CONVERSION_BASE
              const split = file.name.split(&#x27;.&#x27;)
              const fileType = split[split.length-1].toLowerCase()
              const extensions = EXTENSIONS[type].split(&#x27;, &#x27;)
              const isAllowedExtension = extensions.includes(`.${fileType}`)
              const alreadyExists = files.find(f =&gt; f.name === file.name &amp;&amp; f.size === file.size &amp;&amp; f.lastModified === file.lastModified)
              let error

              if (alreadyExists)
                error = { title: &#x27;You have already uploaded a file with the same name.&#x27;, details: &#x27;Please attach a different file.&#x27; }
              else if (!isAllowedExtension)
                error = { title: &#x27;This file type is not acceptable.&#x27;, details: &#x27;Please check the requirements, save your file in one of the accepted formats, and resubmit.&#x27; }
              else if (fileSizeInKb &lt;= minSize)
                error = { title: &#x27;Your file is too small.&#x27;, details: &#x27;Please check the file-size requirements, save a larger version, and resubmit.&#x27; }
              else if (fileSizeInMb &gt; maxSize)
                error = { title: &#x27;Your file is too big.&#x27;, details: &#x27;Please check the file-size requirements, save a smaller version, and resubmit. &#x27; }
            
              if (error)
                await setError(&lt;&gt;&lt;strong&gt;{error.title}&lt;&#x2F;strong&gt; {error.details}&lt;&#x2F;&gt;)
              else {
                await updateFiles(file)
                setError(null)
              }

              inputRef.current.value = null
            }}
          &#x2F;&gt;
</code></pre>
The EXTENSIONS variable is defined here:<p><pre><code>  export const EXTENSIONS = {
    [TYPE_DOC]: &#x27;.txt, .doc, .docx, .pdf, .odt&#x27;,
    [TYPE_PHOTO]: &#x27;.png, .jpg, .jpeg&#x27;,
    [TYPE_AUDIO]: &#x27;.m4a, .mp3, .wav, .ogg&#x27;
  }</code></pre>