diff --git a/CHANGELOG.md b/CHANGELOG.md
index 262d87fd3..5ab41ee26 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## v0.107
+
+### Changed
+
+- Don't show fatal error page if configured health checks are failing but
+ alertmanager is still showing alerts. A popup message with will still
+ be visible.
+
## v0.106
### Added
diff --git a/ui/src/Components/Grid/index.test.tsx b/ui/src/Components/Grid/index.test.tsx
index 35e518e56..ba560bcad 100644
--- a/ui/src/Components/Grid/index.test.tsx
+++ b/ui/src/Components/Grid/index.test.tsx
@@ -62,6 +62,30 @@ describe("", () => {
expect(tree.text()).toBe("");
});
+ it("renders AlertGrid if there's only one upstream and it's unhealthy but there are alerts", () => {
+ alertStore.data.setUpstreams({
+ counters: { total: 1, healthy: 0, failed: 1 },
+ instances: [
+ {
+ name: "am1",
+ cluster: "am",
+ clusterMembers: ["am"],
+ uri: "http://am1",
+ publicURI: "http://am1",
+ error: "error",
+ version: "0.24.0",
+ readonly: false,
+ corsCredentials: "include",
+ headers: {},
+ },
+ ],
+ clusters: { am1: ["am1"] },
+ });
+ alertStore.info.setTotalAlerts(1);
+ const tree = ShallowGrid();
+ expect(tree.find("Memo(AlertGrid)")).toHaveLength(1);
+ });
+
it("renders FatalError if there's only one upstream and it's unhealthy but without any error", () => {
alertStore.data.setUpstreams({
counters: { total: 1, healthy: 0, failed: 1 },
diff --git a/ui/src/Components/Grid/index.tsx b/ui/src/Components/Grid/index.tsx
index 9b159fab0..e8e9d0f8d 100644
--- a/ui/src/Components/Grid/index.tsx
+++ b/ui/src/Components/Grid/index.tsx
@@ -27,7 +27,8 @@ const Grid: FC<{
alertStore.data.upstreams.counters.total === 1 &&
alertStore.data.upstreams.counters.healthy === 0 &&
alertStore.data.upstreams.instances[0] &&
- alertStore.data.upstreams.instances[0].error !== "" ? (
+ alertStore.data.upstreams.instances[0].error !== "" &&
+ alertStore.info.totalAlerts === 0 ? (
) : alertStore.info.version !== "unknown" &&
alertStore.info.totalAlerts === 0 ? (