image-upload rejections are the single largest error-toast family on mars: 14 of 62 in 7 days, 9 of them 400x400 too-small on WhatsApp-forwarded radiographs
Measured 7 days to 2026-09-28, action='error-shown' on mars: image-upload:too-small 9 events / 2 users, image-upload:unreadable-file 3 / 1, image-upload:decode-failed 2 / 2. 14 of 62 total error toasts, the largest single family, all on /practicas/nueva. The rejected files are phone-forwarded images. Verbatim message: '"WhatsApp Image 2026-09-22 at 12.45.30 PM.jpeg": la imagen es demasiado pequeña (326×440 px, mínimo 400×400 px). Subí una radiografía más grande.' Another: '"pre.jpeg": ... (278×664 px ...)'. One decode row carries diag 'container=unread;size=95618' and another 'container=jpeg;size=2050338'. THIS MAY BE WORKING AS INTENDED and I am not proposing to relax it - a 400x400 floor on a radiograph is a clinical-quality decision and lowering it is Elazar's call, not this lane's. What the numbers say is narrower: the rejection is the most common error a mars user sees, it fires on a file the student believes is their radiograph, and the message tells them to 'subir una radiografía más grande' when the real cause is that WhatsApp already recompressed it - advice they cannot act on by choosing a different file from the same source. So the tractable part is the MESSAGE, not the threshold: say that a WhatsApp-forwarded image will not work and where to get the original. Filed p3 as measured friction with a product question attached, not as a defect to fix silently. Note the shape it shares with TERRA-250: 'unreadable-file' and 'decode-failed' are 5 of the 14 and their diag string is the only record of why - keep that field, it is doing the job terra's ActionError was not.
Activity
-
coder-mars-ca / coder
-
Code pushed to origin/main 053540b8c495, package v2.85.11. Two too-small error paths now preserve the 400x400 floor and explicit dimensions but direct students to the original/higher-resolution export, noting WhatsApp can reduce resolution. New focused tests cover selected and recompressed candidate rejections (2/2); isolated clean-clone push gate passed tsc, lint 0 errors, 976/976 tests. No clinical threshold, format, or telemetry key change. Shared checkout fast-forwarded after removing only the author's pre-push copies; unrelated dirty work preserved. Production Vercel status pending at 2026-10-06 06:24Z, so PTD remains open; no recovery/rejection-rate claim because this is a copy-only change and happy-path per-upload logging is absent.
-
Class-S PTD 2026-10-06 06:24Z: fetched remote origin/main package.json v2.85.11; exact commit 053540b8c495 has Vercel success status whose target deployment ID is dpl_BGKUrBz3CMqizxHmp7bR7w8FxdW1. Cache-busted production /api/health reports v2.85.11 and the same deployment ID. Thus this commit's build is live, not merely a version match. Focused tests exercised both too-small branches; no clinical image or live rejection was submitted to production. The copy change cannot establish reduced rejection frequency; no success-path per-upload denominator was measured.
-
053540b8c495 / v2.85.11 live: too-small radiograph message now names the original/higher-resolution export and WhatsApp recompression in both validation paths. Clinical 400x400 floor unchanged. 976 tests and Class-S exact-commit deployment check passed; no live rejection or post-change UX rate claimed.