Error de carga de imagen de Firefox en MacOS

He intentado subir imágenes a través de Firefox en MacOS, tanto mediante captura de pantalla/pegar como mediante carga de imágenes, y ambas me muestran que la imagen se está subiendo:

Pero luego me muestran que la imagen ha fallado:

(Lo he publicado a través de Chrome y está funcionando, también funciona en DiscourseHub en iOS).

¿Alguna idea de lo que podría estar pasando en FF en MacOS?

¿En qué versión exacta de Firefox estás? cc @martin

¿Algún error en tu consola?

(no se reproduce en Firefox Windows 95.0.2)

Firefox 95.0.2 (64 bits)…(en MacOS 10.14.6)

[Uppy] [20:14:42] Error al subir Screen Shot 2021-12-21 at 3.14.08 PM.png AwsS3/Multipart: No se pudo leer la cabecera ETag. Esto probablemente significa que CORS no está configurado correctamente en el Bucket S3. Consulta https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration para ver las instrucciones. _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

Solo para confirmar, ¿esto está sucediendo en meta o en tu propio sitio?

En meta, aún no he revisado el mío.

Ya veo, ¿quizás tenemos alguna regla CORS faltante que de alguna manera solo se activa en Firefox para ti?

¿Probaste con diferentes imágenes también?

Funciona en mi propia instancia de Discourse.

Sí, acabo de intentarlo ahora con varias imágenes de mi escritorio y otras carpetas de mi computadora y la misma respuesta.

Estamos investigando, solo para confirmar, ¿se trata de “cortar y pegar”, “arrastrar y soltar”, botón de carga o las 3 opciones?

Intenté las 3 permutaciones en mi equipo con Windows, pero es posible que también necesitemos volver a intentarlo con una cuenta estándar en caso de que omita cosas.

solo para confirmar, ¿es “copiar y pegar”, “arrastrar y soltar”, un botón de carga o los tres?

Parece que son los tres.

Y, en el caso de que algún componente del tema esté causando problemas, ¿puedes probar en modo seguro?

Acabo de probar los tres métodos en modo seguro y sigo recibiendo el mismo error.

Hmm. Acabo de probar los tres en una ventana de incógnito y funcionaron. Quizás sea algo de mis cookies/caché en FF y no algo de tu lado.

(la siguiente imagen se publicó desde FF incógnito):

AwsS3/Multipart: No se pudo leer la cabecera ETag. Esto probablemente significa que CORS no está configurado correctamente en el Bucket S3. Consulte https://uppy.io/docs/aws-s3-multipart#S3-Bucket-Configuration para obtener instrucciones.

¿Quizás esto podría haber sido solo un problema temporal de S3? La ETag debería devolverse en la respuesta de la carga de una parte de la carga a AWS, pero esto debe ser habilitado explícitamente por nosotros con una configuración CORS en el bucket:

Simplemente funcionó en la versión 95.0.2 para mí en Linux.

El ETag debe devolverse en la respuesta de la carga de una parte de la carga a AWS, pero esto debe ser habilitado explícitamente por nosotros con una configuración CORS en el bucket:

Hmm, parece que en el mío también se muestra (captura de pantalla de FF, pero ahora subo a través de Chrome):

Acabo de probar los tres en una ventana de incógnito y funcionaron. Quizás sea algo de mis cookies/caché en FF y no algo de tu lado.

Eliminé las cookies de discourse.org y configuré mi Protección contra el Rastreo Mejorada de FF básicamente en desactivada, y aun así sigue sucediendo. Pero todavía funciona en incógnito en FF.

Seguiré experimentando de mi lado para ver si alguna extensión de FF o algo está causando el problema.

Encontré al culpable. Tengo instalado el complemento ClearURLs FF y tiene una opción de

Filtra las cabeceras ETag de las solicitudes (ver también este artículo)

Desactivé esa configuración y ahora funciona, subiendo la foto a continuación desde la ventana no privada de FF.

¡Gracias por ayudarme a depurar esto!

¡Gran atrapada, gracias @jimkleiber! ¡Se lo haré saber al equipo en caso de que vuelva a ocurrir!

De nada, @sam. Me alegra haber podido ayudar. Además, esto me ayudó a ver lo fácil que es en Discourse cambiar una conversación de “error” a “soporte” y luego cambiarla a un tipo de tema resoluble después de los hechos :pray: