Skip to content

Troubleshooting Guide

Last Updated: 2026-02-13

Solutions for common issues with VaulType installation, permissions, audio, models, text injection, and performance.


VaulType requires Accessibility permission for text injection via CGEvent and for detecting active text fields.

Symptoms:

  • Text is not injected after dictation
  • “Accessibility permission required” alert appears
  • Voice commands don’t execute

Solution:

  1. Open System Settings > Privacy & Security > Accessibility
  2. Find VaulType in the list
  3. Toggle it ON
  4. If VaulType is not in the list, click the + button and add it from /Applications/VaulType.app

⚠️ If you previously denied the permission, you may need to remove and re-add VaulType from the list.

If the toggle keeps resetting:

Terminal window
# Reset Accessibility permissions (requires restart)
tccutil reset Accessibility com.vaultype.app

Then relaunch VaulType and grant permission when prompted.

Enterprise / MDM environments:

IT administrators can pre-approve Accessibility via MDM profile:

<key>com.apple.TCC.configuration-profile-policy</key>
<dict>
<key>Accessibility</key>
<array>
<dict>
<key>Identifier</key>
<string>com.vaultype.app</string>
<key>IdentifierType</key>
<string>bundleID</string>
<key>Allowed</key>
<true/>
</dict>
</array>
</dict>

Symptoms:

  • No audio captured when pressing the hotkey
  • Audio level meter shows no activity
  • “Microphone access denied” error in logs

Solution:

  1. Open System Settings > Privacy & Security > Microphone
  2. Find VaulType and toggle it ON

If VaulType doesn’t appear in the list:

This usually means the app hasn’t attempted to access the microphone yet. Launch VaulType and press the dictation hotkey — the permission dialog should appear.

If the dialog never appears:

Terminal window
# Reset Microphone permissions
tccutil reset Microphone com.vaultype.app

Relaunch VaulType and try dictating again.


Required for voice commands that control other apps (AppleScript bridge).

Symptoms:

  • “Open Safari” command doesn’t work
  • AppleScript-based commands fail silently

Solution:

  1. Open System Settings > Privacy & Security > Automation
  2. Find VaulType and enable permissions for the target apps

Symptoms:

  • Dictation captures audio from wrong microphone
  • No audio despite microphone working in other apps

Solution:

  1. Open VaulType Settings > Audio
  2. Select the correct input device from the dropdown
  3. Watch the audio level meter to verify it’s receiving signal
  4. Speak and confirm the level meter responds

To check available devices from Terminal:

Terminal window
# List audio devices
system_profiler SPAudioDataType

Symptoms:

  • Audio level meter shows zero regardless of speaking
  • Transcription returns empty text

Checklist:

  1. Microphone permission — Is it granted? (see Microphone Permission Denied)
  2. Correct device — Is the right input device selected in Settings?
  3. Hardware — Does the microphone work in other apps (Voice Memos, QuickTime)?
  4. Mute switch — Some external microphones have physical mute buttons
  5. Sample rate — VaulType requires 16kHz input. Some USB microphones may need driver updates

Debug with Console.app:

  1. Open Console.app
  2. Filter by process: VaulType
  3. Filter by category: audio
  4. Look for error messages related to AVAudioEngine or device initialization

Symptoms:

  • Whisper transcribes background noise as speech
  • Random words appear when not speaking

Solutions:

  1. Adjust noise gate — Open Settings > Audio and increase the noise gate threshold
  2. Use a closer microphone — Headset or desk mic captures less ambient noise
  3. Enable VAD — Voice Activity Detection trims silence and can filter background noise
  4. Choose a quieter environment — Whisper works best with clean audio input

Symptoms:

  • Transcription is garbled or inaccurate
  • Audio level meter hits maximum constantly

Solutions:

  1. Reduce input gain — Lower the microphone input volume in System Settings > Sound
  2. Move away from the microphone — Speak at a natural distance
  3. Check audio format — Ensure the device supports 16-bit, 16kHz mono

Symptoms:

  • “Failed to load model” error after download
  • App crashes when selecting a model
  • Model file size is smaller than expected

