MacOS Firefox image upload error

I’ve tried to upload images through Firefox on MacOS both through screenshot/paste and image upload, and both show me that the image is uploading:

Screen Shot 2021-12-22 at 8.03.10 PM

But then show me that the image has failed:

(I’ve posted this through Chrome and it is working, also it works on DiscourseHub on iOS).

Any thoughts on what might be happening on FF on MacOS?

1 Like

What exact version of Firefox are you on? cc @martin

Any errors in your console?

(no repro on Firefox Windows 95.0.2)

1 Like

Firefox 95.0.2 (64-bit)…(on MacOS 10.14.6)

[Uppy] [20:14:42] Failed to upload Screen Shot 2021-12-21 at 3.14.08 PM.png AwsS3/Multipart: Could not read the ETag header. This likely means CORS is not configured correctly on the S3 Bucket. See https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration for instructions. _vendor-0d13dafa62355d23ad44f16cc044a987.js:6349:24
    error _vendor-0d13dafa62355d23ad44f16cc044a987.js:6349
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6917
    de _vendor-0d13dafa62355d23ad44f16cc044a987.js:6940
    me _vendor-0d13dafa62355d23ad44f16cc044a987.js:6951
    emit _vendor-0d13dafa62355d23ad44f16cc044a987.js:6311
    emit _vendor-0d13dafa62355d23ad44f16cc044a987.js:6311
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6854
    onError _vendor-0d13dafa62355d23ad44f16cc044a987.js:6710
    Z _vendor-0d13dafa62355d23ad44f16cc044a987.js:6799
    z _vendor-0d13dafa62355d23ad44f16cc044a987.js:6770
    (Async: promise callback)
    z _vendor-0d13dafa62355d23ad44f16cc044a987.js:6770
    z _vendor-0d13dafa62355d23ad44f16cc044a987.js:6769
    (Async: promise callback)
    z _vendor-0d13dafa62355d23ad44f16cc044a987.js:6769
    F _vendor-0d13dafa62355d23ad44f16cc044a987.js:6757
    (Async: promise callback)
    F _vendor-0d13dafa62355d23ad44f16cc044a987.js:6755
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6749
    a _vendor-0d13dafa62355d23ad44f16cc044a987.js:6716
    m _vendor-0d13dafa62355d23ad44f16cc044a987.js:6138
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6132
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6716
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6709
    n _vendor-0d13dafa62355d23ad44f16cc044a987.js:6725
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6724
    e _vendor-0d13dafa62355d23ad44f16cc044a987.js:6963
    m _vendor-0d13dafa62355d23ad44f16cc044a987.js:83
    _invoke _vendor-0d13dafa62355d23ad44f16cc044a987.js:80
    t _vendor-0d13dafa62355d23ad44f16cc044a987.js:83
    r _vendor-0d13dafa62355d23ad44f16cc044a987.js:6802
    s _vendor-0d13dafa62355d23ad44f16cc044a987.js:6804
    (Async: promise callback)
    r _vendor-0d13dafa62355d23ad44f16cc044a987.js:6802
    s _vendor-0d13dafa62355d23ad44f16cc044a987.js:6804
    (Async: promise callback)
    r _vendor-0d13dafa62355d23ad44f16cc044a987.js:6802
    s _vendor-0d13dafa62355d23ad44f16cc044a987.js:6804
    i _vendor-0d13dafa62355d23ad44f16cc044a987.js:6804
    i _vendor-0d13dafa62355d23ad44f16cc044a987.js:6803
    be _vendor-0d13dafa62355d23ad44f16cc044a987.js:6958
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6930
    (Async: promise callback)
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6926
    scheduledAutoProceed _vendor-0d13dafa62355d23ad44f16cc044a987.js:6948
    (Async: setTimeout handler)
    he _vendor-0d13dafa62355d23ad44f16cc044a987.js:6948
    value _vendor-0d13dafa62355d23ad44f16cc044a987.js:6870
    _addFiles _application-1b8d860fd0cc6e174f8a7abbca67d655.js:5023
    _run _vendor-0d13dafa62355d23ad44f16cc044a987.js:4034
    _join _vendor-0d13dafa62355d23ad44f16cc044a987.js:4033
    join _vendor-0d13dafa62355d23ad44f16cc044a987.js:3999
    f _vendor-0d13dafa62355d23ad44f16cc044a987.js:2870
    bind _vendor-0d13dafa62355d23ad44f16cc044a987.js:2873
    n _application-1b8d860fd0cc6e174f8a7abbca67d655.js:4565
    n _application-1b8d860fd0cc6e174f8a7abbca67d655.js:4565
1 Like

Just confirming, this is happening on meta or is this on your own site?

1 Like

On meta, I haven’t checked on mine yet.

2 Likes

I see, maybe we have some missing CORS rule that is somehow only triggering on Firefox for you?

Did you try different images as well?

1 Like

Works on my own Discourse instance.

2 Likes

Yup, just tried now with various images from my Desktop and other folders on my computer and same response.

1 Like

We are investigating, just confirming is this “cut-paste”, “drag-drop”, upload button or all 3?

I tried the 3 permutations on my Windows box, but we may also need to retry with a standard account in case I bypass things.

1 Like

just confirming is this “cut-paste”, “drag-drop”, upload button or all 3?

Seems to be all three.

1 Like

Also on the off chance that we have some theme component here wreaking havoc, can you try in safe mode?

1 Like

Just tried all three methods in safe mode and still getting the same error.

1 Like

Hmm. Just tried all three in an incognito window and they worked. Perhaps it’s something with my cookies/cache in FF and not something on your side.

(the following image was posted from FF incognito):

1 Like

AwsS3/Multipart: Could not read the ETag header. This likely means CORS is not configured correctly on the S3 Bucket. See AWS S3 | Uppy for instructions.

Perhaps this could have just been some temporary S3 blip? The ETag should be returned in the response from uploading a part of the upload to AWS, but this must be explicitly enabled by us with a CORS setting on the bucket:

It just worked in 95.0.2 for me on Linux.

1 Like

The ETag should be returned in the response from uploading a part of the upload to AWS, but this must be explicitly enabled by us with a CORS setting on the bucket:

Hmm, it seems to show that on mine as well (screenshot from FF but uploading now through Chrome):

Just tried all three in an incognito window and they worked. Perhaps it’s something with my cookies/cache in FF and not something on your side.

I deleted the discourse.org cookies and set my FF Enhanced Tracking Protection basically to off, and yet it’s still happening. But still works in incognito on FF.

I’ll keep experimenting on my side to see maybe it’s a FF extension or something causing the problem.

1 Like

I found the culprit. I have the ClearURLs FF add-on installed and it has an option of

Filters ETag headers from requests (See also this article)

I disabled that setting and it now works, uploading the photo below from FF non-incognito window.

Thank you for helping me debug this!

8 Likes

Amazing catch, thanks @jimkleiber … will let the team know about this in case it pops up again!

3 Likes

Ah, you’re welcome @sam! Glad I could help. Also, this helped me see how easy it is on Discourse to change a convo from a “bug” to “support” and then switch to it a solveable type of topic after the fact :pray:

4 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.