diff --git a/src/components/SettingsTreasuriesBlockItemButton.vue b/src/components/SettingsTreasuriesBlockItemButton.vue
index 3feb8f35..453c5c69 100644
--- a/src/components/SettingsTreasuriesBlockItemButton.vue
+++ b/src/components/SettingsTreasuriesBlockItemButton.vue
@@ -1,7 +1,7 @@
 <script setup lang="ts">
 import { TreasuryWallet } from '@/helpers/interfaces';
 import { Network } from '@/plugins/oSnap/types';
-import { getIsOsnapEnabled } from '@/plugins/oSnap/utils/getters';
+import { ConfigError, getIsOsnapEnabled } from '@/plugins/oSnap/utils/getters';
 
 const props = defineProps<{
   treasury: TreasuryWallet;
@@ -17,13 +17,21 @@ const emit = defineEmits<{
 }>();
 
 const isOsnapEnabled = ref(false);
+const isChainSupported = ref(true);
 
 async function updateIsOsnapEnabled() {
   if (!props.hasOsnapPlugin) return;
-  isOsnapEnabled.value = await getIsOsnapEnabled(
+  const isEnabled = await getIsOsnapEnabled(
     props.treasury.network as Network,
     props.treasury.address
-  );
+  ).catch(e => {
+    if (e instanceof ConfigError) {
+      isChainSupported.value = false;
+      return false;
+    }
+    return false;
+  });
+  isOsnapEnabled.value = isEnabled;
 }
 
 onMounted(async () => {
@@ -47,12 +55,13 @@ onUnmounted(() => {
     </div>
     <div class="ml-auto mr-3">
       <SettingsTreasuryActivateOsnapButton
-        v-show="hasOsnapPlugin"
+        v-if="hasOsnapPlugin && isChainSupported"
         :is-osnap-enabled="isOsnapEnabled"
         @click.stop="
           !isViewOnly && emit('configureOsnap', treasuryIndex, isOsnapEnabled)
         "
       />
+      <div v-else>Unsupported chain</div>
     </div>
     <BaseButtonIcon
       v-show="!isViewOnly"
diff --git a/src/plugins/oSnap/utils/getters.ts b/src/plugins/oSnap/utils/getters.ts
index ec993cfb..e1256990 100644
--- a/src/plugins/oSnap/utils/getters.ts
+++ b/src/plugins/oSnap/utils/getters.ts
@@ -37,7 +37,6 @@ import {
 } from '../types';
 import { getPagedEvents } from './events';
 import { shortenAddress, toChecksumAddress } from '@/helpers/utils';
-import app from '../../../main';
 
 /**
  * Calls the Gnosis Safe Transaction API
@@ -100,6 +99,17 @@ function getDeployBlock(params: { network: Network; name: string }): number {
   return 0;
 }
 
+export class ConfigError extends Error {
+  constructor(message: string, responsibleVar: string) {
+    super(message);
+    this.name = 'CONFIG_ERROR';
+  }
+}
+
+export function logIfErrorMessage(e: unknown, overrideMessage: string) {
+  console.error(e instanceof Error ? e.message : overrideMessage);
+}
+
 /**
  * Fetches the subgraph url for a given contract on a given network.
  */
@@ -109,17 +119,17 @@ function getContractSubgraph(params: { network: Network; name: string }) {
       contract.network === params.network && contract.name === params.name
   );
   if (results.length > 1)
-    throw new Error(
-      `Too many results finding ${params.name} subgraph on network ${params.network}`
+    throw new ConfigError(
+      `Too many results finding ${params.name} subgraph on network ${params.network}`,
+      'subgraph'
     );
-  if (results.length < 1)
-    throw new Error(
-      `No results finding ${params.name} subgraph on network ${params.network}`
-    );
-  if (!results[0].subgraph)
-    throw new Error(
-      `No subgraph url defined for ${params.name} on network ${params.network}`
+
+  if (results.length < 1 || !results[0].subgraph)
+    throw new ConfigError(
+      `No subgraph url defined for ${params.name} on network ${params.network}`,
+      'subgraph'
     );
+
   return results[0].subgraph;
 }
 
@@ -199,12 +209,11 @@ export const getModuleAddressForTreasury = async (
     const result = await queryGql<Result>(subgraph, query);
     return result?.safe?.optimisticGovernor?.id ?? '';
   } catch (error) {
-    console.error(
-      error instanceof Error
-        ? error.message
-        : `Unable to get module address for treasury ${shortenAddress(
-            treasuryAddress
-          )} on network ${network}`
+    logIfErrorMessage(
+      error,
+      `Unable to get module address for treasury ${shortenAddress(
+        treasuryAddress
+      )} on network ${network}`
     );
 
     throw error;
@@ -233,12 +242,11 @@ export const getIsOsnapEnabled = async (
     const result = await queryGql<Result>(subgraph, query);
     return result?.safe?.isOptimisticGovernorEnabled ?? false;
   } catch (error) {
-    console.error(
-      error instanceof Error
-        ? error.message
-        : `Unable to check if oSnap is enable for address ${shortenAddress(
-            safeAddress
-          )} on network ${network}`
+    logIfErrorMessage(
+      error,
+      `Unable to check if oSnap is enable for address ${shortenAddress(
+        safeAddress
+      )} on network ${network}`
     );
     throw error;
   }