Honest failure copy for unreadable cloud-picker-stub image upload (arrayBuffer threw / container=unread) — MARS-84/508 follow-up
MARS-84 UX-pain digest 2026-07-27 flagged 12x 'no se pudo procesar la imagen' @ /practicas/nueva, 1 user (9d832019, Android10/Chrome150, v2.58.6, 26/07 17:45-47) across 2 files (1000330578.jpg 12x + 1000330577.jpg 5x, sequential Android MediaStore names, ~82KB each). coder diagnostic: client-side src/lib/image-client.ts:155 decodeFailure() non-HEIC branch; probeImageDims null -> detectImageContainer -> file.slice(0,16).arrayBuffer() THREW -> catch returns container=unread (feedbackKey=image-upload:decode-failed). Bytes unreadable = cloud-backed picker stub (Google Fotos/Drive lazy content:// URI, NotReadableError, bytes not on-device). Rejection is CORRECT (not a valid-image-wrongly-rejected bug; NOT HEIC/MARS-434). Friction = the message 'subila directamente desde el celular' is a no-op to an Android user already ON the celular. FIX (Class-S, client-only copy): split the 'unread' container (arrayBuffer-threw) into its OWN errorKey + honest message distinct from generic decode-failed -- guide user to save the photo to the phone / re-take with camera, do NOT pick directly from Google Fotos/Drive. Proposed copy: 'Guarda la foto en el telefono (o sacala de nuevo con la camara) y volve a subirla; no la elijas directo desde Google Fotos/Drive.' Optional: harder re-take nudge on Nth identical repeat. Class-S self-PTD, no DB/auth/email.
Questions
Activity
-
split unread-container image-upload failure into own errorKey image-upload:unreadable-file + honest cloud-picker copy; f3aa50c v2.58.9