Skip to content

Troubleshooting ​

Quick Lookup ​

Common issues and where to look for the fix:

SymptomLikely causeWhere to look
MCP client can't connectStale port file or VMark not runningMCP Server Connection Issues
File won't open or shows garbled textNon-UTF-8 encoding or quarantine attributeFile Won't Open
AI Genie hangs or returns nothingProvider misconfigured or CLI not on PATHAI Genie Not Responding
Keyboard shortcut does nothingReassigned in Settings or system overrideKeyboard Shortcut Not Working
Slow editor on large filesPer-tab memory + 10K+ line input lagEditor Performance
Menu still in English after language changeMenu rebuilds on launchMenu Bar Shows English
PDF export incompleteImage paths or write permissionsExport/Print Issues
Slow startup on WindowsWebView2 + antivirus scanningApp Launches Slowly on Windows
Cmd + R / Ctrl + R does nothingReload is blocked by designReload Is Blocked
Double-clicking a file opened it in the running VMarkSingle-instance forwarding on Windows and LinuxOne VMark at a Time on Windows and Linux
Blank window on LinuxWebKitGTK DMABUF rendererBlank Window on Linux
Straight quotes and -- stay literal on macOSSystem smart substitutions are turned off for VMarkSmart Quotes and Dashes on macOS
VMark never "naps" in Activity MonitorApp Nap is disabled so AI assistants keep workingVMark Stays Awake in the Background
A folder dialog opens for a recent workspace, or an error says forbidden pathThe folder is outside what VMark may readFolder Access and forbidden path Errors

For anything not listed above, see Reporting Bugs.

Log Files ​

VMark writes log files to help diagnose issues. Logs include warnings and errors from both the Rust backend and the frontend.

Log File Locations ​

PlatformPath
macOS~/Library/Logs/app.vmark/
Windows%LOCALAPPDATA%\app.vmark\logs\
Linux~/.local/share/app.vmark/logs/

Log Levels ​

LevelWhat's LoggedProductionDevelopment
ErrorFailures, crashesYesYes
WarnRecoverable issues, fallbacksYesYes
InfoMilestones, state changesYesYes
DebugDetailed tracingNoYes

Log Rotation ​

  • Maximum file size: 5 MB
  • Rotation: keeps one previous log file
  • Old logs are automatically replaced

Reporting Bugs ​

When reporting a bug, include:

  1. VMark version — shown in the navbar badge or About dialog
  2. Operating system — macOS version, Windows build, or Linux distro
  3. Steps to reproduce — what you did before the issue occurred
  4. Log file — attach or paste the relevant log entries

Log entries are timestamped and tagged by module (e.g., [HotExit], [MCP Bridge], [Export]), making it easy to find relevant sections.

Finding Relevant Logs ​

  1. Open the log directory from the table above
  2. Open the most recent .log file
  3. Search for ERROR or WARN entries near the time the issue occurred
  4. Copy the relevant lines and include them in your bug report

Common Issues ​

App Launches Slowly on Windows ​

VMark is optimized for macOS. On Windows, startup may be slower due to WebView2 initialization. Make sure:

  • WebView2 Runtime is up to date
  • Antivirus software is not scanning the app data directory in real-time

If the menu bar stays in English after switching language in Settings, restart VMark. The menu rebuilds on next launch with the saved language.

Terminal Doesn't Accept CJK Punctuation ​

Fixed in v0.6.5+. Update to the latest version.

MCP Server Connection Issues ​

The MCP server may fail to start or clients may not connect.

  • Ensure VMark is running — the MCP server only starts when the app is open.
  • Check that no other process is using the same port. The MCP server writes a port file for client discovery; stale port files from a previous session can cause conflicts. Restart VMark to regenerate it.
  • Review the log file for [MCP Bridge] entries to identify connection errors.

Keyboard Shortcut Not Working ​

A shortcut may appear unresponsive if it conflicts with another binding or has been customized.

  • Open Settings (Mod + ,) and navigate to the Shortcuts tab to check whether the shortcut has been reassigned.
  • Look for duplicate bindings — if two actions share the same key combination, only one will fire.
  • On macOS, some shortcuts may conflict with system-level bindings (e.g., Mission Control, Spotlight). Check System Settings > Keyboard > Keyboard Shortcuts.

Export/Print Issues ​

PDF export may hang or produce incomplete output.

  • If images are missing in the export, verify that image paths are relative to the document and that the files exist on disk. Absolute URLs and remote images should be accessible.
  • Check file permissions on the output directory — VMark needs write access to save the exported file.
  • For large documents, export may take longer. Check the log file for [Export] entries if it appears stuck.

File Won't Open ​

VMark may refuse to open a file or show garbled content.

  • Verify the file has read permissions for your user account.
  • VMark opens UTF-8 files only. A file marked as UTF-16 or UTF-32 (by its byte-order mark) is refused at open with a toast: "path is encoded as encoding. VMark opens UTF-8 files only — save it as UTF-8 in another editor, then open it again." Other legacy encodings (GB2312, Shift-JIS) carry no mark; they open but may show garbled text — convert them to UTF-8 first.
  • A UTF-8 file that starts with a byte-order mark keeps it: VMark preserves the BOM through open and save.
  • If the file is locked by another process (e.g., a sync client or backup tool), close that process and try again.
  • macOS: double-clicking a downloaded file does nothing while VMark is running. Files saved by some apps carry the download-quarantine attribute (com.apple.quarantine), and macOS can silently drop the request to open such a file in an app that is already running. When you open a workspace, VMark removes the attribute from the workspace folder and the files directly inside it that it can open (subfolders are not touched) — the Clear download quarantine on workspace open setting under Settings → Advanced → macOS, on by default. For any other file, use File → Open, or run xattr -d com.apple.quarantine <file> in Terminal.

