From c1c16ed3e671817dc4780dba0dbdaa59f2fe592b Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Fri, 17 Oct 2025 14:57:38 +0100 Subject: [PATCH] Improve error messaging when only warnings issued #4465 --- docs/src/content/docs/changelog/v0.34.5.md | 3 +++ src/pipeline.cc | 13 +++++++++++-- src/pipeline.h | 2 ++ test/fixtures/bonne.geo.tif | Bin 0 -> 47034 bytes test/fixtures/index.js | 1 + test/unit/failOn.js | 7 +++++++ 6 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/bonne.geo.tif diff --git a/docs/src/content/docs/changelog/v0.34.5.md b/docs/src/content/docs/changelog/v0.34.5.md index a754c33a..886932b8 100644 --- a/docs/src/content/docs/changelog/v0.34.5.md +++ b/docs/src/content/docs/changelog/v0.34.5.md @@ -9,3 +9,6 @@ slug: changelog/v0.34.5 * Add support for BigTIFF output. [#4459](https://github.com/lovell/sharp/pull/4459) [@throwbi](https://github.com/throwbi) + +* Improve error messaging when only warnings issued. + [#4465](https://github.com/lovell/sharp/issues/4465) diff --git a/src/pipeline.cc b/src/pipeline.cc index 2b952fc9..4a848293 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -1278,7 +1278,12 @@ class PipelineWorker : public Napi::AsyncWorker { if (what && what[0]) { (baton->err).append(what); } else { - (baton->err).append("Unknown error"); + if (baton->input->failOn == VIPS_FAIL_ON_WARNING) { + (baton->err).append("Warning treated as error due to failOn setting"); + baton->errUseWarning = true; + } else { + (baton->err).append("Unknown error"); + } } } // Clean up libvips' per-request data and threads @@ -1293,7 +1298,11 @@ class PipelineWorker : public Napi::AsyncWorker { // Handle warnings std::string warning = sharp::VipsWarningPop(); while (!warning.empty()) { - debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) }); + if (baton->errUseWarning) { + (baton->err).append("\n").append(warning); + } else { + debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) }); + } warning = sharp::VipsWarningPop(); } diff --git a/src/pipeline.h b/src/pipeline.h index eaec71fa..14ee5456 100644 --- a/src/pipeline.h +++ b/src/pipeline.h @@ -198,6 +198,7 @@ struct PipelineBaton { bool jxlLossless; VipsBandFormat rawDepth; std::string err; + bool errUseWarning; int keepMetadata; int withMetadataOrientation; double withMetadataDensity; @@ -373,6 +374,7 @@ struct PipelineBaton { jxlEffort(7), jxlLossless(false), rawDepth(VIPS_FORMAT_UCHAR), + errUseWarning(false), keepMetadata(0), withMetadataOrientation(-1), withMetadataDensity(0.0), diff --git a/test/fixtures/bonne.geo.tif b/test/fixtures/bonne.geo.tif new file mode 100644 index 0000000000000000000000000000000000000000..1592bf86ce775707683897f6f5176bc35c32ac5b GIT binary patch literal 47034 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 { fs.createReadStream(fixtures.inputJpgTruncated).pipe(writable); return writable.toBuffer(); }); + + it('converts warnings to error for GeoTIFF', async () => { + await assert.rejects( + sharp(fixtures.inputTiffGeo).toBuffer(), + /Unknown field with tag 33550/ + ); + }); });