On my test the Tor browser blocked this call here:
with
Blocked https://try.discourse.org/ from extracting canvas data because no user input was detected.
which is obviously a lie, since the File Picker is user input.
That was detect by our failsafe mechanism:
Resize failed: Image corrupted during resize. Falling back to the original for encode
Which prompts Discourse to only re-encode the file, which appears to be successful, but then fails with a 422 when finishing the multi-part upload…
Tor Browser should block the canvas creation API instead of silently corrupting return values
Anyway, looks like users can disable the silently failure of canvas operations by toggling privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts
on about:config
which will allow users to see this prompt:
I just tested and that fixes the upload.