diff --git a/wres-config/src/wres/config/yaml/DeclarationValidator.java b/wres-config/src/wres/config/yaml/DeclarationValidator.java index 44e573b113..11d8852e43 100644 --- a/wres-config/src/wres/config/yaml/DeclarationValidator.java +++ b/wres-config/src/wres/config/yaml/DeclarationValidator.java @@ -4023,11 +4023,13 @@ private static List evaluationTimeScaleIsValid( TimeScale { EvaluationStatusEvent event = EvaluationStatusEvent.newBuilder() - .setStatusLevel( StatusLevel.ERROR ) - .setEventMessage( "The evaluation 'time_scale' is prescriptive and " - + "cannot be instantaneous. Please remove the " - + "evaluation 'time_scale' or increase it and try " - + AGAIN ) + .setStatusLevel( StatusLevel.WARN ) + .setEventMessage( "The evaluation 'time_scale' is instantaneous. If the " + + "datasets all contain instantaneous values, this " + + "declaration is redundant and should be removed. " + + "Otherwise, the declaration is invalid because " + + "the smallest possible 'time_scale' is " + + "instantaneous and downscaling is not supported." ) .build(); events.add( event ); } diff --git a/wres-config/test/wres/config/yaml/DeclarationValidatorTest.java b/wres-config/test/wres/config/yaml/DeclarationValidatorTest.java index 8cacd54406..8d60796614 100644 --- a/wres-config/test/wres/config/yaml/DeclarationValidatorTest.java +++ b/wres-config/test/wres/config/yaml/DeclarationValidatorTest.java @@ -701,7 +701,7 @@ void testEvaluateDatasetTimeScaleIsValidResultsinError() } @Test - void testEvaluationTimeScaleIsConsistentWithDatasetTimeScalesResultsInErrors() + void testEvaluationTimeScaleIsConsistentWithDatasetTimeScalesResultsInWarningsAndErrors() { TimeScale timeScaleInnerSource = TimeScale.newBuilder() .setPeriod( Duration.newBuilder() @@ -754,8 +754,9 @@ void testEvaluationTimeScaleIsConsistentWithDatasetTimeScalesResultsInErrors() List events = DeclarationValidator.validate( declaration ); - assertAll( () -> assertTrue( DeclarationValidatorTest.contains( events, "cannot be instantaneous", - StatusLevel.ERROR ) ), + assertAll( () -> assertTrue( DeclarationValidatorTest.contains( events, "The evaluation 'time_scale' " + + "is instantaneous", + StatusLevel.WARN ) ), () -> assertTrue( DeclarationValidatorTest.contains( events, "is smaller than the " + "evaluation 'time_scale'", StatusLevel.ERROR ) ),