Open-EO/openeo-geotrellis-extensions

fix misleading error message

オープン

#650 opened on 2026/02/04

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)Scala (5 件のフォーク)auto 404
buggood first issue

Repository metrics

Stars
 (7 個のスター)
PR merge metrics
 (PR metrics pending)

説明

This process graph:

{
  "process_graph": {
    "loadstac1": {
      "arguments": {
        "url": "https://www.planet.com/data/stac/tanager-core-imagery/agriculture/20250223_165538_00_4001/20250223_165538_00_4001.json"
      },
      "process_id": "load_stac"
    },
    "saveresult1": {
      "arguments": {
        "data": {
          "from_node": "loadstac1"
        },
        "format": "GTiff",
        "options": {}
      },
      "process_id": "save_result",
      "result": true
    }
  }
}             

fails with the following error:

py4j.protocol.Py4JJavaError: An error occurred while calling o2131.datacube_seq.
: java.io.IOException: Exception while reading RasterSource https://storage.googleapis.com/open-cogs/planet-stac/tanager1-release2-core-imagery/basic_beta_udm/20250223_165538_00_4001_basic_beta_udm.tif in collection https://www.planet.com/data/stac/tanager-core-imagery/agriculture/20250223_165538_00_4001/20250223_165538_00_4001.json. Detailed message: incorrect byte order. File does not exist: https:/storage.googleapis.com/open-cogs/planet-stac/tanager1-release2-core-imagery/basic_beta_udm/20250223_165538_00_4001_basic_beta_udm.tif.
	at org.openeo.geotrellis.layers.FileLayerProvider.determineCelltype(FileLayerProvider.scala:867)
	at org.openeo.geotrellis.layers.FileLayerProvider.readKeysToRasterSources(FileLayerProvider.scala:900)
	at org.openeo.geotrellis.layers.FileLayerProvider.prepareRasterRegions(FileLayerProvider.scala:1181)
	at org.openeo.geotrellis.layers.FileLayerProvider.readMultibandTileLayer(FileLayerProvider.scala:1154)
	at org.openeo.geotrellis.file.PyramidFactory.datacube(PyramidFactory.scala:175)
	at org.openeo.geotrellis.file.PyramidFactory.datacube_seq(PyramidFactory.scala:132)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:75)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:52)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:374)
	at py4j.Gateway.invoke(Gateway.java:282)
	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
	at py4j.commands.CallCommand.execute(CallCommand.java:79)
	at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:184)
	at py4j.ClientServerConnection.run(ClientServerConnection.java:108)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: geotrellis.raster.io.geotiff.reader.MalformedGeoTiffException: incorrect byte order
	at geotrellis.raster.io.geotiff.reader.GeoTiffInfo$.read(GeoTiffInfo.scala:132)
	at geotrellis.raster.io.geotiff.reader.GeoTiffReader$.readMultiband(GeoTiffReader.scala:211)
	at geotrellis.raster.geotiff.GeoTiffResampleRasterSource.$anonfun$tiff$1(GeoTiffResampleRasterSource.scala:45)
	at scala.Option.getOrElse(Option.scala:201)
	at geotrellis.raster.geotiff.GeoTiffResampleRasterSource.tiff$lzycompute(GeoTiffResampleRasterSource.scala:42)
	at geotrellis.raster.geotiff.GeoTiffResampleRasterSource.tiff(GeoTiffResampleRasterSource.scala:39)
	at geotrellis.raster.geotiff.GeoTiffResampleRasterSource.$anonfun$cellType$1(GeoTiffResampleRasterSource.scala:49)
	at scala.Option.getOrElse(Option.scala:201)
	at geotrellis.raster.geotiff.GeoTiffResampleRasterSource.cellType(GeoTiffResampleRasterSource.scala:49)
	at org.openeo.geotrellis.layers.BandCompositeRasterSource.$anonfun$cellType$1(BandCompositeRasterSource.scala:100)
	at scala.collection.immutable.List.map(List.scala:251)
	at cats.data.NonEmptyList.map(NonEmptyList.scala:109)
	at org.openeo.geotrellis.layers.BandCompositeRasterSource.cellType(BandCompositeRasterSource.scala:100)The asset in question is not a file on disk but it is treated as such.
	at org.openeo.geotrellis.layers.FileLayerProvider.determineCelltype(FileLayerProvider.scala:839)
	... 17 more

In particular, this part of the error message is misleading:

File does not exist: https:/storage.googleapis.com/open-cogs/planet-stac/tanager1-release2-core-imagery/basic_beta_udm/20250223_165538_00_4001_basic_beta_udm.tif

The asset in question is not a file on disk but it is treated as such. It leads to wrong conclusions by users and hinders root cause analysis (the actual cause is the "incorrect byte order").

コントリビューターガイド