diff --git a/lib/config/massage.js b/lib/config/massage.js
index b66c6f02e24846f305f30a9fe63121b50b72f675..4ce2b20a8ba447553004985c919bbcb80f9566d2 100644
--- a/lib/config/massage.js
+++ b/lib/config/massage.js
@@ -1,12 +1,7 @@
 const deepcopy = require('deepcopy');
 const options = require('./definitions').getOptions();
 
-const allowedStrings = [];
-options.forEach(option => {
-  if (option.allowString) {
-    allowedStrings.push(option.name);
-  }
-});
+let allowedStrings;
 
 module.exports = {
   massageConfig,
@@ -14,6 +9,14 @@ module.exports = {
 
 // Returns a massaged config
 function massageConfig(config) {
+  if (!allowedStrings) {
+    allowedStrings = [];
+    options.forEach(option => {
+      if (option.allowString) {
+        allowedStrings.push(option.name);
+      }
+    });
+  }
   const massagedConfig = deepcopy(config);
   for (const key of Object.keys(config)) {
     const val = config[key];
diff --git a/lib/config/migration.js b/lib/config/migration.js
index a97f9c2797a4909ffced7e3673a0d1e1832ab56e..afe19143d113494498015c9abfded990a33e50e4 100644
--- a/lib/config/migration.js
+++ b/lib/config/migration.js
@@ -2,10 +2,7 @@ const later = require('later');
 const deepcopy = require('deepcopy');
 const options = require('./definitions').getOptions();
 
-const optionTypes = {};
-options.forEach(option => {
-  optionTypes[option.name] = option.type;
-});
+let optionTypes;
 
 module.exports = {
   migrateConfig,
@@ -27,6 +24,12 @@ const removedOptions = [
 
 // Returns a migrated config
 function migrateConfig(config) {
+  if (!optionTypes) {
+    optionTypes = {};
+    options.forEach(option => {
+      optionTypes[option.name] = option.type;
+    });
+  }
   let isMigrated = false;
   const migratedConfig = deepcopy(config);
   for (const key of Object.keys(config)) {
diff --git a/lib/config/presets.js b/lib/config/presets.js
index 096fedcf66bcf2f2bc9cc6a2ea2568ce5f234e6d..703c39c5f50e81911930799e37f71267aa3fd446 100644
--- a/lib/config/presets.js
+++ b/lib/config/presets.js
@@ -161,7 +161,8 @@ async function getPreset(preset, logger) {
     logger.warn(`Cannot find preset ${preset}`);
     return {};
   }
-  logger.debug({ presetConfig }, `Found preset ${preset}`);
+  logger.debug(`Found preset ${preset}`);
+  logger.trace({ presetConfig });
   if (params) {
     const argMapping = {};
     for (const [index, value] of params.entries()) {
diff --git a/lib/config/validation.js b/lib/config/validation.js
index 6329be067e40105d49599bd6c1bb9358838ce6f2..6e43cf17fa937eac9fd8bc4648d377a3d26042b3 100644
--- a/lib/config/validation.js
+++ b/lib/config/validation.js
@@ -1,16 +1,19 @@
 const options = require('./definitions').getOptions();
 const { hasValidSchedule } = require('../workers/branch/schedule');
 
-const optionTypes = {};
-options.forEach(option => {
-  optionTypes[option.name] = option.type;
-});
+let optionTypes;
 
 module.exports = {
   validateConfig,
 };
 
 function validateConfig(config) {
+  if (!optionTypes) {
+    optionTypes = {};
+    options.forEach(option => {
+      optionTypes[option.name] = option.type;
+    });
+  }
   let errors = [];
   let warnings = [];