diff --git a/apps/extension/src/service-worker.ts b/apps/extension/src/service-worker.ts
index be0a223cc8..6020bc9e40 100644
--- a/apps/extension/src/service-worker.ts
+++ b/apps/extension/src/service-worker.ts
@@ -41,6 +41,19 @@ import {
 import { fvkCtx } from '@penumbra-zone/services/ctx/full-viewing-key';
 import { WalletJson } from '@penumbra-zone/types/src/wallet';
 
+/**
+ This fixes an issue where some users do not have 'grpcEndpoint' set after they have finished onboarding
+ */
+const fixEmptyGrpcEndpointAfterOnboarding = async () => {
+  //TODO change to mainnet default RPC
+  const DEFAULT_GRPC_URL = 'https://grpc.testnet.penumbra.zone';
+  const grpcEndpoint = await localExtStorage.get('grpcEndpoint');
+  const wallets = await localExtStorage.get('wallets');
+  if (!grpcEndpoint && wallets[0]) {
+    await localExtStorage.set('grpcEndpoint', DEFAULT_GRPC_URL);
+  }
+};
+
 /**
  * When a user first onboards with the extension, they won't have chosen a gRPC
  * endpoint yet. So we'll wait until they've chosen one to start trying to make
@@ -120,6 +133,7 @@ const getServiceHandler = async () => {
   });
 };
 
+await fixEmptyGrpcEndpointAfterOnboarding();
 await waitUntilGrpcEndpointExists();
 const handler = await getServiceHandler();
 CRSessionManager.init(PRAX, handler);