diff --git a/lib/config/index.js b/lib/config/index.js
index 72085ab93469ae6522e1433c4e531aefdaa3a8b9..623258da4459441bf5359f7de18b8b285beee191 100644
--- a/lib/config/index.js
+++ b/lib/config/index.js
@@ -113,6 +113,9 @@ async function parseConfigs(env, argv) {
 
 function mergeChildConfig(parentConfig, childConfig) {
   logger.trace({ parentConfig, childConfig }, `mergeChildConfig`);
+  if (!childConfig) {
+    return parentConfig;
+  }
   const config = { ...parentConfig, ...childConfig };
   for (const option of definitions.getOptions()) {
     if (
diff --git a/test/config/index.spec.js b/test/config/index.spec.js
index d432a21b96bd14eb3129ef2481a110acbc660ee4..8d91482c9c5cb6ebce0c599477489865efe49678 100644
--- a/test/config/index.spec.js
+++ b/test/config/index.spec.js
@@ -209,5 +209,11 @@ describe('config/index', () => {
       const config = configParser.mergeChildConfig(parentConfig, {});
       expect(config.packageRules).toHaveLength(2);
     });
+    it('handles undefined childConfig', () => {
+      const parentConfig = { ...defaultConfig };
+      const configParser = require('../../lib/config/index.js');
+      const config = configParser.mergeChildConfig(parentConfig, undefined);
+      expect(config).toMatchObject(parentConfig);
+    });
   });
 });