diff --git a/lib/config/common.ts b/lib/config/common.ts
index 2d17cb5fc12a2bcb3112c79a24aa31fa7d7a7332..67bfff2fc91e2ca28b5da6b5d5406f4fd10d254a 100644
--- a/lib/config/common.ts
+++ b/lib/config/common.ts
@@ -122,7 +122,7 @@ export interface RenovateConfig
   baseBranches?: string[];
   baseBranch?: string;
   branchList?: string[];
-  description?: string[];
+  description?: string | string[];
 
   errors?: ValidationMessage[];
   extends?: string[];
diff --git a/lib/workers/repository/onboarding/pr/config-description.ts b/lib/workers/repository/onboarding/pr/config-description.ts
index e306a8109e1487c7757208f3d8daba6dec0ff714..cec0baed03e3919e3d602ccd6a0679d9d6d48fdd 100644
--- a/lib/workers/repository/onboarding/pr/config-description.ts
+++ b/lib/workers/repository/onboarding/pr/config-description.ts
@@ -1,3 +1,4 @@
+import is from '@sindresorhus/is/dist';
 import { emojify } from '../../../../util/emoji';
 import { logger } from '../../../../logger';
 import { configFileNames } from '../../../../config/app-strings';
@@ -24,7 +25,8 @@ export function getScheduleDesc(config: RenovateConfig): string[] {
 function getDescriptionArray(config: RenovateConfig): string[] {
   logger.debug('getDescriptionArray()');
   logger.trace({ config });
-  return (config.description || []).concat(getScheduleDesc(config));
+  const desc = is.nonEmptyArray(config.description) ? config.description : [];
+  return desc.concat(getScheduleDesc(config));
 }
 
 export function getConfigDesc(