diff --git a/webservice/update_config.py b/webservice/update_config.py
index ff82db28e8aa8e24c66edac1c3142b4a74167a56..77f6ffe25a45e6fac7a69221c240b8e334182e96 100644
--- a/webservice/update_config.py
+++ b/webservice/update_config.py
@@ -15,14 +15,15 @@ available_options = {
 
 parser = argparse.ArgumentParser(
     description='Request update of configuration')
-parser.add_argument('--detector', type=str, choices=['AGIPD'])
-parser.add_argument('--task', type=str, choices=['correct', 'dark'])
-parser.add_argument('--proposal', type=str,
+required_args = parser.add_argument_group('required arguments')
+required_args.add_argument('--detector', type=str, choices=['AGIPD'])
+required_args.add_argument('--task', type=str, choices=['correct', 'dark'])
+required_args.add_argument('--proposal', type=str,
                     help='The proposal number, without leading p, but with leading zeros')  # noqa
-parser.add_argument('--instrument', type=str,
+required_args.add_argument('--instrument', type=str,
                     choices=["SPB", "MID", "FXE", "SCS", "SQS", "HED",
                              "DETLAB"], help='The instrument')  # noqa
-parser.add_argument('--cycle', type=str, help='The facility cycle')
+required_args.add_argument('--cycle', type=str, help='The facility cycle')
 parser.add_argument('--apply', action='store_true')
 
 # remove help calls as they will cause the argument parser to exit
diff --git a/webservice/webservice.py b/webservice/webservice.py
index 054b69f4f5c01ae9cf0527134ad02868517fd2b6..76223ce414f5a740968d3ca037ea49776325f6f1 100644
--- a/webservice/webservice.py
+++ b/webservice/webservice.py
@@ -455,6 +455,7 @@ async def server_runner(config, mode):
             req_res = None
 
             if action in ['update_conf']:
+                updated_config = None
                 try:
                     sase, instrument, cycle, proposal, config_yaml, apply = payload  # noqa
                     updated_config = json.loads(config_yaml)