diff --git a/controller/src/main.rs b/controller/src/main.rs
index 157c5ee..e71b414 100644
--- a/controller/src/main.rs
+++ b/controller/src/main.rs
@@ -1,9 +1,12 @@
 use anyhow::{anyhow, Result};
 use clap::Parser;
-use dropshot::{
-    endpoint, ApiDescription, ConfigDropshot, HttpError, HttpResponseOk, RequestContext,
-    ServerBuilder,
-};
+use dropshot::endpoint;
+use dropshot::ApiDescription;
+use dropshot::ConfigDropshot;
+use dropshot::HttpError;
+use dropshot::HttpResponseOk;
+use dropshot::RequestContext;
+use dropshot::ServerBuilder;
 use schemars::JsonSchema;
 use serde::Serialize;
 use slog::Drain;
@@ -30,7 +33,7 @@ struct VersionInfo {
     method = GET,
     path = "/version",
 }]
-async fn api_version(_: RequestContext<Arc<()>>) -> Result<HttpResponseOk<VersionInfo>, HttpError> {
+async fn api_version(rqctx: RequestContext<Arc<()>>) -> Result<HttpResponseOk<VersionInfo>, HttpError> {
     let ver = VersionInfo {
         name: env!("CARGO_PKG_NAME").to_string(),
         version: env!("CARGO_PKG_VERSION").to_string(),
@@ -43,6 +46,17 @@ async fn main() -> Result<()> {
     let _args = Cli::parse();
     let fmt_layer = tracing_subscriber::fmt::layer();
 
+    let mut config_dropshot = ConfigDropshot::default();
+    config_dropshot.bind_address = SocketAddr::from_str("0.0.0.0:9474").unwrap();
+    config_dropshot.request_body_max_bytes = 1024 * 1024;
+
+    // Adapt the Dropshot logger to tracing
+    let dropshot_logger = {
+        let level_drain = slog::LevelFilter(TracingSlogDrain, slog::Level::Debug).fuse();
+        let async_drain = slog_async::Async::new(level_drain).build().fuse();
+        slog::Logger::root(async_drain, slog::o!())
+    };
+
     tracing_subscriber::registry()
         .with(tracing_subscriber::EnvFilter::from_default_env())
         .with(fmt_layer)
@@ -53,22 +67,10 @@ async fn main() -> Result<()> {
     let mut api = ApiDescription::new();
     api.register(api_version).unwrap();
 
-    let config = ConfigDropshot {
-        bind_address: SocketAddr::from_str("0.0.0.0:9474").unwrap(),
-        ..Default::default()
-    };
-
-    // Adapt the Dropshot logger to tracing
-    let logger = {
-        let level_drain = slog::LevelFilter(TracingSlogDrain, slog::Level::Debug).fuse();
-        let async_drain = slog_async::Async::new(level_drain).build().fuse();
-        slog::Logger::root(async_drain, slog::o!())
-    };
-
-    ServerBuilder::new(api, Arc::new(()), logger)
-        .config(config)
+    let server =ServerBuilder::new(api, Arc::new(()), dropshot_logger)
+        .config(config_dropshot)
         .start()
-        .map_err(|e| anyhow!("Error starting server: {:?}", e))?
-        .await
-        .map_err(|e| anyhow!(e))
+        .map_err(|e| anyhow!("Error starting server: {:?}", e))?;
+
+    server.await.map_err(|e| anyhow!("Error running server: {}", e))
 }