Solution:

  1. Open VaulType Settings > Models
  2. Delete the corrupted model
  3. Re-download it
  4. If the problem persists, download manually:
Terminal window
# Delete corrupted model
rm -f ~/Library/Application\ Support/VaulType/Models/ggml-small.bin
# Re-download (example for Whisper small)
curl -L -o ~/Library/Application\ Support/VaulType/Models/ggml-small.bin \
"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin"
# Verify file size (should be ~466MB for small)
ls -lh ~/Library/Application\ Support/VaulType/Models/ggml-small.bin

Symptoms:

  • App crashes during model loading
  • “Cannot allocate memory” in logs
  • macOS shows memory pressure warning

Model memory requirements:

ModelTypeRAM Required
Whisper tinySTT~120 MB
Whisper baseSTT~200 MB
Whisper smallSTT~480 MB
Whisper mediumSTT~1.5 GB
Whisper large-v3STT~3.0 GB
Qwen2.5-3B Q4LLM~2.0 GB
Phi-3.5-mini Q4LLM~2.5 GB

Solutions:

  1. Use a smaller model — Switch to Whisper tiny or base if you have limited RAM
  2. Close other apps — Free up memory before loading larger models
  3. Don’t run STT + LLM simultaneously on 8GB Macs — Use Raw mode to avoid loading the LLM
  4. Check available memory:
Terminal window
# Check available memory
vm_stat | head -5
# Or use Activity Monitor > Memory tab

💡 Tip: On 8GB Macs, use Whisper small + Raw mode. On 16GB+, use Whisper small + Qwen2.5-3B for the best balance.


Symptoms:

  • Previously downloaded model shows as “Not Downloaded”
  • Settings shows empty model list

Solution:

Models are stored in ~/Library/Application Support/VaulType/Models/. If the app can’t find them:

Terminal window
# Check if models exist
ls -la ~/Library/Application\ Support/VaulType/Models/
# If the directory is missing or empty, models need re-download

If models exist but aren’t detected, the model metadata database may be corrupted:

Terminal window
# Reset the model database (models stay on disk)
rm ~/Library/Application\ Support/VaulType/VaulType.store

Relaunch VaulType — it will re-scan the Models directory.


Symptoms:

  • Dictation completes but no text appears at the cursor
  • Text appears in the wrong application

Checklist:

  1. Accessibility permission — Is it granted? (Most common cause)
  2. Cursor position — Is the cursor in an editable text field?
  3. App focus — Is the target app in the foreground?
  4. Injection method — Try switching between CGEvent and Clipboard in Settings > Advanced

Issue: Special characters or escape sequences cause unexpected behavior.

Solution: Use Clipboard injection method for terminal apps. In Settings > Advanced, set the injection method to “Clipboard” or configure a per-app profile for Terminal.

Issue: Text injection may be slow or characters may be dropped.

Solution:

  1. Use Clipboard injection method for Electron apps
  2. In Settings > Advanced, increase the keystroke delay for CGEvent injection
  3. Some Electron apps have built-in clipboard paste support that works better

Issue: CGEvent injection doesn’t work in heavily sandboxed apps.

Solution: Use Clipboard injection. VaulType automatically detects sandboxed apps and falls back to clipboard.

Issue: Rich text editors in browsers (Google Docs, Notion) may not respond to CGEvent.

Solution:

  1. Use Clipboard injection
  2. For Google Docs, ensure the editing cursor is active (not in a menu)
  3. For Notion, click into the text block first

Issue: Accented characters (ü, ö, ñ) or non-Latin scripts don’t inject correctly.

Solution:

  1. Use Clipboard injection method — it handles Unicode correctly
  2. Verify your keyboard layout in System Settings > Keyboard
  3. CGEvent injection depends on the active keyboard layout — switch to the correct one before dictating

Symptoms:

  • Long delay between speaking and text appearing
  • Progress indicator spins for >5 seconds on short clips

Solutions:

