epicenter icon indicating copy to clipboard operation
epicenter copied to clipboard

Fresh Chrome Extension Not Working - "Settings Not Found"

Open tutorempire opened this issue 10 months ago • 1 comments

Just installed the Whispering Chrome app (windows), but it's not working. When I try to go to settings, I get this:

image

tutorempire avatar Jan 09 '25 03:01 tutorempire

Hey @tutorempire I had this issue too and I think I worked out a way to fix this:

  1. Open the Whispering website or the Chrome extension's options page. (Actually it's probably one or the other but I'm not sure which one it was so do it on both.)

  2. Open Developer Tools (press F12 or right-click and select Inspect) and go to the Console tab.

  3. Run the following snippet to remove any existing (legacy or misformatted) settings and save the new defaults:

    // Legacy settings JSON from local storage (if available)
    const legacySettingsJson = "{\"sound.playOn.start\":true,\"sound.playOn.stop\":true,\"sound.playOn.cancel\":true,\"sound.playOn.transcriptionComplete\":true,\"sound.playOn.transformationComplete\":true,\"transcription.clipboard.copyOnSuccess\":true,\"transcription.clipboard.pasteOnSuccess\":true,\"transformation.clipboard.copyOnSuccess\":true,\"transformation.clipboard.pasteOnSuccess\":true,\"recording.isFasterRerecordEnabled\":false,\"system.closeToTray\":false,\"system.alwaysOnTop\":\"Never\",\"database.recordingRetentionStrategy\":\"keep-forever\",\"database.maxRecordingCount\":\"5\",\"recording.selectedAudioInputDeviceId\":\"default\",\"recording.bitrateKbps\":\"16\",\"transcription.selectedTranscriptionService\":\"OpenAI\",\"transcription.groq.model\":\"whisper-large-v3\",\"transcription.outputLanguage\":\"auto\",\"transcription.prompt\":\"\",\"transcription.temperature\":\"0\",\"transcription.fasterWhisperServer.serverUrl\":\"http://localhost:8000\",\"transcription.fasterWhisperServer.serverModel\":\"Systran/faster-whisper-medium.en\",\"transformations.selectedTransformationId\":null,\"apiKeys.openai\":\"[YOUR_OPENAI_API_KEY]\",\"apiKeys.anthropic\":\"\",\"apiKeys.groq\":\"\",\"shortcuts.currentLocalShortcut\":\"space\",\"shortcuts.currentGlobalShortcut\":\"CommandOrControl+Shift+;\"}";
    const legacySettings = JSON.parse(legacySettingsJson);
    
    // Create new settings object mapping legacy keys to new schema
    const newSettings = {
      isPlaySoundEnabled: legacySettings["sound.playOn.start"] ?? true,
      isCopyToClipboardEnabled: legacySettings["transcription.clipboard.copyOnSuccess"] ?? true,
      isPasteContentsOnSuccessEnabled: legacySettings["transcription.clipboard.pasteOnSuccess"] ?? true,
      isFasterRerecordEnabled: legacySettings["recording.isFasterRerecordEnabled"] ?? false,
      closeToTray: legacySettings["system.closeToTray"] ?? false,
      alwaysOnTop: legacySettings["system.alwaysOnTop"] ?? "Never",
      selectedAudioInputDeviceId: legacySettings["recording.selectedAudioInputDeviceId"] ?? "default",
      recordingBitrate: legacySettings["recording.bitrateKbps"] ?? "16",
      selectedTranscriptionService: legacySettings["transcription.selectedTranscriptionService"] ?? "OpenAI",
      openAiApiKey: legacySettings["apiKeys.openai"] ?? "",
      anthropicApiKey: legacySettings["apiKeys.anthropic"] ?? "",
      groqApiKey: legacySettings["apiKeys.groq"] ?? "",
      fasterWhisperServerUrl: legacySettings["transcription.fasterWhisperServer.serverUrl"] ?? "http://localhost:8000",
      fasterWhisperServerModel: legacySettings["transcription.fasterWhisperServer.serverModel"] ?? "Systran/faster-whisper-medium.en",
      outputLanguage: legacySettings["transcription.outputLanguage"] ?? "auto",
      currentLocalShortcut: legacySettings["shortcuts.currentLocalShortcut"] ?? "space",
      currentGlobalShortcut: legacySettings["shortcuts.currentGlobalShortcut"] ?? "CommandOrControl+Shift+;",
    };
    
    // Save the updated settings back to local storage
    localStorage.setItem('whispering-settings', JSON.stringify(newSettings));
    
  4. Refresh the page.


Why This Works:

  • The error appears because the app uses a Zod schema to validate settings. If your stored settings use old key names (e.g., "sound.playOn.start") or are missing keys entirely, the schema validation fails.
  • By removing any existing settings and writing a new settings object (mapping the legacy keys to the new schema) with the keys expected by the schema, you ensure that the app has the correctly formatted settings, which resolves the error.

Note: This process completely overwrites any existing settings. If you had previously stored values you want to keep, you'll need to map them to the new keys.

@braden-w I think you've got some versioning issues with the settings. I'd suggest adding a restore to defaults button on the options.html page if settings are missing.

tomglynch avatar Feb 10 '25 11:02 tomglynch

Thank you for the issue, and sorry for the delay in development!

I finally returned to development, and I'm currently rebuilding the extension as we speak after a huge rewrite during the v7 release.

Hopefully I'll be able to fix all of the issues once I'm done! Will keep you updated.

In the meantime, please use the desktop and web app! I apologize for the inconvenience.

braden-w avatar Jul 08 '25 18:07 braden-w