diff --git a/lib/config/templates/default/pr-body.hbs b/lib/config/templates/default/pr-body.hbs
index 92971dffb1c9461bef01c92b511d5ee4ab52b327..ff1571cdcddeb6dc9286d5c8780a2c828f92d8f3 100644
--- a/lib/config/templates/default/pr-body.hbs
+++ b/lib/config/templates/default/pr-body.hbs
@@ -15,6 +15,33 @@ This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request updates dependency [{{depN
 
 </details>
 {{/if}}
-<br />
+
+{{#if hasErrors}}
+
+---
+
+### Errors
+
+Renovate encountered some errors when processing your repository, so you are being notified here even if they do not directly apply to this PR.
+
+{{#each errors as |error|}}
+-   `{{error.depName}}`: {{error.message}}
+{{/each}}
+{{/if}}
+
+{{#if hasWarnings}}
+
+---
+
+### Warnings
+
+Please make sure the following warnings are safe to ignore:
+
+{{#each warnings as |warning|}}
+-   `{{warning.depName}}`: {{warning.message}}
+{{/each}}
+{{/if}}
+
+---
 
 This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).
diff --git a/lib/config/templates/group/pr-body.hbs b/lib/config/templates/group/pr-body.hbs
index 5097c99c400048b86e3b0029d0852f609d9049f7..766b35a328f6bbdc99f6fba95cfacd6809a37357 100644
--- a/lib/config/templates/group/pr-body.hbs
+++ b/lib/config/templates/group/pr-body.hbs
@@ -25,4 +25,30 @@ This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package grou
 {{/unless}}
 <br />
 
+---
+
+### Errors
+
+Renovate encountered some errors when processing your repository, so you are being notified here even if they do not directly apply to this PR.
+
+{{#each errors as |error|}}
+-   `{{error.depName}}`: {{error.message}}
+{{/each}}
+{{/if}}
+
+{{#if hasWarnings}}
+
+---
+
+### Warnings
+
+Please make sure the following warnings are safe to ignore:
+
+{{#each warnings as |warning|}}
+-   `{{warning.depName}}`: {{warning.message}}
+{{/each}}
+{{/if}}
+
+---
+
 This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).
diff --git a/lib/workers/branch/index.js b/lib/workers/branch/index.js
index b34b37bd3d5acb09670aa631ed7016ac230872a7..02c97d3de9b6ddac14bbf32e97d227602364f95f 100644
--- a/lib/workers/branch/index.js
+++ b/lib/workers/branch/index.js
@@ -224,7 +224,7 @@ async function generateConfig(branchUpgrades) {
   return Object.assign(config, config.upgrades[0]);
 }
 
-async function processBranchUpgrades(branchUpgrades) {
+async function processBranchUpgrades(branchUpgrades, errors, warnings) {
   logger.trace({ config: branchUpgrades }, 'processBranchUpgrades');
   const config = await module.exports.generateConfig(branchUpgrades);
   logger.trace({ config }, 'generateConfig');
@@ -259,7 +259,12 @@ async function processBranchUpgrades(branchUpgrades) {
     }
     const branchCreated = await module.exports.ensureBranch(config);
     if (branchCreated) {
-      const pr = await prWorker.ensurePr(config.upgrades, logger);
+      const pr = await prWorker.ensurePr(
+        config.upgrades,
+        logger,
+        errors,
+        warnings
+      );
       if (pr) {
         await prWorker.checkAutoMerge(pr, config, logger);
       }
diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index b35913529023d27d9c15305eaf021953285c009e..3bad4d5a848640407a183b3a3fda4e8bc183036e 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -11,7 +11,7 @@ module.exports = {
 };
 
 // Ensures that PR exists with matching title/body
-async function ensurePr(upgrades, logger) {
+async function ensurePr(upgrades, logger, errors, warnings) {
   logger.trace({ config: upgrades }, 'ensurePr');
   // If there is a group, it will use the config of the first upgrade in the array
   const config = Object.assign({}, upgrades[0]);
@@ -96,6 +96,14 @@ async function ensurePr(upgrades, logger) {
 
   // Update the config object
   Object.assign(config, upgrades[0]);
+  if (errors && errors.length) {
+    config.hasErrors = true;
+    config.errors = errors;
+  }
+  if (warnings && warnings.length) {
+    config.hasWarnings = true;
+    config.warnings = warnings;
+  }
 
   const prTitle = handlebars.compile(config.prTitle)(config);
   const prBodyMarkdown = handlebars.compile(config.prBody)(config);
diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.js
index f5854ce6a6de5abf7326cfa6eaf5460fc1b37417..0f2671ed4563c489542ec213f2466fd81c268ce4 100644
--- a/lib/workers/repository/index.js
+++ b/lib/workers/repository/index.js
@@ -50,7 +50,11 @@ async function renovateRepository(packageFileConfig) {
     );
     if (config.repoIsOnboarded) {
       for (const branchName of Object.keys(branchUpgrades)) {
-        await branchWorker.processBranchUpgrades(branchUpgrades[branchName]);
+        await branchWorker.processBranchUpgrades(
+          branchUpgrades[branchName],
+          res.errors,
+          res.warnings
+        );
       }
     } else {
       await onboarding.ensurePr(config, res);
diff --git a/test/workers/branch/__snapshots__/index.spec.js.snap b/test/workers/branch/__snapshots__/index.spec.js.snap
index b968d6c5247127a7e7a6acebf2d9a877fee69c4b..61d37a092e30d350b49c5656402d8cc4cf25713e 100644
--- a/test/workers/branch/__snapshots__/index.spec.js.snap
+++ b/test/workers/branch/__snapshots__/index.spec.js.snap
@@ -41,293 +41,3 @@ Object {
   ],
 }
 `;
-
-exports[`workers/branch generateConfig(branchUpgrades) uses group settings 1`] = `
-Object {
-  "assignees": Array [],
-  "autodiscover": false,
-  "automerge": "none",
-  "automergeType": "pr",
-  "branchName": "some-group-branchname",
-  "commitMessage": "{{semanticPrefix}}Renovate {{groupName}} packages",
-  "depTypes": Array [
-    Object {
-      "depType": "dependencies",
-      "semanticPrefix": "fix: ",
-    },
-    "devDependencies",
-    "optionalDependencies",
-  ],
-  "enabled": true,
-  "endpoint": null,
-  "githubAppId": undefined,
-  "githubAppKey": null,
-  "groupName": "some-group",
-  "groupSlug": null,
-  "ignoreDeps": Array [],
-  "ignoreFuture": true,
-  "ignoreUnstable": true,
-  "labels": Array [],
-  "lazyGrouping": true,
-  "lockFileMaintenance": Object {
-    "branchName": "renovate/lock-files",
-    "commitMessage": "{{semanticPrefix}}Update lock file",
-    "enabled": true,
-    "prBody": "This PR regenerates lock files to keep them up-to-date.",
-    "prTitle": "{{semanticPrefix}}Lock file maintenance",
-    "recreateClosed": true,
-    "schedule": "before 5am on monday",
-  },
-  "logFile": null,
-  "logFileLevel": "debug",
-  "logLevel": "info",
-  "logger": Object {
-    "child": [Function],
-    "debug": [Function],
-    "error": [Function],
-    "fatal": [Function],
-    "info": [Function],
-    "trace": [Function],
-    "warn": [Function],
-  },
-  "onboarding": true,
-  "packageFiles": Array [],
-  "packages": Array [],
-  "pinVersions": true,
-  "platform": "github",
-  "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package group \\"{{groupName}}\\".
-
-{{#each upgrades as |upgrade|}}
--   [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\`
-{{/each}}
-
-{{#unless isPin}}
-### Commits
-
-{{#each upgrades as |upgrade|}}
-{{#if upgrade.releases.length}}
-<details>
-<summary>{{upgrade.githubName}}</summary>
-{{#each upgrade.releases as |release|}}
-
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}){{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-{{/each}}
-{{/unless}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-  "prCreation": "immediate",
-  "prTitle": "{{semanticPrefix}}Renovate {{groupName}} packages",
-  "rebaseStalePrs": false,
-  "recreateClosed": true,
-  "repositories": Array [],
-  "respectLatest": true,
-  "reviewers": Array [],
-  "schedule": Array [],
-  "semanticCommits": false,
-  "semanticPrefix": "chore: ",
-  "separateMajorReleases": true,
-  "timezone": null,
-  "token": null,
-  "upgrades": Array [
-    Object {
-      "assignees": Array [],
-      "autodiscover": false,
-      "automerge": "none",
-      "automergeType": "pr",
-      "branchName": "some-group-branchname",
-      "commitMessage": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "depTypes": Array [
-        Object {
-          "depType": "dependencies",
-          "semanticPrefix": "fix: ",
-        },
-        "devDependencies",
-        "optionalDependencies",
-      ],
-      "enabled": true,
-      "endpoint": null,
-      "githubAppId": undefined,
-      "githubAppKey": null,
-      "groupName": "some-group",
-      "groupSlug": null,
-      "ignoreDeps": Array [],
-      "ignoreFuture": true,
-      "ignoreUnstable": true,
-      "labels": Array [],
-      "lazyGrouping": true,
-      "lockFileMaintenance": Object {
-        "branchName": "renovate/lock-files",
-        "commitMessage": "{{semanticPrefix}}Update lock file",
-        "enabled": true,
-        "prBody": "This PR regenerates lock files to keep them up-to-date.",
-        "prTitle": "{{semanticPrefix}}Lock file maintenance",
-        "recreateClosed": true,
-        "schedule": "before 5am on monday",
-      },
-      "logFile": null,
-      "logFileLevel": "debug",
-      "logLevel": "info",
-      "logger": Object {
-        "child": [Function],
-        "debug": [Function],
-        "error": [Function],
-        "fatal": [Function],
-        "info": [Function],
-        "trace": [Function],
-        "warn": [Function],
-      },
-      "onboarding": true,
-      "packageFiles": Array [],
-      "packages": Array [],
-      "pinVersions": true,
-      "platform": "github",
-      "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package group \\"{{groupName}}\\".
-
-{{#each upgrades as |upgrade|}}
--   [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\`
-{{/each}}
-
-{{#unless isPin}}
-### Commits
-
-{{#each upgrades as |upgrade|}}
-{{#if upgrade.releases.length}}
-<details>
-<summary>{{upgrade.githubName}}</summary>
-{{#each upgrade.releases as |release|}}
-
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}){{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-{{/each}}
-{{/unless}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-      "prCreation": "immediate",
-      "prTitle": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "rebaseStalePrs": false,
-      "recreateClosed": true,
-      "repositories": Array [],
-      "respectLatest": true,
-      "reviewers": Array [],
-      "schedule": Array [],
-      "semanticCommits": false,
-      "semanticPrefix": "chore: ",
-      "separateMajorReleases": true,
-      "timezone": null,
-      "token": null,
-      "yarnCacheFolder": "/tmp/yarn-cache",
-    },
-    Object {
-      "assignees": Array [],
-      "autodiscover": false,
-      "automerge": "none",
-      "automergeType": "pr",
-      "branchName": "some-group-branchname",
-      "commitMessage": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "depTypes": Array [
-        Object {
-          "depType": "dependencies",
-          "semanticPrefix": "fix: ",
-        },
-        "devDependencies",
-        "optionalDependencies",
-      ],
-      "enabled": true,
-      "endpoint": null,
-      "githubAppId": undefined,
-      "githubAppKey": null,
-      "groupName": "some-group",
-      "groupSlug": null,
-      "ignoreDeps": Array [],
-      "ignoreFuture": true,
-      "ignoreUnstable": true,
-      "labels": Array [],
-      "lazyGrouping": true,
-      "lockFileMaintenance": Object {
-        "branchName": "renovate/lock-files",
-        "commitMessage": "{{semanticPrefix}}Update lock file",
-        "enabled": true,
-        "prBody": "This PR regenerates lock files to keep them up-to-date.",
-        "prTitle": "{{semanticPrefix}}Lock file maintenance",
-        "recreateClosed": true,
-        "schedule": "before 5am on monday",
-      },
-      "logFile": null,
-      "logFileLevel": "debug",
-      "logLevel": "info",
-      "logger": Object {
-        "child": [Function],
-        "debug": [Function],
-        "error": [Function],
-        "fatal": [Function],
-        "info": [Function],
-        "trace": [Function],
-        "warn": [Function],
-      },
-      "onboarding": true,
-      "packageFiles": Array [],
-      "packages": Array [],
-      "pinVersions": true,
-      "platform": "github",
-      "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package group \\"{{groupName}}\\".
-
-{{#each upgrades as |upgrade|}}
--   [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\`
-{{/each}}
-
-{{#unless isPin}}
-### Commits
-
-{{#each upgrades as |upgrade|}}
-{{#if upgrade.releases.length}}
-<details>
-<summary>{{upgrade.githubName}}</summary>
-{{#each upgrade.releases as |release|}}
-
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}){{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-{{/each}}
-{{/unless}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-      "prCreation": "immediate",
-      "prTitle": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "rebaseStalePrs": false,
-      "recreateClosed": true,
-      "repositories": Array [],
-      "respectLatest": true,
-      "reviewers": Array [],
-      "schedule": Array [],
-      "semanticCommits": false,
-      "semanticPrefix": "chore: ",
-      "separateMajorReleases": true,
-      "timezone": null,
-      "token": null,
-      "yarnCacheFolder": "/tmp/yarn-cache",
-    },
-  ],
-  "yarnCacheFolder": "/tmp/yarn-cache",
-}
-`;
diff --git a/test/workers/branch/index.spec.js b/test/workers/branch/index.spec.js
index 8dfaadc457ad4cf992776f5181c1251d8fed712b..f2eb5506a70002621ccc500608245150516f1b64 100644
--- a/test/workers/branch/index.spec.js
+++ b/test/workers/branch/index.spec.js
@@ -382,7 +382,6 @@ describe('workers/branch', () => {
       config.group.branchName = 'some-group-branchname';
       const branchUpgrades = [config, config];
       const res = await branchWorker.generateConfig(branchUpgrades);
-      expect(res).toMatchSnapshot();
       expect(res.branchName).toEqual(config.group.branchName);
     });
   });
diff --git a/test/workers/package/__snapshots__/index.spec.js.snap b/test/workers/package/__snapshots__/index.spec.js.snap
index 28ae93077fee838cc877179cab2396730e2c0a05..7c7e3242ee49867c6d0041b6b43002c78883514f 100644
--- a/test/workers/package/__snapshots__/index.spec.js.snap
+++ b/test/workers/package/__snapshots__/index.spec.js.snap
@@ -24,165 +24,3 @@ Array [
   "repositoryUrl",
 ]
 `;
-
-exports[`lib/workers/package/index findUpgrades(config) returns error if no npm dep found 1`] = `
-Array [
-  Object {
-    "assignees": Array [],
-    "automerge": "none",
-    "automergeType": "pr",
-    "branchName": "renovate/{{depName}}-{{newVersionMajor}}.x",
-    "commitMessage": "{{semanticPrefix}}Update dependency {{depName}} to version {{newVersion}}",
-    "depName": "foo",
-    "group": Object {
-      "branchName": "renovate/{{groupSlug}}",
-      "commitMessage": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package group \\"{{groupName}}\\".
-
-{{#each upgrades as |upgrade|}}
--   [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\`
-{{/each}}
-
-{{#unless isPin}}
-### Commits
-
-{{#each upgrades as |upgrade|}}
-{{#if upgrade.releases.length}}
-<details>
-<summary>{{upgrade.githubName}}</summary>
-{{#each upgrade.releases as |release|}}
-
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}){{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-{{/each}}
-{{/unless}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-      "prTitle": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "recreateClosed": true,
-    },
-    "groupName": null,
-    "groupSlug": null,
-    "labels": Array [],
-    "lazyGrouping": true,
-    "message": "Failed to look up dependency",
-    "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request updates dependency [{{depName}}]({{repositoryUrl}}) from version \`{{currentVersion}}\` to \`{{newVersion}}\`
-{{#if releases.length}}
-
-### Commits
-
-<details>
-<summary>{{githubName}}</summary>
-
-{{#each releases as |release|}}
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}) {{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-    "prCreation": "immediate",
-    "prTitle": "{{semanticPrefix}}{{#if isPin}}Pin{{else}}Update{{/if}} dependency {{depName}} to version {{#if isRange}}{{newVersion}}{{else}}{{#if isMajor}}{{newVersionMajor}}.x{{else}}{{newVersion}}{{/if}}{{/if}}",
-    "rebaseStalePrs": false,
-    "recreateClosed": false,
-    "repositoryUrl": "",
-    "reviewers": Array [],
-    "semanticCommits": false,
-    "semanticPrefix": "chore: ",
-    "upgradeType": "error",
-  },
-]
-`;
-
-exports[`lib/workers/package/index findUpgrades(config) returns warning if warning found 1`] = `
-Array [
-  Object {
-    "assignees": Array [],
-    "automerge": "none",
-    "automergeType": "pr",
-    "branchName": "renovate/{{depName}}-{{newVersionMajor}}.x",
-    "commitMessage": "{{semanticPrefix}}Update dependency {{depName}} to version {{newVersion}}",
-    "depName": "foo",
-    "group": Object {
-      "branchName": "renovate/{{groupSlug}}",
-      "commitMessage": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package group \\"{{groupName}}\\".
-
-{{#each upgrades as |upgrade|}}
--   [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\`
-{{/each}}
-
-{{#unless isPin}}
-### Commits
-
-{{#each upgrades as |upgrade|}}
-{{#if upgrade.releases.length}}
-<details>
-<summary>{{upgrade.githubName}}</summary>
-{{#each upgrade.releases as |release|}}
-
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}){{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-{{/each}}
-{{/unless}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-      "prTitle": "{{semanticPrefix}}Renovate {{groupName}} packages",
-      "recreateClosed": true,
-    },
-    "groupName": null,
-    "groupSlug": null,
-    "labels": Array [],
-    "lazyGrouping": true,
-    "message": "bad version",
-    "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request updates dependency [{{depName}}]({{repositoryUrl}}) from version \`{{currentVersion}}\` to \`{{newVersion}}\`
-{{#if releases.length}}
-
-### Commits
-
-<details>
-<summary>{{githubName}}</summary>
-
-{{#each releases as |release|}}
-#### {{release.version}}
-{{#each release.commits as |commit|}}
--   [\`{{commit.shortSha}}\`]({{commit.url}}) {{commit.message}}
-{{/each}}
-{{/each}}
-
-</details>
-{{/if}}
-<br />
-
-This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://keylocation.sg/our-tech/renovate).",
-    "prCreation": "immediate",
-    "prTitle": "{{semanticPrefix}}{{#if isPin}}Pin{{else}}Update{{/if}} dependency {{depName}} to version {{#if isRange}}{{newVersion}}{{else}}{{#if isMajor}}{{newVersionMajor}}.x{{else}}{{newVersion}}{{/if}}{{/if}}",
-    "rebaseStalePrs": false,
-    "recreateClosed": false,
-    "repositoryUrl": undefined,
-    "reviewers": Array [],
-    "semanticCommits": false,
-    "semanticPrefix": "chore: ",
-    "upgradeType": "warning",
-  },
-]
-`;
diff --git a/test/workers/package/index.spec.js b/test/workers/package/index.spec.js
index fafbe18f4c13fca94724aca9ce46609aeaa6760e..f01f6c4e044062b713ecd134c3ce91970f9bd0a2 100644
--- a/test/workers/package/index.spec.js
+++ b/test/workers/package/index.spec.js
@@ -32,8 +32,8 @@ describe('lib/workers/package/index', () => {
       config.schedule = 'some schedule';
       schedule.isScheduledNow.mockReturnValueOnce(true);
       const res = await pkgWorker.findUpgrades(config);
+      expect(res).toHaveLength(1);
       expect(res[0].upgradeType).toEqual('error');
-      expect(res).toMatchSnapshot();
       expect(npmApi.getDependency.mock.calls.length).toBe(1);
     });
     it('returns warning if warning found', async () => {
@@ -45,7 +45,7 @@ describe('lib/workers/package/index', () => {
         },
       ]);
       const res = await pkgWorker.findUpgrades(config);
-      expect(res).toMatchSnapshot();
+      expect(res[0].upgradeType).toEqual('warning');
     });
     it('returns array if upgrades found', async () => {
       npmApi.getDependency.mockReturnValueOnce({});
diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js
index fc1d6ad1c2f52943e3cf4469d68c5a2f40c91f47..e8a515674a5cb217bdfda52a89cbd542016bd19e 100644
--- a/test/workers/pr/index.spec.js
+++ b/test/workers/pr/index.spec.js
@@ -95,8 +95,8 @@ describe('workers/pr', () => {
 <ul>
 <li><a href="https://github.com/renovateapp/dummy/commit/abcdefghijklmnopqrstuvwxyz"><code>abcdefg</code></a> foo <a href="https://github.com/renovateapp/dummy/issues/3">#3</a></li>
 </ul>
-<p></details><br />
-<br /></p>
+<p></details></p>
+<hr />
 <p>This PR has been generated by <a href="https://keylocation.sg/our-tech/renovate">Renovate Bot</a>.</p>`,
         displayNumber: 'Existing PR',
       };
@@ -138,6 +138,12 @@ describe('workers/pr', () => {
       config.api.getBranchPr = jest.fn();
       const pr = await prWorker.ensurePr([config], logger);
       expect(pr).toMatchObject({ displayNumber: 'New Pull Request' });
+      expect(
+        config.api.createPr.mock.calls[0][2].indexOf('Errors</h3>')
+      ).toEqual(-1);
+      expect(
+        config.api.createPr.mock.calls[0][2].indexOf('Warnings</h3>')
+      ).toEqual(-1);
     });
     it('should add labels to new PR', async () => {
       config.api.getBranchPr = jest.fn();
@@ -166,6 +172,17 @@ describe('workers/pr', () => {
       expect(config.api.addAssignees.mock.calls.length).toBe(1);
       expect(config.api.addReviewers.mock.calls.length).toBe(1);
     });
+    it('should display errors and warnings', async () => {
+      config.api.getBranchPr = jest.fn();
+      const pr = await prWorker.ensurePr([config], logger, [{}], [{}]);
+      expect(
+        config.api.createPr.mock.calls[0][2].indexOf('Errors</h3>')
+      ).not.toEqual(-1);
+      expect(
+        config.api.createPr.mock.calls[0][2].indexOf('Warnings</h3>')
+      ).not.toEqual(-1);
+      expect(pr).toMatchObject({ displayNumber: 'New Pull Request' });
+    });
     it('should not add assignees and reviewers to new PR if automerging enabled', async () => {
       config.api.getBranchPr = jest.fn();
       config.api.addAssignees = jest.fn();