diff --git a/lib/manager/common.ts b/lib/manager/common.ts
index 9f8cffb77a0ce567a9478f5150009785f1dc0dc4..b706a309b03de430fd3d5faaf5b099253963f336 100644
--- a/lib/manager/common.ts
+++ b/lib/manager/common.ts
@@ -227,6 +227,10 @@ export interface UpdateDependencyConfig<T = Record<string, any>> {
   upgrade: Upgrade<T>;
 }
 
+export interface BumpPackageVersionResult {
+  bumpedContent: string | null;
+}
+
 export interface ManagerApi {
   defaultConfig: Record<string, unknown>;
   language?: string;
@@ -236,7 +240,7 @@ export interface ManagerApi {
     content: string,
     currentValue: string,
     bumpVersion: ReleaseType | string
-  ): Result<string | null>;
+  ): Result<BumpPackageVersionResult>;
 
   extractAllPackageFiles?(
     config: ExtractConfig,
diff --git a/lib/manager/helmv3/update.spec.ts b/lib/manager/helmv3/update.spec.ts
index 31a892206877c7bf3c4808594a45a6533522ae41..ca713a51ee5edf658e6bf65f3cc7e050d096d2f9 100644
--- a/lib/manager/helmv3/update.spec.ts
+++ b/lib/manager/helmv3/update.spec.ts
@@ -9,26 +9,38 @@ describe('lib/manager/helmv3/update', () => {
       version: '0.0.2',
     });
     it('increments', () => {
-      const res = helmv3Updater.bumpPackageVersion(content, '0.0.2', 'patch');
-      expect(res).toMatchSnapshot();
-      expect(res).not.toEqual(content);
+      const { bumpedContent } = helmv3Updater.bumpPackageVersion(
+        content,
+        '0.0.2',
+        'patch'
+      );
+      expect(bumpedContent).toMatchSnapshot();
+      expect(bumpedContent).not.toEqual(content);
     });
     it('no ops', () => {
-      const res = helmv3Updater.bumpPackageVersion(content, '0.0.1', 'patch');
-      expect(res).toEqual(content);
+      const { bumpedContent } = helmv3Updater.bumpPackageVersion(
+        content,
+        '0.0.1',
+        'patch'
+      );
+      expect(bumpedContent).toEqual(content);
     });
     it('updates', () => {
-      const res = helmv3Updater.bumpPackageVersion(content, '0.0.1', 'minor');
-      expect(res).toMatchSnapshot();
-      expect(res).not.toEqual(content);
+      const { bumpedContent } = helmv3Updater.bumpPackageVersion(
+        content,
+        '0.0.1',
+        'minor'
+      );
+      expect(bumpedContent).toMatchSnapshot();
+      expect(bumpedContent).not.toEqual(content);
     });
     it('returns content if bumping errors', () => {
-      const res = helmv3Updater.bumpPackageVersion(
+      const { bumpedContent } = helmv3Updater.bumpPackageVersion(
         content,
         '0.0.2',
         true as any
       );
-      expect(res).toEqual(content);
+      expect(bumpedContent).toEqual(content);
     });
   });
 });
diff --git a/lib/manager/helmv3/update.ts b/lib/manager/helmv3/update.ts
index f95a13b87df65ad22ddd9dacc812ff470a3672ad..42f87bbbb6d4de6f523cbe690af9d70ab314041d 100644
--- a/lib/manager/helmv3/update.ts
+++ b/lib/manager/helmv3/update.ts
@@ -1,23 +1,25 @@
 import { ReleaseType, inc } from 'semver';
 import { logger } from '../../logger';
