0

My project has a large number of time enabled WMS layers. We are looking at moving from GeoServer 2.24.2 to 2.25.0 and all of our existing time filters are failing.

Our queries look something like: <GEOSERVER_URL>&TIME=2022-01-01/2022-01-02

These queries work in 2.24.2 but result in the following error when running against a 2.25.0 server:

code="InvalidDimensionValue" locator="time" Could not find a match for 'time' value: '2022-01-01/2022-01-02'

I've looked through the release notes and I don't see any mentions about this capability changing in 2.25. Is this a regression?

3
  • is the time dimension enabled? what type is the attribute?
    – Ian Turton
    Commented Mar 26 at 16:21
  • I am pulling from a PostGIS store with a column type of timestamp with timezone and the dimension is enabled.
    – aorz
    Commented Mar 27 at 16:26
  • I did some investigation through the source code and it looks like difference between 2.24.2 and 2.25.0 is the default setting of org.geoserver.wms.exceptionOnInvalidDimension. In 2.25.0 it is now "true" by default. What I don't understand is why the TIME parameter is considered invalid.
    – aorz
    Commented Mar 27 at 16:35

1 Answer 1

2

It looks like you are running a foul of the changes made recently to conform to specification, looking at the manual:

Dimensions settings

The WMS specification mandates the throwing of an InvalidDimensionValue exception when a dimension value is not valid, and the nearest match is not enabled. This is the default behavior of GeoServer starting with version 2.25, while older versions simply ignored the invalid value and returned empty responses.

The behavior can be controlled in the Dimension Settings section, with a choice of three possible values:

  • Use GS version default. Will return an exception if version is greater or equal than 2.25, otherwise will ignore the invalid value.

  • Return InvalidDimensionValue. Will return an exception on invalid value, unless nearest neighbor match has been enabled for the layer (standard compliant behavior).

  • Ignore invalid value. Will ignore invalid values and return an empty map/info (legacy behavior).

So you can change the setting to Ignore or turn nearest neighbour match on depending on which is your preferred behaviour.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.