Android: a media delete failure other than IOException loses its CORS headers
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 79/100
Direzione di ricerca
Leggi MediaUploadServer.handleDelete e confronta la gestione delle eccezioni con quella di passthroughResponse e processAndRespond. Assicurati che le eccezioni non dovute ad annullamento ricevano la risposta del server con intestazioni CORS, mentre CancellationException viene rilanciata; verifica che l’errore di eliminazione non si trasformi più in un 500 di ripiego senza CORS.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
On Android, a media delete that fails with anything other than an IOException gets a response without CORS headers. The editor then can't read it, and reports a generic network error instead of the real cause.
Follow-up from #594. Found by reading the code; not reproduced.
What happens
MediaUploadServer.handleDelete catches only IOException. The upload paths (passthroughResponse, processAndRespond) catch every Exception, so that a failure is still answered by the server with CORS headers.
Any other exception from the delete escapes to HttpServer's fallback 500, which carries no CORS headers. The web view rejects that response, and the page sees fetch_error ("Could not get a valid response from the server.").
Building the OkHttp request is one place this could happen: addHeader throws IllegalArgumentException for a header value containing a character it doesn't allow, such as a newline. MediaServerCredentials.areUsable only checks that the auth header isn't empty.
Who is affected
Android hosts whose loopback upload server is running (a mediaProcessor or mediaUploader is set). The main sender is core's orphan cleanup after an upload's post-process retries all fail. The cleanup fails either way; only the error the editor logs is wrong.
Suggested fix
Catch Exception in handleDelete, rethrowing CancellationException, as passthroughResponse does.
- Lingua principale
- JavaScript
- Stelle
- 29
- Fork
- 7
- Merge medio
- 2g 3h
- PR unite (30g)
- 70
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di wordpress-mobile/GutenbergKit
-
[Type] Bug iOS
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
wordpress-mobile/GutenbergKit#846 ·
I maintainer di solito rispondono entro 1 giorno
-
[Type] Bug [Type] Code Quality iOS
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
wordpress-mobile/GutenbergKit#668 ·
I maintainer di solito rispondono entro 1 giorno
-
[Type] Bug [Type] Performance iOS
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
wordpress-mobile/GutenbergKit#666 ·
I maintainer di solito rispondono entro 1 giorno
-
[Type] Bug iOS
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
wordpress-mobile/GutenbergKit#664 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
wordpress-mobile/GutenbergKit#522 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di wordpress-mobile/GutenbergKit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
feimacode/open-design-agent-kit#66 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
xojs/eslint-config-xo#134 ·
-
FEATURE REQUEST
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
linuxmint/cinnamon-spices-extensions#1193 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
huggingface/transformers.js#1839 ·
I maintainer di solito rispondono entro 1 giorno