+import { BumpPackageVersionResult } from '../common';
 
 export function bumpPackageVersion(
   content: string,
   currentValue: string,
   bumpVersion: ReleaseType | string
-): string {
+): BumpPackageVersionResult {
   logger.debug(
     { bumpVersion, currentValue },
     'Checking if we should bump Chart.yaml version'
   );
   let newChartVersion: string;
+  let bumpedContent = content;
   try {
     newChartVersion = inc(currentValue, bumpVersion as ReleaseType);
     if (!newChartVersion) {
       throw new Error('semver inc failed');
     }
     logger.debug({ newChartVersion });
-    const bumpedContent = content.replace(
+    bumpedContent = content.replace(
       /^(version:\s*).*$/m,
       `$1${newChartVersion}`
     );
@@ -26,7 +28,6 @@ export function bumpPackageVersion(
     } else {
       logger.debug('Bumped Chart.yaml version');
     }
-    return bumpedContent;
   } catch (err) {
     logger.warn(
       {
@@ -36,6 +37,6 @@ export function bumpPackageVersion(
       },
       'Failed to bumpVersion'
     );
-    return content;
   }
+  return { bumpedContent };
 }
diff --git a/lib/manager/npm/update.spec.ts b/lib/manager/npm/update.spec.ts
index aebc3944e7c094242a1674f9480c6bc5ea7b460e..9611d0c713d8c7785172753900c505d92bea4504 100644
--- a/lib/manager/npm/update.spec.ts
+++ b/lib/manager/npm/update.spec.ts
@@ -207,31 +207,47 @@ describe('workers/branch/package-json', () => {
       dependencies: { chalk: '2.4.2' },
     });
     it('mirrors', () => {
-      const res = npmUpdater.bumpPackageVersion(
+      const { bumpedContent } = npmUpdater.bumpPackageVersion(
         content,
         '0.0.2',
         'mirror:chalk'
       );
-      expect(res).toMatchSnapshot();
-      expect(res).not.toEqual(content);
+      expect(bumpedContent).toMatchSnapshot();
+      expect(bumpedContent).not.toEqual(content);
     });
     it('aborts mirror', () => {
-      const res = npmUpdater.bumpPackageVersion(content, '0.0.2', 'mirror:a');
-      expect(res).toEqual(content);
+      const { bumpedContent } = npmUpdater.bumpPackageVersion(
+        content,
+        '0.0.2',
+        'mirror:a'
+      );
+      expect(bumpedContent).toEqual(content);
     });
     it('increments', () => {
-      const res = npmUpdater.bumpPackageVersion(content, '0.0.2', 'patch');
-      expect(res).toMatchSnapshot();
-      expect(res).not.toEqual(content);
+      const { bumpedContent } = npmUpdater.bumpPackageVersion(
+        content,
+        '0.0.2',
+        'patch'
+      );
+      expect(bumpedContent).toMatchSnapshot();
+      expect(bumpedContent).not.toEqual(content);
     });
     it('no ops', () => {
-      const res = npmUpdater.bumpPackageVersion(content, '0.0.1', 'patch');
-      expect(res).toEqual(content);
+      const { bumpedContent } = npmUpdater.bumpPackageVersion(
+        content,
+        '0.0.1',
+        'patch'
+      );
+      expect(bumpedContent).toEqual(content);
     });
     it('updates', () => {
-      const res = npmUpdater.bumpPackageVersion(content, '0.0.1', 'minor');
-      expect(res).toMatchSnapshot();
-      expect(res).not.toEqual(content);
+      const { bumpedContent } = npmUpdater.bumpPackageVersion(
+        content,
+        '0.0.1',
+        'minor'
+      );
+      expect(bumpedContent).toMatchSnapshot();
+      expect(bumpedContent).not.toEqual(content);
     });
     it('returns content if bumping errors', async () => {
       jest.mock('semver', () => ({
@@ -240,8 +256,12 @@ describe('workers/branch/package-json', () => {
         },
       }));
       const npmUpdater1 = await import('./update');
-      const res = npmUpdater1.bumpPackageVersion(content, '0.0.2', true as any);
-      expect(res).toEqual(content);
+      const { bumpedContent } = npmUpdater1.bumpPackageVersion(
+        content,
+        '0.0.2',
+        true as any
+      );
+      expect(bumpedContent).toEqual(content);
     });
   });
 });
diff --git a/lib/manager/npm/update.ts b/lib/manager/npm/update.ts
index c13903ae58c9505b6edcbb84cc251159bbea7434..1852ed981cc275b81b1644e0d9cd79f999191d54 100644
--- a/lib/manager/npm/update.ts
+++ b/lib/manager/npm/update.ts
@@ -2,18 +2,19 @@ import equal from 'fast-deep-equal';
 import { ReleaseType, inc } from 'semver';
 import { logger } from '../../logger';
 import { matchAt, replaceAt } from '../../util/string';