ActionExpected Impact
Use a smaller Whisper model (tiny, base)2-5x speedup
Ensure Metal GPU is enabled in Settings3-10x speedup on Apple Silicon
Close GPU-intensive apps (games, video editors)Free GPU resources
Reduce beam size in Settings > AdvancedFaster at slight accuracy cost
Use push-to-talk mode (shorter clips)Less audio to process

Check if Metal acceleration is active:

Terminal window
# Look for Metal usage in logs
log show --predicate 'process == "VaulType" AND category == "whisper"' --last 5m \
| grep -i metal

Symptoms:

  • VaulType using >10% CPU when idle
  • Fan spins up during dictation and doesn’t stop

Solutions:

  1. Check for runaway inference — If the LLM gets stuck in a loop, force-quit and relaunch
  2. Disable preloading — Settings > Advanced > uncheck “Preload models on launch”
  3. Reduce concurrent operations — Don’t dictate while a previous LLM processing is still running

Debug:

Terminal window
# Check VaulType CPU usage
ps aux | grep VaulType
# Sample the process for 5 seconds
sample VaulType 5

Symptoms:

  • VaulType using >3 GB RAM
  • System becomes sluggish during dictation
  • Memory pressure warnings

Solutions:

  1. Use smaller models — See memory requirements table
  2. Unload unused models — If you’re not using LLM processing, the LLM model shouldn’t be loaded
  3. Enable memory-efficient mode — Settings > Advanced > “Unload model after processing”
  4. Restart VaulType — Some memory may not be freed until restart

Symptoms:

  • “An error occurred while checking for updates” message
  • Update downloads but fails to install

Solutions:

  1. Check network — Sparkle needs to reach the appcast URL (this is the only network VaulType uses)
  2. Manual update — Download the latest DMG from GitHub Releases
  3. Permission issue — Ensure VaulType.app is in /Applications/ (not a read-only location)
  4. Clear Sparkle cache:
Terminal window
rm -rf ~/Library/Caches/com.vaultype.app/
defaults delete com.vaultype.app SULastCheckTime

Terminal window
# Update Homebrew and retry
brew update
brew upgrade --cask vaultype
# If that fails, reinstall
brew uninstall --cask vaultype
brew install --cask vaultype

LimitationDescriptionWorkaround
No real-time streamingText appears after you finish speaking, not word-by-wordUse push-to-talk for shorter segments
Intel Mac performanceWhisper and LLM run on CPU only (no Metal)Use tiny/base models on Intel
Sandboxed app injectionSome App Store apps block CGEventUse Clipboard injection method
macOS < 14Not supportedUpgrade to macOS Sonoma or later
Multiple displaysOverlay may appear on wrong displayConfigure overlay display in Settings
Secure input fieldsPassword fields block injectionBy design — security feature
Simultaneous STT + LLMMemory-intensive on 8GB MacsUse Raw mode on low-memory systems
Bluetooth mic latencyBluetooth adds audio latencyUse wired microphone for best results

When reporting a bug, export diagnostics to include with your report:

  1. Open VaulType Settings > Advanced
  2. Click Export Diagnostics
  3. Save the .zip file and attach to your bug report
Terminal window
# Collect logs from the last hour
log show --predicate 'process == "VaulType"' --last 1h > ~/Desktop/vaultype-logs.txt
# Collect system info
system_profiler SPHardwareDataType SPSoftwareDataType > ~/Desktop/vaultype-system.txt
# Check model files
ls -la ~/Library/Application\ Support/VaulType/Models/ >> ~/Desktop/vaultype-system.txt
# Check permissions
tccutil list com.vaultype.app 2>&1 >> ~/Desktop/vaultype-system.txt
# Package
zip ~/Desktop/vaultype-diagnostics.zip \
~/Desktop/vaultype-logs.txt \
~/Desktop/vaultype-system.txt
  1. VaulType version (Settings > About or menu bar > About VaulType)
  2. macOS version (Apple menu > About This Mac)
  3. Mac model (Apple Silicon or Intel, RAM amount)
  4. Whisper model in use
  5. LLM model in use (if applicable)
  6. Steps to reproduce the issue
  7. Expected vs actual behavior
  8. Diagnostic export (see above)
  9. Screenshots if it’s a UI issue