Folder Access and forbidden path Errors ​

Outside your home folder and mounted volumes — and, on Windows, outside drives C:\ to F:\ — VMark reads only what you have given it access to; see What VMark can read on disk.

  • A folder dialog opens when you choose a recent workspace. VMark cannot confirm that you chose that folder before, and nothing else lets it read there. The dialog opens at that folder: click Open to confirm, and VMark remembers it from then on. Cancel, and nothing opens.
  • An AI assistant's request to open a folder needs one more step. After you approve the request, VMark shows the same dialog; choose the folder there, then let the assistant retry.
  • An error mentions forbidden path, or an image does not show. The file is outside every place VMark may read — often an image next to a document you opened on its own. Open the document's folder with File → Open Workspace… to give VMark the whole folder.

Editor Performance ​

The editor may slow down with very large files or many open tabs.

  • Close unused tabs to free memory — each open tab maintains its own editor state.
  • Very large documents (over 10,000 lines) can cause input lag. Consider splitting them into smaller files.
  • Disable Focus Mode and Typewriter Mode if not needed, as they add extra rendering overhead.

AI Genie Not Responding ​

AI Genies require a configured AI provider to function.

  • Open Settings and verify that an AI provider (e.g., Ollama, OpenAI, Anthropic) is configured with a valid model name.
  • The provider CLI must be available in your PATH. On macOS, GUI apps have a minimal PATH — if the CLI was installed via Homebrew, ensure your shell profile exports the correct path.
  • Check the model name for typos. An incorrect model name will silently fail or return an error.

Reload Is Blocked ​

Cmd + R, Ctrl + R and Ctrl + Shift + R do nothing, on purpose. Reloading the webview would throw away every open editor, its undo history and any unsaved state, so VMark blocks the shortcuts, the page-unload path and the webview's own context menu. Two exceptions: Ctrl + R reaches the shell when the integrated terminal is focused (reverse-i-search), and F5 is never blocked because it is the Source Peek shortcut. Development builds only warn about unsaved documents instead.

One VMark at a Time on Windows and Linux ​

Double-clicking a file, or launching VMark again from a launcher, hands the file to the VMark that is already running and brings a window forward instead of starting a second copy. A second process would share the first one's app data, session and window storage, and the two would overwrite each other's state — the data loss behind #1330. macOS has always behaved this way through the operating system. A development (tauri dev) build uses its own identifier and so counts as a different app.

On Windows, if the VMark that is already running has stopped responding and can no longer receive the hand-off, a new launch does not start a second copy beside it. It shows a message instead: open Task Manager, end every VMark process, then start VMark again (#1527).

On Linux this relies on the D-Bus session bus. In a session with no usable DBUS_SESSION_BUS_ADDRESS, VMark still starts but without this guard — launching it again starts a second copy, with the risk described above — and the log records that the guard is off. Launch it from a desktop session, or from a shell where that variable is set.

Blank Window on Linux ​

On some AMD / Mesa / WebKitGTK combinations (Arch with KDE Plasma 6 was the reported case, #1058) WebKitGTK's DMABUF renderer fails and the content area stays blank. VMark sets WEBKIT_DISABLE_DMABUF_RENDERER=1 before the webview starts so this does not happen. If you want the DMABUF renderer back, launch with WEBKIT_DISABLE_DMABUF_RENDERER=0 — VMark only sets the variable when you have not.

A Shortcut Types a Character While a Chinese Input Method Is On ​

Fixed. With Chinese punctuation on, an input method rewrites the punctuation keys — the backtick key produces ·, the brackets produce 【】 — and it commits that character before the app is told the key was pressed. So Ctrl + ` used to toggle the terminal and leave a stray · in the document, marking a clean file as edited.

VMark now vetoes the insertion itself rather than the keypress, so a command chord types nothing. Ordinary Chinese typing, dead keys (Option + e) and AltGr characters on European keyboards are untouched — only insertions arriving while Ctrl or Cmd is held are refused, and no VMark chord means "type this character".

If you still see a stray character from a shortcut, it is worth reporting with the input method's name and the exact chord.

Smart Quotes and Dashes on macOS ​

Typing -- or " in VMark stays literal even if your Mac has Use smart quotes and dashes turned on. The system would otherwise rewrite text underneath the editor — --> in a Mermaid block became —> — so VMark turns off the automatic dash, quote and period substitutions for its own process only. Other apps are unaffected, as are input methods and your own text replacements. For typographic quotes inside VMark, use the CJK formatter's smart-quote rules or the quote-style toggle (Shift + Mod + ').

VMark Stays Awake in the Background (App Nap) ​

On macOS, VMark opts out of App Nap for as long as it runs, so Activity Monitor shows it as never napping even when its windows are hidden. App Nap would freeze the webview — and with it every AI-assistant (MCP) request — until you brought a window forward; staying awake is what lets an assistant keep working while you are in another app. The system may still sleep when idle; VMark only asks not to be napped.