-import { UpdateDependencyConfig } from '../common';
+import { BumpPackageVersionResult, UpdateDependencyConfig } from '../common';
 
 export function bumpPackageVersion(
   content: string,
   currentValue: string,
   bumpVersion: ReleaseType | string
-): string {
+): BumpPackageVersionResult {
   logger.debug(
     { bumpVersion, currentValue },
     'Checking if we should bump package.json version'
   );
   let newPjVersion: string;
+  let bumpedContent = content;
   try {
     if (bumpVersion.startsWith('mirror:')) {
       const mirrorPackage = bumpVersion.replace('mirror:', '');
@@ -25,13 +26,13 @@ export function bumpPackageVersion(
         (parsedContent.peerDependencies || {})[mirrorPackage];
       if (!newPjVersion) {
         logger.warn('bumpVersion mirror package not found: ' + mirrorPackage);
-        return content;
+        return { bumpedContent };
       }
     } else {
       newPjVersion = inc(currentValue, bumpVersion as ReleaseType);
     }
     logger.debug({ newPjVersion });
-    const bumpedContent = content.replace(
+    bumpedContent = content.replace(
       /("version":\s*")[^"]*/,
       `$1${newPjVersion}`
     );
@@ -40,7 +41,6 @@ export function bumpPackageVersion(
     } else {
       logger.debug('Bumped package.json version');
     }
-    return bumpedContent;
   } catch (err) {
     logger.warn(
       {
@@ -50,8 +50,8 @@ export function bumpPackageVersion(
       },
       'Failed to bumpVersion'
     );
-    return content;
   }
+  return { bumpedContent };
 }
 
 export function updateDependency({
diff --git a/lib/workers/branch/get-updated.spec.ts b/lib/workers/branch/get-updated.spec.ts
index baafc2c8d51eaf467e669d98dc3db11641fdb443..dd260a02b19e24fe4b44eea10e60c339460ade9a 100644
--- a/lib/workers/branch/get-updated.spec.ts
+++ b/lib/workers/branch/get-updated.spec.ts
@@ -179,7 +179,7 @@ describe('workers/branch/get-updated', () => {
         manager: 'npm',
       });
       npm.updateDependency.mockReturnValue('old version');
-      npm.bumpPackageVersion.mockReturnValue('new version');
+      npm.bumpPackageVersion.mockReturnValue({ bumpedContent: 'new version' });
       const res = await getUpdatedPackageFiles(config);
       expect(res).toMatchSnapshot();
     });
@@ -190,7 +190,9 @@ describe('workers/branch/get-updated', () => {
         manager: 'helmv3',
       });
       autoReplace.doAutoReplace.mockResolvedValueOnce('version: 0.0.1');
-      helmv3.bumpPackageVersion.mockReturnValue('version: 0.0.2');
+      helmv3.bumpPackageVersion.mockReturnValue({
+        bumpedContent: 'version: 0.0.2',
+      });
       const res = await getUpdatedPackageFiles(config);
       expect(res).toMatchSnapshot();
     });
diff --git a/lib/workers/branch/get-updated.ts b/lib/workers/branch/get-updated.ts
index 89248a98c48d077ba7045b348783c4934775b202..0069ae883a0e0bbf81ed286ab24183fb270f31b6 100644
--- a/lib/workers/branch/get-updated.ts
+++ b/lib/workers/branch/get-updated.ts
@@ -66,11 +66,12 @@ export async function getUpdatedPackageFiles(
         );
         if (res) {
           if (bumpPackageVersion && upgrade.bumpVersion) {
-            res = await bumpPackageVersion(
+            const { bumpedContent } = await bumpPackageVersion(
               res,
               upgrade.packageFileVersion,
               upgrade.bumpVersion
             );
+            res = bumpedContent;
           }
           if (res === existingContent) {
             logger.debug({ packageFile, depName }, 'No content changed');
@@ -97,11 +98,12 @@ export async function getUpdatedPackageFiles(
         upgrade,
       });
       if (bumpPackageVersion && upgrade.bumpVersion) {
-        newContent = await bumpPackageVersion(
+        const { bumpedContent } = await bumpPackageVersion(
           newContent,
           upgrade.packageFileVersion,
           upgrade.bumpVersion
         );
+        newContent = bumpedContent;
       }
       if (!newContent) {
         if (config.reuseExistingBranch) {