From c6f9101fd69519be86c41a01175da8ff45686e08 Mon Sep 17 00:00:00 2001
From: Natalia Tepluhina <tarya.se@gmail.com>
Date: Mon, 1 Nov 2021 09:59:39 +0100
Subject: [PATCH] Set assumeImmutableResults to true

- Fixed all the occurences of 'createDefaultClient'
- Updated FE guide on Apollo immutability
---
 app/assets/javascripts/access_tokens/index.js        |  2 +-
 app/assets/javascripts/admin/users/index.js          |  2 +-
 app/assets/javascripts/alert_management/list.js      |  1 -
 app/assets/javascripts/alerts_settings/graphql.js    |  1 -
 .../javascripts/analytics/usage_trends/index.js      |  2 +-
 app/assets/javascripts/artifacts_settings/index.js   |  2 +-
 app/assets/javascripts/boards/graphql.js             |  1 -
 .../boards/mount_multiple_boards_switcher.js         |  7 +------
 app/assets/javascripts/ci_lint/index.js              |  4 +---
 app/assets/javascripts/clusters/agents/index.js      |  7 +------
 app/assets/javascripts/clusters_list/load_agents.js  |  2 +-
 app/assets/javascripts/design_management/graphql.js  |  1 -
 .../folder/environments_folder_bundle.js             |  2 +-
 .../javascripts/environments/graphql/client.js       | 12 ++++--------
 app/assets/javascripts/environments/index.js         |  2 +-
 app/assets/javascripts/error_tracking/details.js     |  7 +------
 .../import_groups/graphql/client_factory.js          |  6 +-----
 app/assets/javascripts/incidents/list.js             |  2 +-
 app/assets/javascripts/issuable_suggestions/index.js |  7 +------
 app/assets/javascripts/issues_list/index.js          |  4 ++--
 .../javascripts/jira_connect/branches/index.js       |  7 +------
 app/assets/javascripts/jira_import/index.js          |  2 +-
 .../javascripts/jobs/components/table/index.js       |  7 +------
 app/assets/javascripts/lib/graphql.js                |  5 ++---
 app/assets/javascripts/mr_popover/index.js           |  7 +------
 .../dependency_proxy/graphql/index.js                |  7 +------
 .../package_registry/graphql/index.js                |  1 -
 .../settings/group/graphql/index.js                  |  7 +------
 .../settings/project/graphql/index.js                |  7 +------
 .../javascripts/pages/projects/blob/show/index.js    |  2 +-
 .../merge_requests/init_merge_request_show.js        |  2 +-
 .../pages/shared/mount_runner_instructions.js        |  7 +------
 app/assets/javascripts/pipeline_editor/index.js      |  1 -
 .../javascripts/pipelines/pipeline_shared_client.js  |  1 -
 .../info/init_commit_pipeline_mini_graph.js          |  7 +------
 app/assets/javascripts/projects/new/index.js         |  2 +-
 .../javascripts/projects/pipelines/charts/index.js   |  2 +-
 .../javascripts/projects/storage_counter/index.js    |  2 +-
 .../projects/terraform_notification/index.js         |  2 +-
 .../javascripts/registry/explorer/graphql/index.js   |  1 -
 app/assets/javascripts/releases/mount_index.js       |  1 -
 app/assets/javascripts/releases/mount_show.js        |  7 +------
 app/assets/javascripts/repository/graphql.js         |  1 -
 app/assets/javascripts/runner/admin_runners/index.js |  7 +------
 app/assets/javascripts/runner/group_runners/index.js |  7 +------
 .../javascripts/runner/runner_details/index.js       |  7 +------
 .../javascripts/security_configuration/index.js      |  2 +-
 app/assets/javascripts/sidebar/graphql.js            |  1 -
 app/assets/javascripts/snippets/index.js             |  1 -
 .../javascripts/static_site_editor/graphql/index.js  |  1 -
 app/assets/javascripts/terraform/index.js            |  1 -
 app/assets/javascripts/token_access/index.js         |  2 +-
 .../javascripts/vue_merge_request_widget/index.js    |  7 +------
 .../javascripts/vue_shared/alert_details/index.js    |  1 -
 .../vue_shared/security_configuration/provider.js    |  2 +-
 .../javascripts/work_items/graphql/provider.js       |  3 ++-
 doc/development/fe_guide/graphql.md                  |  8 +-------
 .../admin/subscriptions/show/mount_cloud_licenses.js |  7 +------
 .../javascripts/analytics/cycle_analytics/index.js   |  7 +------
 .../devops_report/devops_adoption/graphql.js         |  2 +-
 .../analytics/group_ci_cd_analytics/index.js         |  2 +-
 .../analytics/merge_request_analytics/index.js       |  2 +-
 .../analytics/productivity_analytics/index.js        |  2 +-
 .../analytics/repository_analytics/index.js          |  2 +-
 ee/app/assets/javascripts/burndown_chart/index.js    |  2 +-
 ee/app/assets/javascripts/ci_minutes_usage/index.js  |  2 +-
 ee/app/assets/javascripts/epic/new_epic_bundle.js    |  7 +------
 ee/app/assets/javascripts/epic_boards/index.js       |  1 -
 .../javascripts/epics_list/epics_list_bundle.js      |  7 +------
 .../assets/javascripts/escalation_policies/index.js  |  1 -
 .../external_issues_list/graphql/index.js            |  2 +-
 .../settings/compliance_frameworks/init_form.js      |  2 +-
 .../settings/compliance_frameworks/init_list.js      |  2 +-
 ee/app/assets/javascripts/iterations/index.js        |  1 -
 .../javascripts/on_demand_scans/graphql/provider.js  |  7 +------
 .../on_demand_scans_form/graphql/provider.js         |  2 +-
 .../assets/javascripts/oncall_schedules/graphql.js   |  5 +----
 .../javascripts/pages/projects/edit/merge_options.js |  2 +-
 .../javascripts/requirements/requirements_bundle.js  |  1 -
 ee/app/assets/javascripts/roadmap/roadmap_bundle.js  |  2 +-
 .../api_fuzzing/graphql/provider.js                  |  7 +------
 .../corpus_management/corpus_management_bundle.js    |  1 -
 .../javascripts/security_configuration/dast/index.js |  2 +-
 .../dast_scanner_profiles/graphql/provider.js        |  2 +-
 .../dast_site_profiles/graphql/provider.js           |  2 +-
 .../dast_profiles/graphql/provider.js                |  2 +-
 .../dast_site_validation/graphql/provider.js         |  2 +-
 .../javascripts/security_configuration/sast/index.js |  2 +-
 .../security_dashboard/graphql/provider.js           |  1 -
 ee/app/assets/javascripts/storage_counter/index.js   |  2 +-
 .../subscriptions/buy_addons_shared/graphql.js       |  3 +--
 .../assets/javascripts/subscriptions/new/graphql.js  |  1 -
 .../test_case_create/test_case_create_bundle.js      |  2 +-
 .../test_case_list/test_case_list_bundle.js          |  2 +-
 .../test_case_show/test_case_show_bundle.js          |  2 +-
 ee/app/assets/javascripts/threat_monitoring/index.js |  1 -
 .../threat_monitoring/security_policies_list.js      |  2 +-
 ee/app/assets/javascripts/threat_monitoring/utils.js |  7 +------
 .../components/sidebar/iterations_dropdown_bundle.js |  2 +-
 99 files changed, 82 insertions(+), 245 deletions(-)

