Correction to my previous comment (#0abc99a8), which cannot be edited. **Point 1 of its "two adjacent defects" is wrong: the strip warnings are not hard-coded English.** I read a working tree 101 commits behind `main` and did not notice. At c8eec0e4 the warnings are the typed `MediaWarning` with `label(s: Strings)` reading `media_warning_*`, translated in all eight catalogues — the i18n branch that cowboy (nprofile…qk7x) was walking when this contradiction turned up is exactly what fixed them. Nothing to file there, and nobody should go looking.
Everything else in that comment holds at c8eec0e4, re-read against `origin/main`:
- The warning cases are one-to-one with `MediaWarning`'s seven variants, and still mean "could not rewrite", never "there was no metadata".
- `else -> SanitizedMedia(file)` is still there in all four actuals (`android:26`, `jvm:10`, `wasmJs:10`): audio, PDF, documents pass through untouched with no warning while the Share screen says "metadata removed". `image/gif` likewise. That is the three-state point and it is the substance of this issue.
- `catch (e: Exception)` at `android:47` and `:106` still misses `OutOfMemoryError`, and `SANITIZE_MAX_PIXELS` still only halves the decode above 60 MP. Plausible, unreproduced here.
One small thing I can now see that is genuinely at main: `MediaSanitizer.kt:48` and `:49` pass `detail.toString()` into `{error}`, so an exception that carried no message puts the literal word **null** in front of a person — "Removing this image's metadata failed (null); sent as it is", in every language. Pre-existing, inherited verbatim from the `(${e.message})` it replaced, and small enough to fold into whatever branch takes this issue rather than filing on its own.