diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts
index ecce455412db6a37b05c6c4345cd00ed1d3bb387..8ec13a53de53546312a32ec1b2a3454cedf1ec7b 100644
--- a/lib/workers/repository/index.ts
+++ b/lib/workers/repository/index.ts
@@ -25,7 +25,8 @@ try {
 
 // istanbul ignore next
 export async function renovateRepository(
-  repoConfig: RenovateConfig
+  repoConfig: RenovateConfig,
+  canRetry = true
 ): Promise<ProcessResult> {
   splitInit();
   let config = setAdminConfig(repoConfig);
@@ -47,7 +48,14 @@ export async function renovateRepository(
     const res = await updateRepo(config, branches);
     addSplit('update');
     await setBranchCache(branches);
-    if (res !== 'automerged') {
+    if (res === 'automerged') {
+      if (canRetry) {
+        logger.info('Renovating repository again after automerge result');
+        const recursiveRes = await renovateRepository(repoConfig, false);
+        return recursiveRes;
+      }
+      logger.debug(`Automerged but already retried once`);
+    } else {
       await ensureMasterIssue(config, branches);
     }
     await finaliseRepo(config, branchList);