diff --git a/app/assets/javascripts/access_tokens/index.js b/app/assets/javascripts/access_tokens/index.js
index 2cd3a8f12eefe..7f5f0403de627 100644
--- a/app/assets/javascripts/access_tokens/index.js
+++ b/app/assets/javascripts/access_tokens/index.js
@@ -49,7 +49,7 @@ export const initProjectsField = () => {
             { default: createDefaultClient },
           ]) => {
             const apolloProvider = new VueApollo({
-              defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+              defaultClient: createDefaultClient(),
             });
 
             Vue.use(VueApollo);
diff --git a/app/assets/javascripts/admin/users/index.js b/app/assets/javascripts/admin/users/index.js
index 852b253d25ad2..0c485d2a2399f 100644
--- a/app/assets/javascripts/admin/users/index.js
+++ b/app/assets/javascripts/admin/users/index.js
@@ -15,7 +15,7 @@ import {
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 const initApp = (el, component, userPropKey, props = {}) => {
diff --git a/app/assets/javascripts/alert_management/list.js b/app/assets/javascripts/alert_management/list.js
index 4cb56a2614cf0..b23f8a8eba427 100644
--- a/app/assets/javascripts/alert_management/list.js
+++ b/app/assets/javascripts/alert_management/list.js
@@ -38,7 +38,6 @@ export default () => {
             return defaultDataIdFromObject(object);
           },
         },
-        assumeImmutableResults: true,
       },
     ),
   });
diff --git a/app/assets/javascripts/alerts_settings/graphql.js b/app/assets/javascripts/alerts_settings/graphql.js
index 15862f4034a07..b64e2e3eefa62 100644
--- a/app/assets/javascripts/alerts_settings/graphql.js
+++ b/app/assets/javascripts/alerts_settings/graphql.js
@@ -59,6 +59,5 @@ export default new VueApollo({
     cacheConfig: {
       fragmentMatcher,
     },
-    assumeImmutableResults: true,
   }),
 });
diff --git a/app/assets/javascripts/analytics/usage_trends/index.js b/app/assets/javascripts/analytics/usage_trends/index.js
index 3e85832edcf19..d1880b09f159e 100644
--- a/app/assets/javascripts/analytics/usage_trends/index.js
+++ b/app/assets/javascripts/analytics/usage_trends/index.js
@@ -6,7 +6,7 @@ import UsageTrendsApp from './components/app.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/app/assets/javascripts/artifacts_settings/index.js b/app/assets/javascripts/artifacts_settings/index.js
index 5c9f1c3129c28..531b42bc18587 100644
--- a/app/assets/javascripts/artifacts_settings/index.js
+++ b/app/assets/javascripts/artifacts_settings/index.js
@@ -6,7 +6,7 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default (containerId = 'js-artifacts-settings-app') => {
diff --git a/app/assets/javascripts/boards/graphql.js b/app/assets/javascripts/boards/graphql.js
index d8d16184936a5..64938cb42edf3 100644
--- a/app/assets/javascripts/boards/graphql.js
+++ b/app/assets/javascripts/boards/graphql.js
@@ -17,6 +17,5 @@ export const gqlClient = createDefaultClient(
 
       fragmentMatcher,
     },
-    assumeImmutableResults: true,
   },
 );
