diff --git a/lib/platform/github/index.js b/lib/platform/github/index.js
index <HASH>..<HASH> 100644
--- a/lib/platform/github/index.js
+++ b/lib/platform/github/index.js
@@ -1005,8 +1005,18 @@ async function createBranch(branchName, sha) {
   if (config.forkToken) {
     options.token = config.forkToken;
   }
-  await get.post(`repos/${config.repository}/git/refs`, options);
-  config.branchList.push(branchName);
+  try {
+    config.branchList.push(branchName);
+    await get.post(`repos/${config.repository}/git/refs`, options);
+  } catch (err) /* istanbul ignore next */ {
+    if (err.statusCode === 422) {
+      logger.warn('Branch already existed? Attempting update instead');
+      await updateBranch(branchName, sha);
+    } else {
+      logger.debug('Unknown error creating branch');
+      throw err;
+    }
+  }
 }
 
 // Internal: Updates an existing branch to new commit sha
fix: catch errors creating branches and try update instead (github)