diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js
index 660b1a26e63475781fa7ca66a0933e39cf027c0a..d646012dd578ebc9288e68113be31a08ce5d6a85 100644
--- a/lib/workers/repository/error.js
+++ b/lib/workers/repository/error.js
@@ -120,6 +120,16 @@ async function handleError(config, err) {
     delete config.branchList; // eslint-disable-line no-param-reassign
     return err.message;
   }
+  if (
+    err.message.includes('unable to access') &&
+    err.message.includes('The requested URL returned error: 5')
+  ) {
+    logger.debug({ err }, 'git 5xx error');
+    logger.warn('Git error - aborting');
+    delete config.branchList; // eslint-disable-line no-param-reassign
+    // rewrite this error
+    return 'platform-failure';
+  }
   // Swallow this error so that other repositories can be processed
   logger.error({ err }, `Repository has unknown error`);
   // delete branchList to avoid cleaning up branches
diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js
index 316f55ec2ff9961c7e6fbe247c06b7d9341b8f58..24f0b56a649598797e3cbfce0b9bd4411caf74da 100644
--- a/test/workers/repository/error.spec.js
+++ b/test/workers/repository/error.spec.js
@@ -41,6 +41,13 @@ describe('workers/repository/error', () => {
         expect(res).toEqual(err);
       });
     });
+    it('rewrites git error', async () => {
+      const gitError = new Error(
+        "fatal: unable to access 'https://**redacted**@gitlab.com/learnox/learnox.git/': The requested URL returned error: 500\n"
+      );
+      const res = await handleError(config, gitError);
+      expect(res).toEqual('platform-failure');
+    });
     it('handles unknown error', async () => {
       const res = await handleError(config, new Error('abcdefg'));
       expect(res).toEqual('unknown-error');