diff --git a/app/assets/javascripts/boards/mount_multiple_boards_switcher.js b/app/assets/javascripts/boards/mount_multiple_boards_switcher.js
index a3a8ad06c4300..d74a772170b18 100644
--- a/app/assets/javascripts/boards/mount_multiple_boards_switcher.js
+++ b/app/assets/javascripts/boards/mount_multiple_boards_switcher.js
@@ -8,12 +8,7 @@ import { parseBoolean } from '~/lib/utils/common_utils';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default (params = {}) => {
diff --git a/app/assets/javascripts/ci_lint/index.js b/app/assets/javascripts/ci_lint/index.js
index f97590ec5db63..274aab45deb7f 100644
--- a/app/assets/javascripts/ci_lint/index.js
+++ b/app/assets/javascripts/ci_lint/index.js
@@ -8,9 +8,7 @@ import CiLint from './components/ci_lint.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(resolvers, {
-    assumeImmutableResults: true,
-  }),
+  defaultClient: createDefaultClient(resolvers),
 });
 
 export default (containerId = '#js-ci-lint') => {
diff --git a/app/assets/javascripts/clusters/agents/index.js b/app/assets/javascripts/clusters/agents/index.js
index ec6b6c6fc3570..bcb5b2712037b 100644
--- a/app/assets/javascripts/clusters/agents/index.js
+++ b/app/assets/javascripts/clusters/agents/index.js
@@ -12,12 +12,7 @@ export default () => {
     return null;
   }
 
-  const defaultClient = createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  );
+  const defaultClient = createDefaultClient();
   const { agentName, projectPath } = el.dataset;
 
   return new Vue({
diff --git a/app/assets/javascripts/clusters_list/load_agents.js b/app/assets/javascripts/clusters_list/load_agents.js
index b77d386df203b..3f00cabccdb06 100644
--- a/app/assets/javascripts/clusters_list/load_agents.js
+++ b/app/assets/javascripts/clusters_list/load_agents.js
@@ -8,7 +8,7 @@ export default (Vue, VueApollo) => {
     return null;
   }
 
-  const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient();
 
   const {
     emptyStateImage,
diff --git a/app/assets/javascripts/design_management/graphql.js b/app/assets/javascripts/design_management/graphql.js
index fa57537f74e8c..5cf32cb7fe3d8 100644
--- a/app/assets/javascripts/design_management/graphql.js
+++ b/app/assets/javascripts/design_management/graphql.js
@@ -88,7 +88,6 @@ const defaultClient = createDefaultClient(
       fragmentMatcher,
     },
     typeDefs,
-    assumeImmutableResults: true,
   },
 );
 
diff --git a/app/assets/javascripts/environments/folder/environments_folder_bundle.js b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
index f248e9ec0794d..206381e0b7ea4 100644
--- a/app/assets/javascripts/environments/folder/environments_folder_bundle.js
+++ b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
@@ -8,7 +8,7 @@ Vue.use(Translate);
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/app/assets/javascripts/environments/graphql/client.js b/app/assets/javascripts/environments/graphql/client.js
index 498163c7abc75..c734c2fba0cb2 100644
--- a/app/assets/javascripts/environments/graphql/client.js
+++ b/app/assets/javascripts/environments/graphql/client.js
@@ -2,16 +2,12 @@ import VueApollo from 'vue-apollo';
 import createDefaultClient from '~/lib/graphql';
 import environmentApp from './queries/environmentApp.query.graphql';
 import { resolvers } from './resolvers';
-import typedefs from './typedefs.graphql';
+import typeDefs from './typedefs.graphql';
 
 export const apolloProvider = (endpoint) => {
-  const defaultClient = createDefaultClient(
-    resolvers(endpoint),
-    {
-      assumeImmutableResults: true,
-    },
-    typedefs,
-  );
+  const defaultClient = createDefaultClient(resolvers(endpoint), {
+    typeDefs,
+  });
   const { cache } = defaultClient;
 
   cache.writeQuery({
diff --git a/app/assets/javascripts/environments/index.js b/app/assets/javascripts/environments/index.js
index 99a1d12adf7aa..3b1d35c1f2268 100644
--- a/app/assets/javascripts/environments/index.js
+++ b/app/assets/javascripts/environments/index.js
@@ -9,7 +9,7 @@ Vue.use(Translate);
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default (el) => {
diff --git a/app/assets/javascripts/error_tracking/details.js b/app/assets/javascripts/error_tracking/details.js
index 38245210b709a..37b8007d556a2 100644
--- a/app/assets/javascripts/error_tracking/details.js
+++ b/app/assets/javascripts/error_tracking/details.js
@@ -20,12 +20,7 @@ export default () => {
   } = domEl.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   // eslint-disable-next-line no-new
diff --git a/app/assets/javascripts/import_entities/import_groups/graphql/client_factory.js b/app/assets/javascripts/import_entities/import_groups/graphql/client_factory.js
index c08cf909a00b5..6eca530b49cba 100644
--- a/app/assets/javascripts/import_entities/import_groups/graphql/client_factory.js
+++ b/app/assets/javascripts/import_entities/import_groups/graphql/client_factory.js
@@ -376,8 +376,4 @@ export function createResolvers({ endpoints, sourceUrl, GroupsManager = SourceGr
 }
 
 export const createApolloClient = ({ sourceUrl, endpoints }) =>
-  createDefaultClient(
-    createResolvers({ sourceUrl, endpoints }),
-    { assumeImmutableResults: true },
-    typeDefs,
-  );
+  createDefaultClient(createResolvers({ sourceUrl, endpoints }), { typeDefs });
diff --git a/app/assets/javascripts/incidents/list.js b/app/assets/javascripts/incidents/list.js
index 6e6461cd7a90e..8644ff3a249b0 100644
--- a/app/assets/javascripts/incidents/list.js
+++ b/app/assets/javascripts/incidents/list.js
@@ -24,7 +24,7 @@ export default () => {
   } = domEl.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/issuable_suggestions/index.js b/app/assets/javascripts/issuable_suggestions/index.js
index 22a99a177418a..8f7f317d6b45c 100644
--- a/app/assets/javascripts/issuable_suggestions/index.js
+++ b/app/assets/javascripts/issuable_suggestions/index.js
@@ -10,12 +10,7 @@ export default function initIssuableSuggestions() {
   const issueTitle = document.getElementById('issue_title');
   const { projectPath } = el.dataset;
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/issues_list/index.js b/app/assets/javascripts/issues_list/index.js
index 421d6b35919ea..59034964afb18 100644
--- a/app/assets/javascripts/issues_list/index.js
+++ b/app/assets/javascripts/issues_list/index.js
@@ -24,7 +24,7 @@ export function mountJiraIssuesListApp() {
   }
 
   Vue.use(VueApollo);
-  const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient();
   const apolloProvider = new VueApollo({
     defaultClient,
   });
@@ -103,7 +103,7 @@ export function mountIssuesListApp() {
     },
   };
 
-  const defaultClient = createDefaultClient(resolvers, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient(resolvers);
   const apolloProvider = new VueApollo({
     defaultClient,
   });
diff --git a/app/assets/javascripts/jira_connect/branches/index.js b/app/assets/javascripts/jira_connect/branches/index.js
index 95bd4f5c6752f..04510fcff4bfc 100644
--- a/app/assets/javascripts/jira_connect/branches/index.js
+++ b/app/assets/javascripts/jira_connect/branches/index.js
@@ -14,12 +14,7 @@ export default async function initJiraConnectBranches() {
   const { initialBranchName, successStateSvgPath } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/jira_import/index.js b/app/assets/javascripts/jira_import/index.js
index 003f3c7107e23..695a237bf5047 100644
--- a/app/assets/javascripts/jira_import/index.js
+++ b/app/assets/javascripts/jira_import/index.js
@@ -6,7 +6,7 @@ import App from './components/jira_import_app.vue';
 
 Vue.use(VueApollo);
 
-const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+const defaultClient = createDefaultClient();
 
 const apolloProvider = new VueApollo({
   defaultClient,
diff --git a/app/assets/javascripts/jobs/components/table/index.js b/app/assets/javascripts/jobs/components/table/index.js
index cec871ddbb495..f24daf90815d4 100644
--- a/app/assets/javascripts/jobs/components/table/index.js
+++ b/app/assets/javascripts/jobs/components/table/index.js
@@ -9,12 +9,7 @@ Vue.use(VueApollo);
 Vue.use(GlToast);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default (containerId = 'js-jobs-table') => {
diff --git a/app/assets/javascripts/lib/graphql.js b/app/assets/javascripts/lib/graphql.js
index 39bf804b54e78..df2e85afe2420 100644
--- a/app/assets/javascripts/lib/graphql.js
+++ b/app/assets/javascripts/lib/graphql.js
@@ -48,7 +48,6 @@ export const stripWhitespaceFromQuery = (url, path) => {
 
 export default (resolvers = {}, config = {}) => {
   const {
-    assumeImmutableResults,
     baseUrl,
     batchMax = 10,
     cacheConfig,
@@ -161,10 +160,10 @@ export default (resolvers = {}, config = {}) => {
     link: appLink,
     cache: new InMemoryCache({
       ...cacheConfig,
-      freezeResults: assumeImmutableResults,
+      freezeResults: true,
     }),
     resolvers,
-    assumeImmutableResults,
+    assumeImmutableResults: true,
     defaultOptions: {
       query: {
         fetchPolicy,
diff --git a/app/assets/javascripts/mr_popover/index.js b/app/assets/javascripts/mr_popover/index.js
index 6e46c5d3c1f85..714cf67e0bd55 100644
--- a/app/assets/javascripts/mr_popover/index.js
+++ b/app/assets/javascripts/mr_popover/index.js
@@ -48,12 +48,7 @@ export default (elements) => {
     Vue.use(VueApollo);
 
     const apolloProvider = new VueApollo({
-      defaultClient: createDefaultClient(
-        {},
-        {
-          assumeImmutableResults: true,
-        },
-      ),
+      defaultClient: createDefaultClient(),
     });
     const listenerAddedAttr = 'data-mr-listener-added';
 
diff --git a/app/assets/javascripts/packages_and_registries/dependency_proxy/graphql/index.js b/app/assets/javascripts/packages_and_registries/dependency_proxy/graphql/index.js
index 16152eb81f698..56f95fa2c1f31 100644
--- a/app/assets/javascripts/packages_and_registries/dependency_proxy/graphql/index.js
+++ b/app/assets/javascripts/packages_and_registries/dependency_proxy/graphql/index.js
@@ -5,10 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/graphql/index.js b/app/assets/javascripts/packages_and_registries/package_registry/graphql/index.js
index f8cb5c516e2e5..21d6fbc9e1fd6 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/graphql/index.js
+++ b/app/assets/javascripts/packages_and_registries/package_registry/graphql/index.js
@@ -17,7 +17,6 @@ export const apolloProvider = new VueApollo({
       cacheConfig: {
         fragmentMatcher,
       },
-      assumeImmutableResults: true,
     },
   ),
 });
diff --git a/app/assets/javascripts/packages_and_registries/settings/group/graphql/index.js b/app/assets/javascripts/packages_and_registries/settings/group/graphql/index.js
index 16152eb81f698..56f95fa2c1f31 100644
--- a/app/assets/javascripts/packages_and_registries/settings/group/graphql/index.js
+++ b/app/assets/javascripts/packages_and_registries/settings/group/graphql/index.js
@@ -5,10 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/graphql/index.js b/app/assets/javascripts/packages_and_registries/settings/project/graphql/index.js
index 16152eb81f698..56f95fa2c1f31 100644
--- a/app/assets/javascripts/packages_and_registries/settings/project/graphql/index.js
+++ b/app/assets/javascripts/packages_and_registries/settings/project/graphql/index.js
@@ -5,10 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
diff --git a/app/assets/javascripts/pages/projects/blob/show/index.js b/app/assets/javascripts/pages/projects/blob/show/index.js
index 80bcbefab463c..b365e03919134 100644
--- a/app/assets/javascripts/pages/projects/blob/show/index.js
+++ b/app/assets/javascripts/pages/projects/blob/show/index.js
@@ -14,7 +14,7 @@ import '~/sourcegraph/load';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 const viewBlobEl = document.querySelector('#js-view-blob-app');
diff --git a/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js b/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
index 194e273e26139..99094617b0a71 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
@@ -28,7 +28,7 @@ export default function initMergeRequestShow() {
 
   const el = document.querySelector('.js-mr-status-box');
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
   // eslint-disable-next-line no-new
   new Vue({
diff --git a/app/assets/javascripts/pages/shared/mount_runner_instructions.js b/app/assets/javascripts/pages/shared/mount_runner_instructions.js
index 1cb7259be64b0..e83c73edfde9d 100644
--- a/app/assets/javascripts/pages/shared/mount_runner_instructions.js
+++ b/app/assets/javascripts/pages/shared/mount_runner_instructions.js
@@ -9,12 +9,7 @@ export function initInstallRunner(componentId = 'js-install-runner') {
   const installRunnerEl = document.getElementById(componentId);
 
   if (installRunnerEl) {
-    const defaultClient = createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    );
+    const defaultClient = createDefaultClient();
 
     const apolloProvider = new VueApollo({
       defaultClient,
diff --git a/app/assets/javascripts/pipeline_editor/index.js b/app/assets/javascripts/pipeline_editor/index.js
index 58dc71d981f8c..4f7f2743aca4c 100644
--- a/app/assets/javascripts/pipeline_editor/index.js
+++ b/app/assets/javascripts/pipeline_editor/index.js
@@ -61,7 +61,6 @@ export const initPipelineEditor = (selector = '#js-pipeline-editor') => {
     defaultClient: createDefaultClient(resolvers, {
       typeDefs,
       useGet: true,
-      assumeImmutableResults: true,
     }),
   });
   const { cache } = apolloProvider.clients.defaultClient;
diff --git a/app/assets/javascripts/pipelines/pipeline_shared_client.js b/app/assets/javascripts/pipelines/pipeline_shared_client.js
index 7a922acd0b3bc..c3be487caae2b 100644
--- a/app/assets/javascripts/pipelines/pipeline_shared_client.js
+++ b/app/assets/javascripts/pipelines/pipeline_shared_client.js
@@ -5,7 +5,6 @@ export const apolloProvider = new VueApollo({
   defaultClient: createDefaultClient(
     {},
     {
-      assumeImmutableResults: true,
       useGet: true,
     },
   ),
diff --git a/app/assets/javascripts/projects/commit_box/info/init_commit_pipeline_mini_graph.js b/app/assets/javascripts/projects/commit_box/info/init_commit_pipeline_mini_graph.js
index 2505c47147fd2..1d4ec4c110b7c 100644
--- a/app/assets/javascripts/projects/commit_box/info/init_commit_pipeline_mini_graph.js
+++ b/app/assets/javascripts/projects/commit_box/info/init_commit_pipeline_mini_graph.js
@@ -5,12 +5,7 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export const initCommitPipelineMiniGraph = async (selector = '.js-commit-pipeline-mini-graph') => {
diff --git a/app/assets/javascripts/projects/new/index.js b/app/assets/javascripts/projects/new/index.js
index 572d3276e4f91..010c6a29ae38f 100644
--- a/app/assets/javascripts/projects/new/index.js
+++ b/app/assets/javascripts/projects/new/index.js
@@ -50,7 +50,7 @@ export function initNewProjectUrlSelect() {
       new Vue({
         el,
         apolloProvider: new VueApollo({
-          defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+          defaultClient: createDefaultClient(),
         }),
         provide: {
           namespaceFullPath: el.dataset.namespaceFullPath,
diff --git a/app/assets/javascripts/projects/pipelines/charts/index.js b/app/assets/javascripts/projects/pipelines/charts/index.js
index f7ea89068a0ce..5f5ee44c2048d 100644
--- a/app/assets/javascripts/projects/pipelines/charts/index.js
+++ b/app/assets/javascripts/projects/pipelines/charts/index.js
@@ -7,7 +7,7 @@ import ProjectPipelinesCharts from './components/app.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 const mountPipelineChartsApp = (el) => {
diff --git a/app/assets/javascripts/projects/storage_counter/index.js b/app/assets/javascripts/projects/storage_counter/index.js
index 10668f08402b1..15796bc187089 100644
--- a/app/assets/javascripts/projects/storage_counter/index.js
+++ b/app/assets/javascripts/projects/storage_counter/index.js
@@ -25,7 +25,7 @@ export default (containerId = 'js-project-storage-count-app') => {
   } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/projects/terraform_notification/index.js b/app/assets/javascripts/projects/terraform_notification/index.js
index 21c8d09b7fc61..362e71ed902b4 100644
--- a/app/assets/javascripts/projects/terraform_notification/index.js
+++ b/app/assets/javascripts/projects/terraform_notification/index.js
@@ -6,7 +6,7 @@ import TerraformNotification from './components/terraform_notification.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmtableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/app/assets/javascripts/registry/explorer/graphql/index.js b/app/assets/javascripts/registry/explorer/graphql/index.js
index d934bcc741976..9694bfd4e7731 100644
--- a/app/assets/javascripts/registry/explorer/graphql/index.js
+++ b/app/assets/javascripts/registry/explorer/graphql/index.js
@@ -9,7 +9,6 @@ export const apolloProvider = new VueApollo({
     {},
     {
       batchMax: 1,
-      assumeImmutableResults: true,
     },
   ),
 });
diff --git a/app/assets/javascripts/releases/mount_index.js b/app/assets/javascripts/releases/mount_index.js
index 59f6ebfc928ee..86fa72d1496a6 100644
--- a/app/assets/javascripts/releases/mount_index.js
+++ b/app/assets/javascripts/releases/mount_index.js
@@ -24,7 +24,6 @@ export default () => {
           // the purpose of making separate requests. So we explicitly
           // disable batching on this page.
           batchMax: 1,
-          assumeImmutableResults: true,
         },
       ),
     });
diff --git a/app/assets/javascripts/releases/mount_show.js b/app/assets/javascripts/releases/mount_show.js
index 686f9e294b7ee..7272880197aa8 100644
--- a/app/assets/javascripts/releases/mount_show.js
+++ b/app/assets/javascripts/releases/mount_show.js
@@ -6,12 +6,7 @@ import ReleaseShowApp from './components/app_show.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/app/assets/javascripts/repository/graphql.js b/app/assets/javascripts/repository/graphql.js
index 4892e54ebeff7..96d712ce9b4ff 100644
--- a/app/assets/javascripts/repository/graphql.js
+++ b/app/assets/javascripts/repository/graphql.js
@@ -64,7 +64,6 @@ const defaultClient = createDefaultClient(
         /* eslint-enable @gitlab/require-i18n-strings */
       },
     },
-    assumeImmutableResults: true,
   },
 );
 
diff --git a/app/assets/javascripts/runner/admin_runners/index.js b/app/assets/javascripts/runner/admin_runners/index.js
index 84527032694a2..9d80eec6f54da 100644
--- a/app/assets/javascripts/runner/admin_runners/index.js
+++ b/app/assets/javascripts/runner/admin_runners/index.js
@@ -19,12 +19,7 @@ export const initAdminRunners = (selector = '#js-admin-runners') => {
   const { activeRunnersCount, registrationToken, runnerInstallHelpPage } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/runner/group_runners/index.js b/app/assets/javascripts/runner/group_runners/index.js
index 959e8a4feddcf..60b7a7ab5415a 100644
--- a/app/assets/javascripts/runner/group_runners/index.js
+++ b/app/assets/javascripts/runner/group_runners/index.js
@@ -23,12 +23,7 @@ export const initGroupRunners = (selector = '#js-group-runners') => {
   } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/runner/runner_details/index.js b/app/assets/javascripts/runner/runner_details/index.js
index 05e6f86869d3e..db8f239a3c3d4 100644
--- a/app/assets/javascripts/runner/runner_details/index.js
+++ b/app/assets/javascripts/runner/runner_details/index.js
@@ -15,12 +15,7 @@ export const initRunnerDetail = (selector = '#js-runner-details') => {
   const { runnerId } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/app/assets/javascripts/security_configuration/index.js b/app/assets/javascripts/security_configuration/index.js
index 60d2c0d4e5abb..a8623b468f285 100644
--- a/app/assets/javascripts/security_configuration/index.js
+++ b/app/assets/javascripts/security_configuration/index.js
@@ -14,7 +14,7 @@ export const initSecurityConfiguration = (el) => {
   Vue.use(VueApollo);
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const {
diff --git a/app/assets/javascripts/sidebar/graphql.js b/app/assets/javascripts/sidebar/graphql.js
index 1a806a051b7dd..6a670db2d387f 100644
--- a/app/assets/javascripts/sidebar/graphql.js
+++ b/app/assets/javascripts/sidebar/graphql.js
@@ -25,7 +25,6 @@ export const defaultClient = createDefaultClient(resolvers, {
   cacheConfig: {
     fragmentMatcher,
   },
-  assumeImmutableResults: true,
 });
 
 export const apolloProvider = new VueApollo({
diff --git a/app/assets/javascripts/snippets/index.js b/app/assets/javascripts/snippets/index.js
index 8e7368ef80414..21f38c4d8c974 100644
--- a/app/assets/javascripts/snippets/index.js
+++ b/app/assets/javascripts/snippets/index.js
@@ -18,7 +18,6 @@ export default function appFactory(el, Component) {
       {},
       {
         batchMax: 1,
-        assumeImmutableResults: true,
       },
     ),
   });
diff --git a/app/assets/javascripts/static_site_editor/graphql/index.js b/app/assets/javascripts/static_site_editor/graphql/index.js
index 2ae2baddbcc03..53572e680e514 100644
--- a/app/assets/javascripts/static_site_editor/graphql/index.js
+++ b/app/assets/javascripts/static_site_editor/graphql/index.js
@@ -22,7 +22,6 @@ const createApolloProvider = (appData) => {
     },
     {
       typeDefs,
-      assumeImmutableResults: true,
     },
   );
 
diff --git a/app/assets/javascripts/terraform/index.js b/app/assets/javascripts/terraform/index.js
index 013b95c563370..1b8cab0d51e9a 100644
--- a/app/assets/javascripts/terraform/index.js
+++ b/app/assets/javascripts/terraform/index.js
@@ -22,7 +22,6 @@ export default () => {
         return object.id || defaultDataIdFromObject(object);
       },
     },
-    assumeImmutableResults: true,
   });
 
   const { emptyStateImage, projectPath, accessTokensPath, terraformApiUrl, username } = el.dataset;
diff --git a/app/assets/javascripts/token_access/index.js b/app/assets/javascripts/token_access/index.js
index 8d29a65d705ad..6a29883290ae3 100644
--- a/app/assets/javascripts/token_access/index.js
+++ b/app/assets/javascripts/token_access/index.js
@@ -6,7 +6,7 @@ import TokenAccess from './components/token_access.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export const initTokenAccess = (containerId = 'js-ci-token-access-app') => {
diff --git a/app/assets/javascripts/vue_merge_request_widget/index.js b/app/assets/javascripts/vue_merge_request_widget/index.js
index f5dbcec7dbeb9..8d596465970ab 100644
--- a/app/assets/javascripts/vue_merge_request_widget/index.js
+++ b/app/assets/javascripts/vue_merge_request_widget/index.js
@@ -13,12 +13,7 @@ Vue.use(Translate);
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/app/assets/javascripts/vue_shared/alert_details/index.js b/app/assets/javascripts/vue_shared/alert_details/index.js
index fda405c0fa51e..9f1da9ae17395 100644
--- a/app/assets/javascripts/vue_shared/alert_details/index.js
+++ b/app/assets/javascripts/vue_shared/alert_details/index.js
@@ -38,7 +38,6 @@ export default (selector) => {
           return defaultDataIdFromObject(object);
         },
       },
-      assumeImmutableResults: true,
     }),
   });
 
diff --git a/app/assets/javascripts/vue_shared/security_configuration/provider.js b/app/assets/javascripts/vue_shared/security_configuration/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/app/assets/javascripts/vue_shared/security_configuration/provider.js
+++ b/app/assets/javascripts/vue_shared/security_configuration/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/app/assets/javascripts/work_items/graphql/provider.js b/app/assets/javascripts/work_items/graphql/provider.js
index 2547b81bbd298..083735336ce57 100644
--- a/app/assets/javascripts/work_items/graphql/provider.js
+++ b/app/assets/javascripts/work_items/graphql/provider.js
@@ -4,6 +4,7 @@ import { IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';
 import createDefaultClient from '~/lib/graphql';
 import workItemQuery from './work_item.query.graphql';
 import introspectionQueryResultData from './fragmentTypes.json';
+import typeDefs from './typedefs.graphql';
 
 const fragmentMatcher = new IntrospectionFragmentMatcher({
   introspectionQueryResultData,
@@ -18,7 +19,7 @@ export function createApolloProvider() {
       cacheConfig: {
         fragmentMatcher,
       },
-      assumeImmutableResults: true,
+      typeDefs,
     },
   );
 
diff --git a/doc/development/fe_guide/graphql.md b/doc/development/fe_guide/graphql.md
index 0229aa0123af2..683b3bc61cdd5 100644
--- a/doc/development/fe_guide/graphql.md
+++ b/doc/development/fe_guide/graphql.md
@@ -103,7 +103,6 @@ Default client accepts two parameters: `resolvers` and `config`.
 - `config` parameter takes an object of configuration settings:
   - `cacheConfig` field accepts an optional object of settings to [customize Apollo cache](https://www.apollographql.com/docs/react/caching/cache-configuration/#configuring-the-cache)
   - `baseUrl` allows us to pass a URL for GraphQL endpoint different from our main endpoint (for example, `${gon.relative_url_root}/api/graphql`)
-  - `assumeImmutableResults` (set to `false` by default) - this setting, when set to `true`, assumes that every single operation on updating Apollo Cache is immutable. It also sets `freezeResults` to `true`, so any attempt on mutating Apollo Cache throws a console warning in development environment. Please ensure you're following the immutability pattern on cache update operations before setting this option to `true`.
   - `fetchPolicy` determines how you want your component to interact with the Apollo cache. Defaults to "cache-first".
 
 ### Multiple client queries for the same object
@@ -179,7 +178,7 @@ with a **new and updated** object.
 
 To facilitate the process of updating the cache and returning the new object we
 use the library [Immer](https://immerjs.github.io/immer/).
-When possible, follow these conventions:
+Please, follow these conventions:
 
 - The updated cache is named `data`.
 - The original cache data is named `sourceData`.
@@ -204,11 +203,6 @@ client.writeQuery({
 As shown in the code example by using `produce`, we can perform any kind of direct manipulation of the
 `draftState`. Besides, `immer` guarantees that a new state which includes the changes to `draftState` is generated.
 
-Finally, to verify whether the immutable cache update is working properly, we need to change
-`assumeImmutableResults` to `true` in the default client configuration. See [Apollo Client](#apollo-client) for more information.
-
-If everything is working properly `assumeImmutableResults` should remain set to `true`.
-
 ## Usage in Vue
 
 To use Vue Apollo, import the [Vue Apollo](https://github.com/vuejs/vue-apollo) plugin as well
diff --git a/ee/app/assets/javascripts/admin/subscriptions/show/mount_cloud_licenses.js b/ee/app/assets/javascripts/admin/subscriptions/show/mount_cloud_licenses.js
index 4132de0893c98..9750a3e0e2f83 100644
--- a/ee/app/assets/javascripts/admin/subscriptions/show/mount_cloud_licenses.js
+++ b/ee/app/assets/javascripts/admin/subscriptions/show/mount_cloud_licenses.js
@@ -8,12 +8,7 @@ import CloudLicenseShowApp from './components/app.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/index.js b/ee/app/assets/javascripts/analytics/cycle_analytics/index.js
index e9b72d7e1f354..d136d481b1ef9 100644
--- a/ee/app/assets/javascripts/analytics/cycle_analytics/index.js
+++ b/ee/app/assets/javascripts/analytics/cycle_analytics/index.js
@@ -14,12 +14,7 @@ Vue.use(GlToast);
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/analytics/devops_report/devops_adoption/graphql.js b/ee/app/assets/javascripts/analytics/devops_report/devops_adoption/graphql.js
index 4ba232ab23b5b..ebddfa3f9516f 100644
--- a/ee/app/assets/javascripts/analytics/devops_report/devops_adoption/graphql.js
+++ b/ee/app/assets/javascripts/analytics/devops_report/devops_adoption/graphql.js
@@ -34,5 +34,5 @@ export const createResolvers = (groupId) => ({
 
 export const createApolloProvider = (groupId) =>
   new VueApollo({
-    defaultClient: createDefaultClient(createResolvers(groupId), { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(createResolvers(groupId)),
   });
diff --git a/ee/app/assets/javascripts/analytics/group_ci_cd_analytics/index.js b/ee/app/assets/javascripts/analytics/group_ci_cd_analytics/index.js
index d396013267da7..4ea949168b5c2 100644
--- a/ee/app/assets/javascripts/analytics/group_ci_cd_analytics/index.js
+++ b/ee/app/assets/javascripts/analytics/group_ci_cd_analytics/index.js
@@ -7,7 +7,7 @@ import CiCdAnalyticsApp from './components/app.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/analytics/merge_request_analytics/index.js b/ee/app/assets/javascripts/analytics/merge_request_analytics/index.js
index bf9959def7ea5..946bf7f898be8 100644
--- a/ee/app/assets/javascripts/analytics/merge_request_analytics/index.js
+++ b/ee/app/assets/javascripts/analytics/merge_request_analytics/index.js
@@ -11,7 +11,7 @@ import { parseAndValidateDates } from './utils';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/analytics/productivity_analytics/index.js b/ee/app/assets/javascripts/analytics/productivity_analytics/index.js
index 612884da7cee9..795bd8b7b8159 100644
--- a/ee/app/assets/javascripts/analytics/productivity_analytics/index.js
+++ b/ee/app/assets/javascripts/analytics/productivity_analytics/index.js
@@ -15,7 +15,7 @@ import { getLabelsEndpoint, getMilestonesEndpoint } from './utils';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/analytics/repository_analytics/index.js b/ee/app/assets/javascripts/analytics/repository_analytics/index.js
index 2f2906cd2eabe..e5132413dc955 100644
--- a/ee/app/assets/javascripts/analytics/repository_analytics/index.js
+++ b/ee/app/assets/javascripts/analytics/repository_analytics/index.js
@@ -6,7 +6,7 @@ import GroupRepositoryAnalytics from './components/group_repository_analytics.vu
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/burndown_chart/index.js b/ee/app/assets/javascripts/burndown_chart/index.js
index 58fcd753d2de1..d793f3bf11d75 100644
--- a/ee/app/assets/javascripts/burndown_chart/index.js
+++ b/ee/app/assets/javascripts/burndown_chart/index.js
@@ -9,7 +9,7 @@ import BurnCharts from './components/burn_charts.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/ci_minutes_usage/index.js b/ee/app/assets/javascripts/ci_minutes_usage/index.js
index 859c1045e0312..03836966b5b02 100644
--- a/ee/app/assets/javascripts/ci_minutes_usage/index.js
+++ b/ee/app/assets/javascripts/ci_minutes_usage/index.js
@@ -7,7 +7,7 @@ import CiMinutesUsageApp from './components/app.vue';
 const mountCiMinutesUsageApp = (el) => {
   Vue.use(VueApollo);
 
-  const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient();
   const apolloProvider = new VueApollo({
     defaultClient,
   });
diff --git a/ee/app/assets/javascripts/epic/new_epic_bundle.js b/ee/app/assets/javascripts/epic/new_epic_bundle.js
index c225bff7dd2bb..f7f0a2f85f662 100644
--- a/ee/app/assets/javascripts/epic/new_epic_bundle.js
+++ b/ee/app/assets/javascripts/epic/new_epic_bundle.js
@@ -6,12 +6,7 @@ import EpicForm from './components/epic_form.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
 
 export function initEpicForm() {
diff --git a/ee/app/assets/javascripts/epic_boards/index.js b/ee/app/assets/javascripts/epic_boards/index.js
index d553b3a718e21..1b0dd8eba236a 100644
--- a/ee/app/assets/javascripts/epic_boards/index.js
+++ b/ee/app/assets/javascripts/epic_boards/index.js
@@ -32,7 +32,6 @@ const apolloProvider = new VueApollo({
       cacheConfig: {
         fragmentMatcher,
       },
-      assumeImmutableResults: true,
     },
   ),
 });
diff --git a/ee/app/assets/javascripts/epics_list/epics_list_bundle.js b/ee/app/assets/javascripts/epics_list/epics_list_bundle.js
index 0d3801ec37ca0..f1188f642ad71 100644
--- a/ee/app/assets/javascripts/epics_list/epics_list_bundle.js
+++ b/ee/app/assets/javascripts/epics_list/epics_list_bundle.js
@@ -18,12 +18,7 @@ export default function initEpicsList({ mountPointSelector }) {
   }
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient(
-      {},
-      {
-        assumeImmutableResults: true,
-      },
-    ),
+    defaultClient: createDefaultClient(),
   });
 
   const {
diff --git a/ee/app/assets/javascripts/escalation_policies/index.js b/ee/app/assets/javascripts/escalation_policies/index.js
index 4a59e436ac2c3..519439567d70c 100644
--- a/ee/app/assets/javascripts/escalation_policies/index.js
+++ b/ee/app/assets/javascripts/escalation_policies/index.js
@@ -19,7 +19,6 @@ const apolloProvider = new VueApollo({
           return defaultDataIdFromObject(object);
         },
       },
-      assumeImmutableResults: true,
     },
   ),
 });
diff --git a/ee/app/assets/javascripts/external_issues_list/graphql/index.js b/ee/app/assets/javascripts/external_issues_list/graphql/index.js
index 1f35f3be2ff3a..736ef8efed7c3 100644
--- a/ee/app/assets/javascripts/external_issues_list/graphql/index.js
+++ b/ee/app/assets/javascripts/external_issues_list/graphql/index.js
@@ -11,7 +11,7 @@ export default (externalIssuesQueryResolver) => {
     },
   };
 
-  const defaultClient = createDefaultClient(resolvers, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient(resolvers);
 
   return new VueApollo({
     defaultClient,
diff --git a/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_form.js b/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_form.js
index 3358f909652a1..ad30efc815bd0 100644
--- a/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_form.js
+++ b/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_form.js
@@ -9,7 +9,7 @@ import EditForm from './components/edit_form.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 const createComplianceFrameworksFormApp = (el) => {
diff --git a/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_list.js b/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_list.js
index 067c015f43b03..1ddbdd1c46792 100644
--- a/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_list.js
+++ b/ee/app/assets/javascripts/groups/settings/compliance_frameworks/init_list.js
@@ -7,7 +7,7 @@ import Form from './components/list.vue';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 const createComplianceFrameworksListApp = (el) => {
diff --git a/ee/app/assets/javascripts/iterations/index.js b/ee/app/assets/javascripts/iterations/index.js
index 509b3aec8639d..03bf0b478e3c9 100644
--- a/ee/app/assets/javascripts/iterations/index.js
+++ b/ee/app/assets/javascripts/iterations/index.js
@@ -19,7 +19,6 @@ const apolloProvider = new VueApollo({
     {},
     {
       batchMax: 1,
-      assumeImmutableResults: true,
     },
   ),
 });
diff --git a/ee/app/assets/javascripts/on_demand_scans/graphql/provider.js b/ee/app/assets/javascripts/on_demand_scans/graphql/provider.js
index 92a178c442b2c..9153c5252b359 100644
--- a/ee/app/assets/javascripts/on_demand_scans/graphql/provider.js
+++ b/ee/app/assets/javascripts/on_demand_scans/graphql/provider.js
@@ -4,12 +4,7 @@ import createDefaultClient from '~/lib/graphql';
 
 Vue.use(VueApollo);
 
-const defaultClient = createDefaultClient(
-  {},
-  {
-    assumeImmutableResults: true,
-  },
-);
+const defaultClient = createDefaultClient();
 
 export default new VueApollo({
   defaultClient,
diff --git a/ee/app/assets/javascripts/on_demand_scans_form/graphql/provider.js b/ee/app/assets/javascripts/on_demand_scans_form/graphql/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/ee/app/assets/javascripts/on_demand_scans_form/graphql/provider.js
+++ b/ee/app/assets/javascripts/on_demand_scans_form/graphql/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/oncall_schedules/graphql.js b/ee/app/assets/javascripts/oncall_schedules/graphql.js
index 74b777ca08623..db8ebb6f0eebb 100644
--- a/ee/app/assets/javascripts/oncall_schedules/graphql.js
+++ b/ee/app/assets/javascripts/oncall_schedules/graphql.js
@@ -19,8 +19,5 @@ const resolvers = {
 };
 
 export default new VueApollo({
-  defaultClient: createDefaultClient(resolvers, {
-    cacheConfig: {},
-    assumeImmutableResults: true,
-  }),
+  defaultClient: createDefaultClient(resolvers),
 });
diff --git a/ee/app/assets/javascripts/pages/projects/edit/merge_options.js b/ee/app/assets/javascripts/pages/projects/edit/merge_options.js
index 4a7ba2b120fbb..67697d384d053 100644
--- a/ee/app/assets/javascripts/pages/projects/edit/merge_options.js
+++ b/ee/app/assets/javascripts/pages/projects/edit/merge_options.js
@@ -47,7 +47,7 @@ const fetchMergeOptions = () => {
   const containerEl = document.querySelector('#project-merge-options');
   const { projectFullPath } = containerEl.dataset;
 
-  const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient();
 
   return defaultClient
     .query({
diff --git a/ee/app/assets/javascripts/requirements/requirements_bundle.js b/ee/app/assets/javascripts/requirements/requirements_bundle.js
index c39da06c0b790..a0179d22d298e 100644
--- a/ee/app/assets/javascripts/requirements/requirements_bundle.js
+++ b/ee/app/assets/javascripts/requirements/requirements_bundle.js
@@ -34,7 +34,6 @@ export default () => {
             object.__typename === 'Requirement' ? object.iid : defaultDataIdFromObject(object),
           fragmentMatcher,
         },
-        assumeImmutableResults: true,
       },
     ),
   });
diff --git a/ee/app/assets/javascripts/roadmap/roadmap_bundle.js b/ee/app/assets/javascripts/roadmap/roadmap_bundle.js
index 4f1d76e752e19..78261da8df133 100644
--- a/ee/app/assets/javascripts/roadmap/roadmap_bundle.js
+++ b/ee/app/assets/javascripts/roadmap/roadmap_bundle.js
@@ -30,7 +30,7 @@ export default () => {
   }
 
   Vue.use(VueApollo);
-  const defaultClient = createDefaultClient({}, { assumeImmutableResults: true });
+  const defaultClient = createDefaultClient();
   const apolloProvider = new VueApollo({
     defaultClient,
   });
diff --git a/ee/app/assets/javascripts/security_configuration/api_fuzzing/graphql/provider.js b/ee/app/assets/javascripts/security_configuration/api_fuzzing/graphql/provider.js
index 16152eb81f698..56f95fa2c1f31 100644
--- a/ee/app/assets/javascripts/security_configuration/api_fuzzing/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_configuration/api_fuzzing/graphql/provider.js
@@ -5,10 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient(
-    {},
-    {
-      assumeImmutableResults: true,
-    },
-  ),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/security_configuration/corpus_management/corpus_management_bundle.js b/ee/app/assets/javascripts/security_configuration/corpus_management/corpus_management_bundle.js
index cd67874e49447..3a2d76a815fc4 100644
--- a/ee/app/assets/javascripts/security_configuration/corpus_management/corpus_management_bundle.js
+++ b/ee/app/assets/javascripts/security_configuration/corpus_management/corpus_management_bundle.js
@@ -15,7 +15,6 @@ export default () => {
   }
 
   const defaultClient = createDefaultClient(resolvers, {
-    assumeImmutableResults: true,
     cacheConfig: {
       dataIdFromObject: (object) => {
         return object.id || defaultDataIdFromObject(object);
diff --git a/ee/app/assets/javascripts/security_configuration/dast/index.js b/ee/app/assets/javascripts/security_configuration/dast/index.js
index 1dd6a1600cbdd..498794fdd8834 100644
--- a/ee/app/assets/javascripts/security_configuration/dast/index.js
+++ b/ee/app/assets/javascripts/security_configuration/dast/index.js
@@ -13,7 +13,7 @@ export default function init() {
   Vue.use(VueApollo);
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const {
diff --git a/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_scanner_profiles/graphql/provider.js b/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_scanner_profiles/graphql/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_scanner_profiles/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_scanner_profiles/graphql/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_site_profiles/graphql/provider.js b/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_site_profiles/graphql/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_site_profiles/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_configuration/dast_profiles/dast_site_profiles/graphql/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/security_configuration/dast_profiles/graphql/provider.js b/ee/app/assets/javascripts/security_configuration/dast_profiles/graphql/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/ee/app/assets/javascripts/security_configuration/dast_profiles/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_configuration/dast_profiles/graphql/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/security_configuration/dast_site_validation/graphql/provider.js b/ee/app/assets/javascripts/security_configuration/dast_site_validation/graphql/provider.js
index fa23669b615ea..ef96b443da8d3 100644
--- a/ee/app/assets/javascripts/security_configuration/dast_site_validation/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_configuration/dast_site_validation/graphql/provider.js
@@ -5,5 +5,5 @@ import createDefaultClient from '~/lib/graphql';
 Vue.use(VueApollo);
 
 export default new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
diff --git a/ee/app/assets/javascripts/security_configuration/sast/index.js b/ee/app/assets/javascripts/security_configuration/sast/index.js
index 48917c2b0d13e..fd240f10ef5f2 100644
--- a/ee/app/assets/javascripts/security_configuration/sast/index.js
+++ b/ee/app/assets/javascripts/security_configuration/sast/index.js
@@ -13,7 +13,7 @@ export default function init() {
   Vue.use(VueApollo);
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const {
diff --git a/ee/app/assets/javascripts/security_dashboard/graphql/provider.js b/ee/app/assets/javascripts/security_dashboard/graphql/provider.js
index 2144934f4695a..0207652659826 100644
--- a/ee/app/assets/javascripts/security_dashboard/graphql/provider.js
+++ b/ee/app/assets/javascripts/security_dashboard/graphql/provider.js
@@ -18,7 +18,6 @@ const defaultClient = createDefaultClient(
     cacheConfig: {
       fragmentMatcher,
     },
-    assumeImmutableResults: true,
   },
 );
 
diff --git a/ee/app/assets/javascripts/storage_counter/index.js b/ee/app/assets/javascripts/storage_counter/index.js
index 55d37e4546ec5..deb751b18852f 100644
--- a/ee/app/assets/javascripts/storage_counter/index.js
+++ b/ee/app/assets/javascripts/storage_counter/index.js
@@ -15,7 +15,7 @@ export default () => {
   } = el.dataset;
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/ee/app/assets/javascripts/subscriptions/buy_addons_shared/graphql.js b/ee/app/assets/javascripts/subscriptions/buy_addons_shared/graphql.js
index 2f975e2fae277..c71ece06869fc 100644
--- a/ee/app/assets/javascripts/subscriptions/buy_addons_shared/graphql.js
+++ b/ee/app/assets/javascripts/subscriptions/buy_addons_shared/graphql.js
@@ -11,14 +11,13 @@ Vue.use(VueApollo);
 
 const gitlabClient = createClient(merge({}, resolvers, purchaseFlowResolvers), {
   typeDefs,
-  assumeImmutableResults: true,
 });
+
 const customersDotClient = createClient(
   {},
   {
     path: '/-/customers_dot/proxy/graphql',
     useGet: true,
-    assumeImmutableResults: true,
   },
 );
 
diff --git a/ee/app/assets/javascripts/subscriptions/new/graphql.js b/ee/app/assets/javascripts/subscriptions/new/graphql.js
index e0a5973f1f4b9..8c92f513894ff 100644
--- a/ee/app/assets/javascripts/subscriptions/new/graphql.js
+++ b/ee/app/assets/javascripts/subscriptions/new/graphql.js
@@ -8,7 +8,6 @@ import { STEPS } from '../constants';
 function createClient(stepList) {
   const client = createDefaultClient(resolvers, {
     typeDefs,
-    assumeImmutableResults: true,
   });
 
   client.cache.writeQuery({
diff --git a/ee/app/assets/javascripts/test_case_create/test_case_create_bundle.js b/ee/app/assets/javascripts/test_case_create/test_case_create_bundle.js
index 48b28c6abbb73..1085533f0d40f 100644
--- a/ee/app/assets/javascripts/test_case_create/test_case_create_bundle.js
+++ b/ee/app/assets/javascripts/test_case_create/test_case_create_bundle.js
@@ -15,7 +15,7 @@ export function initTestCaseCreate({ mountPointSelector }) {
   }
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   return new Vue({
diff --git a/ee/app/assets/javascripts/test_case_list/test_case_list_bundle.js b/ee/app/assets/javascripts/test_case_list/test_case_list_bundle.js
index f4fcd9c88eac5..6c1bda51a5faa 100644
--- a/ee/app/assets/javascripts/test_case_list/test_case_list_bundle.js
+++ b/ee/app/assets/javascripts/test_case_list/test_case_list_bundle.js
@@ -19,7 +19,7 @@ const initTestCaseList = ({ mountPointSelector }) => {
   }
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const {
diff --git a/ee/app/assets/javascripts/test_case_show/test_case_show_bundle.js b/ee/app/assets/javascripts/test_case_show/test_case_show_bundle.js
index 65acd4d960888..95a17d028481b 100644
--- a/ee/app/assets/javascripts/test_case_show/test_case_show_bundle.js
+++ b/ee/app/assets/javascripts/test_case_show/test_case_show_bundle.js
@@ -16,7 +16,7 @@ export default function initTestCaseShow({ mountPointSelector }) {
   }
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const sidebarOptions = JSON.parse(el.dataset.sidebarOptions);
diff --git a/ee/app/assets/javascripts/threat_monitoring/index.js b/ee/app/assets/javascripts/threat_monitoring/index.js
index b854d885696fe..38b3d1f8c6e72 100644
--- a/ee/app/assets/javascripts/threat_monitoring/index.js
+++ b/ee/app/assets/javascripts/threat_monitoring/index.js
@@ -12,7 +12,6 @@ const apolloProvider = new VueApollo({
   defaultClient: createDefaultClient(
     {},
     {
-      assumeImmutableResults: true,
       cacheConfig: {
         dataIdFromObject: (object) => {
           // eslint-disable-next-line no-underscore-dangle
diff --git a/ee/app/assets/javascripts/threat_monitoring/security_policies_list.js b/ee/app/assets/javascripts/threat_monitoring/security_policies_list.js
index 89bd51d4df9a8..51994c6cfe204 100644
--- a/ee/app/assets/javascripts/threat_monitoring/security_policies_list.js
+++ b/ee/app/assets/javascripts/threat_monitoring/security_policies_list.js
@@ -9,7 +9,7 @@ import createStore from './store';
 Vue.use(VueApollo);
 
 const apolloProvider = new VueApollo({
-  defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+  defaultClient: createDefaultClient(),
 });
 
 export default () => {
diff --git a/ee/app/assets/javascripts/threat_monitoring/utils.js b/ee/app/assets/javascripts/threat_monitoring/utils.js
index e217ac357debd..c760ab2b17b47 100644
--- a/ee/app/assets/javascripts/threat_monitoring/utils.js
+++ b/ee/app/assets/javascripts/threat_monitoring/utils.js
@@ -50,9 +50,4 @@ export const removeUnnecessaryDashes = (manifest) => {
 /**
  * Create GraphQL Client for threat monitoring
  */
-export const gqClient = createGqClient(
-  {},
-  {
-    assumeImmutableResults: true,
-  },
-);
+export const gqClient = createGqClient();
diff --git a/ee/app/assets/javascripts/vue_shared/components/sidebar/iterations_dropdown_bundle.js b/ee/app/assets/javascripts/vue_shared/components/sidebar/iterations_dropdown_bundle.js
index 432b0e6395205..9e646bd290804 100644
--- a/ee/app/assets/javascripts/vue_shared/components/sidebar/iterations_dropdown_bundle.js
+++ b/ee/app/assets/javascripts/vue_shared/components/sidebar/iterations_dropdown_bundle.js
@@ -15,7 +15,7 @@ export default function initIterationsDropdownBundle() {
   }
 
   const apolloProvider = new VueApollo({
-    defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
+    defaultClient: createDefaultClient(),
   });
 
   const { fullPath } = el.dataset;
-- 
GitLab