Bug Description
Meetily worked fine for months. Starting today, it fails to launch every time: a blank window pops up for about a second, then disappears. The meetily.exe process keeps running in the background and adds a tray icon, but the tray menu is broken. The top item permanently reads "Downloading transcription model" (greyed out), and none of "Open main window," "Settings," or "Check for updates" do anything. Only "Exit" works.
I want to flag upfront that I haven't found anyone else reporting this exact error, and everything I've tried points to this being something specific to my machine rather than a general Meetily bug. I'm posting it mainly in case the WebView2 handoff logic itself has a rough edge worth knowing about, and in case anyone else with a similar setup runs into the same thing.
Current Behavior
Every single launch hits the same error in stderr:
[timestamp] ERROR tauri_runtime_wry] failed to create webview: WebView2 error: WindowsError(Error { code: HRESULT(0x80010108), message: "The object invoked has disconnected from its clients." })
That's COM error RPC_E_DISCONNECTED, thrown during WebView2 creation. The app doesn't stop there though, it keeps going through its own setup (notifications, model manager, tray, database first-launch check), it just never manages to show a window. It also never gets past "first launch" state; every exit logs AppState not available for database cleanup (likely first launch), so the database/webview handshake apparently never finishes.
Two msedgewebview2 processes crash on every attempt, confirmed by matching Crashpad .dmp files created a second apart, every single time.
Environment
OS: Windows 10 (build 19045)
CPU: AMD Ryzen 7 3700X (no iGPU, discrete GPU only)
Meetily version: 0.4.0
WebView2 Runtime (Evergreen, system-level): 151.0.4129.59
Troubleshooting already tried (none of it fixed it)
GPU acceleration off — launched with WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--disable-gpu, no change.
Fresh WebView2 profile — renamed the app's EBWebView folder to force a clean one. A new folder got created, same crash.
WebView2 Fixed Version runtime — pointed the app at its own bundled Fixed Version runtime via WEBVIEW2_BROWSER_EXECUTABLE_FOLDER. The window stayed open a few seconds longer than usual before crashing with the identical error, so this shifted the timing slightly but didn't fix anything.
Reinstalling the Evergreen runtime — tried uninstalling and reinstalling the system-level runtime. The uninstaller failed both with and without --force-uninstall, logging:
[VERBOSE1:chrome\installer\util\shell_util.cc:3677] Browser/WebView is sticky, uninstall not allowed.
[WARNING:chrome\installer\setup\setup_main.cc:3479] Uninstall was blocked for this product: 93
This looks like a separate bug in the WebView2 installer itself, but it blocked this path entirely. Also found six orphaned msedgewebview2 processes left over from repeated crashes that had to be killed before the uninstaller would even run.
Full reboot — to rule out stale COM/RPC state. No change, same error, same rough timing.
Third-party antivirus — Security Center listed "Avira Security" alongside Defender. Dug into this and confirmed there's no actual Avira binary, process, or service anywhere on the system (checked by path, not just display name). It's a stale Security Center registration with nothing behind it.
Windows Defender exclusions — added exclusions for the app's install and data folders, no change. Removed them afterward.
Controlled Folder Access — confirmed off, not a factor.
Error Messages
Full stderr from a clean launch (RUST_LOG=debug):
[timestamp] INFO meetily] Starting application...
[timestamp] INFO app_lib::whisper_engine::system_monitor] Initializing system monitor
[timestamp] ERROR tauri_runtime_wry] failed to create webview: WebView2 error: WindowsError(Error { code: HRESULT(0x80010108), message: "The object invoked has disconnected from its clients." })
[timestamp] INFO app_lib] Application setup complete
[timestamp] INFO app_lib] Initializing notification system...
[timestamp] INFO app_lib::notifications::commands] Initializing notification manager...
[timestamp] INFO app_lib::whisper_engine::commands] Models directory set to: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] WhisperEngine using models directory: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Debug mode: false
[timestamp] INFO app_lib::parakeet_engine::commands] Parakeet models directory set to: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Vulkan feature enabled - attempting GPU acceleration
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Hardware acceleration support: enabled
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Vulkan GPU support: enabled
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Built-in AI ModelManager using directory: \models\summary
[timestamp] INFO app_lib::database::setup] First launch detected - will notify window when ready
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::parakeet_engine::parakeet_engine] ParakeetEngine using models directory: \models\parakeet
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Starting model scan in directory: \models\summary
[timestamp] INFO app_lib] Initializing bundled templates directory...
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib] Setting bundled templates directory to: \templates
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Model scan complete: 4 models checked in 461.6µs
[timestamp] INFO app_lib::notifications::manager] NotificationManager created successfully
[timestamp] INFO app_lib::summary::templates::loader] Bundled templates directory set to: \templates
[timestamp] INFO app_lib::summary::summary_engine::commands] ModelManager initialized at startup
[timestamp] INFO app_lib::notifications::manager] Initializing notification system...
[timestamp] INFO app_lib] ModelManager initialized successfully at startup
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::manager] Notification system initialized successfully
[timestamp] INFO app_lib::notifications::commands] Notification manager initialized successfully
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib::notifications::settings] Updated notification consent: true
[timestamp] INFO app_lib::notifications::manager] User consent set to: true
[timestamp] INFO app_lib::notifications::system] Requesting notification permission
[timestamp] INFO app_lib::notifications::system] Notification permission granted (automatic for Tauri apps)
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib::notifications::settings] Updated system notification permission: true
[timestamp] INFO app_lib] Notification system initialized with default permissions
[timestamp] INFO app_lib::tray] Tray: update_tray_menu_async called
[timestamp] INFO app_lib::tray] Tray: get_current_recording_state - is_recording: false
[timestamp] INFO app_lib::tray] Tray: Recording state is Stopped
[timestamp] INFO app_lib::tray] Tray: Current recording state: Stopped
[timestamp] INFO app_lib::onboarding] No stored onboarding status found, using defaults
[timestamp] INFO app_lib::tray] Tray: can_record: false
[timestamp] INFO app_lib::tray] Tray: Menu update result: Ok(())
[timestamp] INFO app_lib::database::setup] Emitted first-launch-detected after delay
[timestamp] INFO app_lib] Application exiting, cleaning up resources...
[timestamp] WARN app_lib] AppState not available for database cleanup (likely first launch)
[timestamp] INFO app_lib] Cleaning up sidecar...
[timestamp] INFO app_lib] Cleaning up sidecar complete
Additional Context
This started out of nowhere after months of working fine, I didn't change anything on my end beforehand. Meetily auto-updates in the background, so this might line up with an update to 0.4.0 or a Windows/WebView2 update, but I can't pin down the exact timing.
The error is identical down to the HRESULT and roughly the same timing on every attempt, before and after reboot, with the system runtime and with the Fixed Version runtime. That points to something fully deterministic rather than a flaky race condition, but given how much I've ruled out on the Meetily/WebView2 side specifically, and that I can't find anyone else reporting this exact HRESULT, I suspect the actual root cause is something particular to my system, possibly a leftover driver, policy, or registry artifact from previous software, rather than a defect in Meetily itself. Filing this mainly for visibility and in case it points to something worth hardening in the WebView2 initialization path.
Bug Description
Meetily worked fine for months. Starting today, it fails to launch every time: a blank window pops up for about a second, then disappears. The meetily.exe process keeps running in the background and adds a tray icon, but the tray menu is broken. The top item permanently reads "Downloading transcription model" (greyed out), and none of "Open main window," "Settings," or "Check for updates" do anything. Only "Exit" works.
I want to flag upfront that I haven't found anyone else reporting this exact error, and everything I've tried points to this being something specific to my machine rather than a general Meetily bug. I'm posting it mainly in case the WebView2 handoff logic itself has a rough edge worth knowing about, and in case anyone else with a similar setup runs into the same thing.
Current Behavior
Every single launch hits the same error in stderr:
[timestamp] ERROR tauri_runtime_wry] failed to create webview: WebView2 error: WindowsError(Error { code: HRESULT(0x80010108), message: "The object invoked has disconnected from its clients." })
That's COM error RPC_E_DISCONNECTED, thrown during WebView2 creation. The app doesn't stop there though, it keeps going through its own setup (notifications, model manager, tray, database first-launch check), it just never manages to show a window. It also never gets past "first launch" state; every exit logs AppState not available for database cleanup (likely first launch), so the database/webview handshake apparently never finishes.
Two msedgewebview2 processes crash on every attempt, confirmed by matching Crashpad .dmp files created a second apart, every single time.
Environment
OS: Windows 10 (build 19045)
CPU: AMD Ryzen 7 3700X (no iGPU, discrete GPU only)
Meetily version: 0.4.0
WebView2 Runtime (Evergreen, system-level): 151.0.4129.59
Troubleshooting already tried (none of it fixed it)
GPU acceleration off — launched with WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--disable-gpu, no change.
Fresh WebView2 profile — renamed the app's EBWebView folder to force a clean one. A new folder got created, same crash.
WebView2 Fixed Version runtime — pointed the app at its own bundled Fixed Version runtime via WEBVIEW2_BROWSER_EXECUTABLE_FOLDER. The window stayed open a few seconds longer than usual before crashing with the identical error, so this shifted the timing slightly but didn't fix anything.
Reinstalling the Evergreen runtime — tried uninstalling and reinstalling the system-level runtime. The uninstaller failed both with and without --force-uninstall, logging:
[VERBOSE1:chrome\installer\util\shell_util.cc:3677] Browser/WebView is sticky, uninstall not allowed.
[WARNING:chrome\installer\setup\setup_main.cc:3479] Uninstall was blocked for this product: 93
This looks like a separate bug in the WebView2 installer itself, but it blocked this path entirely. Also found six orphaned msedgewebview2 processes left over from repeated crashes that had to be killed before the uninstaller would even run.
Full reboot — to rule out stale COM/RPC state. No change, same error, same rough timing.
Third-party antivirus — Security Center listed "Avira Security" alongside Defender. Dug into this and confirmed there's no actual Avira binary, process, or service anywhere on the system (checked by path, not just display name). It's a stale Security Center registration with nothing behind it.
Windows Defender exclusions — added exclusions for the app's install and data folders, no change. Removed them afterward.
Controlled Folder Access — confirmed off, not a factor.
Error Messages
Full stderr from a clean launch (RUST_LOG=debug):
[timestamp] INFO meetily] Starting application...
[timestamp] INFO app_lib::whisper_engine::system_monitor] Initializing system monitor
[timestamp] ERROR tauri_runtime_wry] failed to create webview: WebView2 error: WindowsError(Error { code: HRESULT(0x80010108), message: "The object invoked has disconnected from its clients." })
[timestamp] INFO app_lib] Application setup complete
[timestamp] INFO app_lib] Initializing notification system...
[timestamp] INFO app_lib::notifications::commands] Initializing notification manager...
[timestamp] INFO app_lib::whisper_engine::commands] Models directory set to: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] WhisperEngine using models directory: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Debug mode: false
[timestamp] INFO app_lib::parakeet_engine::commands] Parakeet models directory set to: \models
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Vulkan feature enabled - attempting GPU acceleration
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Hardware acceleration support: enabled
[timestamp] INFO app_lib::whisper_engine::whisper_engine] Vulkan GPU support: enabled
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Built-in AI ModelManager using directory: \models\summary
[timestamp] INFO app_lib::database::setup] First launch detected - will notify window when ready
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::parakeet_engine::parakeet_engine] ParakeetEngine using models directory: \models\parakeet
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Starting model scan in directory: \models\summary
[timestamp] INFO app_lib] Initializing bundled templates directory...
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib] Setting bundled templates directory to: \templates
[timestamp] INFO app_lib::summary::summary_engine::model_manager] Model scan complete: 4 models checked in 461.6µs
[timestamp] INFO app_lib::notifications::manager] NotificationManager created successfully
[timestamp] INFO app_lib::summary::templates::loader] Bundled templates directory set to: \templates
[timestamp] INFO app_lib::summary::summary_engine::commands] ModelManager initialized at startup
[timestamp] INFO app_lib::notifications::manager] Initializing notification system...
[timestamp] INFO app_lib] ModelManager initialized successfully at startup
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::manager] Notification system initialized successfully
[timestamp] INFO app_lib::notifications::commands] Notification manager initialized successfully
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib::notifications::settings] Updated notification consent: true
[timestamp] INFO app_lib::notifications::manager] User consent set to: true
[timestamp] INFO app_lib::notifications::system] Requesting notification permission
[timestamp] INFO app_lib::notifications::system] Notification permission granted (automatic for Tauri apps)
[timestamp] INFO app_lib::notifications::settings] Loaded notification settings from disk
[timestamp] INFO app_lib::notifications::settings] Saved notification settings to disk
[timestamp] INFO app_lib::notifications::settings] Updated system notification permission: true
[timestamp] INFO app_lib] Notification system initialized with default permissions
[timestamp] INFO app_lib::tray] Tray: update_tray_menu_async called
[timestamp] INFO app_lib::tray] Tray: get_current_recording_state - is_recording: false
[timestamp] INFO app_lib::tray] Tray: Recording state is Stopped
[timestamp] INFO app_lib::tray] Tray: Current recording state: Stopped
[timestamp] INFO app_lib::onboarding] No stored onboarding status found, using defaults
[timestamp] INFO app_lib::tray] Tray: can_record: false
[timestamp] INFO app_lib::tray] Tray: Menu update result: Ok(())
[timestamp] INFO app_lib::database::setup] Emitted first-launch-detected after delay
[timestamp] INFO app_lib] Application exiting, cleaning up resources...
[timestamp] WARN app_lib] AppState not available for database cleanup (likely first launch)
[timestamp] INFO app_lib] Cleaning up sidecar...
[timestamp] INFO app_lib] Cleaning up sidecar complete
Additional Context
This started out of nowhere after months of working fine, I didn't change anything on my end beforehand. Meetily auto-updates in the background, so this might line up with an update to 0.4.0 or a Windows/WebView2 update, but I can't pin down the exact timing.
The error is identical down to the HRESULT and roughly the same timing on every attempt, before and after reboot, with the system runtime and with the Fixed Version runtime. That points to something fully deterministic rather than a flaky race condition, but given how much I've ruled out on the Meetily/WebView2 side specifically, and that I can't find anyone else reporting this exact HRESULT, I suspect the actual root cause is something particular to my system, possibly a leftover driver, policy, or registry artifact from previous software, rather than a defect in Meetily itself. Filing this mainly for visibility and in case it points to something worth hardening in the WebView2 initialization path.