diff --git a/gradle.properties b/gradle.properties
index 3dc94c39117aa35ca6c240fff2b700247fee988e..3a02c939319b5e65d5770c1469045c6ec199c71a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,4 +14,4 @@ nshmpUtilsJavaVersion = 0.4.0
 shadowVersion = 7.1.2
 spotbugsVersion = 4.7.0
 spotlessVersion = 6.0.4
-swaggerVersion = 2.1.7
+swaggerVersion = 2.2.21
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());