diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmController.java
index 59cd3cdb7d44bee23434cd5d910baff4625aac51..42bac0fc0319233f9a5f2589912802bac8aaaa14 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmController.java
@@ -239,12 +239,12 @@ class GmmController {
           defaultValue = "0.001",
           minimum = "0",
           maximum = "1000",
-          exclusiveMinimum = true) @QueryValue Optional<Double> rMin,
+          exclusiveMinimum = true) @QueryValue @Nullable Double rMin,
       @Schema(
           defaultValue = "100",
           minimum = "0",
           maximum = "1000",
-          exclusiveMinimum = true) @QueryValue Optional<Double> rMax,
+          exclusiveMinimum = true) @QueryValue @Nullable Double rMax,
       @Schema(
           defaultValue = "6.5",
           minimum = "-2",
@@ -305,7 +305,7 @@ class GmmController {
       }
       GmmInput in = ServiceUtil.readGmmInput(http);
       Distance.Request request = new Distance.Request(
-          http, id, gmms, in, imt, rMin, rMax);
+          http, id, gmms, in, imt, Optional.ofNullable(rMin), Optional.ofNullable(rMax));
       return Distance.process(request);
     } catch (Exception e) {
       return Utils.handleError(e, id.name, http.getUri().getPath());
@@ -362,12 +362,12 @@ class GmmController {
           defaultValue = "-100",
           minimum = "-1000",
           maximum = "1000",
-          exclusiveMinimum = true) @QueryValue Optional<Double> rMin,
+          exclusiveMinimum = true) @QueryValue @Nullable Double rMin,
       @Schema(
           defaultValue = "100",
           minimum = "-1000",
           maximum = "1000",
-          exclusiveMinimum = true) @QueryValue Optional<Double> rMax,
+          exclusiveMinimum = true) @QueryValue @Nullable Double rMax,
       @Schema(
           defaultValue = "6.5",
           minimum = "-2",
@@ -417,7 +417,7 @@ class GmmController {
       }
       GmmInput in = ServiceUtil.readGmmInput(http);
       Distance.Request request = new Distance.Request(
-          http, id, gmms, in, imt, rMin, rMax);
+          http, id, gmms, in, imt, Optional.ofNullable(rMin), Optional.ofNullable(rMax));
       return Distance.process(request);
     } catch (Exception e) {
       return Utils.handleError(e, id.name, http.getUri().getPath());
@@ -474,22 +474,22 @@ class GmmController {
           defaultValue = "5",
           minimum = "-2",
           maximum = "9.7",
-          exclusiveMinimum = true) @QueryValue Optional<Double> mMin,
+          exclusiveMinimum = true) @QueryValue @Nullable Double mMin,
       @Schema(
           defaultValue = "8",
           minimum = "-2",
           maximum = "9.7",
-          exclusiveMinimum = true) @QueryValue Optional<Double> mMax,
+          exclusiveMinimum = true) @QueryValue @Nullable Double mMax,
       @Schema(
           defaultValue = "0.1",
           minimum = "0",
           maximum = "1",
-          exclusiveMinimum = true) @QueryValue Optional<Double> step,
+          exclusiveMinimum = true) @QueryValue @Nullable Double step,
       @Schema(
           defaultValue = "10",
           minimum = "0",
           maximum = "1000",
-          exclusiveMinimum = true) @QueryValue Optional<Double> distance,
+          exclusiveMinimum = true) @QueryValue @Nullable Double distance,
       @Schema(
           defaultValue = "6.5",
           minimum = "-2",
@@ -538,7 +538,8 @@ class GmmController {
       }
       GmmInput in = ServiceUtil.readGmmInput(http);
       Magnitude.Request gmmRequest = new Magnitude.Request(
-          http, id, gmms, in, imt, mMin, mMax, step, distance);
+          http, id, gmms, in, imt, Optional.ofNullable(mMin), Optional.ofNullable(mMax),
+          Optional.ofNullable(step), Optional.ofNullable(distance));
       return Magnitude.process(gmmRequest);
     } catch (Exception e) {
       return Utils.handleError(e, id.name, http.getUri().getPath());