Common issues and their solutions for Memo.
Issue: The backend fails to start with an error like listen tcp :8090: bind: address already in use.
Solution:
fuser -k 8090/tcp (Linux) or use a different port: go run . --port 8091.Issue: Model fails to load or runs very slowly on CPU.
Solution:
n_gpu_layers is set too high.llama.cpp binary (CUDA for NVIDIA, ROCm for AMD).n_gpu_layers in Settings to offload more to CPU if VRAM is tight.Issue: Backend logs show llama-server binary not found.
Solution:
data/bin/.llama-server binary for your OS from the official llama.cpp releases and place it in data/bin/.Issue: Flutter app opens but shows a white screen or doesn't load data.
Solution:
server.log for any panic errors.Issue: The AI doesn't seem to remember past conversations.
Solution:
Issue: "Failed to connect" or "Authentication error" when using external providers.
Solution:
Issue: Agent mode doesn't respond or tool calls fail.
Solution:
data/permissions.json if permission policies are blocking tools.Issue: The desktop app opens but immediately shows a connection error talking to its own local backend, or the microphone/file picker silently doesn't work.
Cause: The macOS App Sandbox entitlements were missing network.client (blocks Dio's calls to localhost:8090), device.audio-input (blocks the record package for Live Mode/voice input), and files.user-selected.read-write (blocks file_picker); Info.plist was also missing NSMicrophoneUsageDescription.
Solution: Fixed in commit 420e6a5 (frontend/macos/Runner/Release.entitlements, DebugProfile.entitlements, Info.plist). Update to a build that includes this fix.
Issue: Enabling memory/RAG on a local model tanks generation speed (e.g. ~10 tok/s down to 2-3).
Cause (fixed in v3.3.4): The embedding server was auto-sizing itself onto the GPU as if it were the only model running, oversubscribing VRAM alongside the chat model's own server and pushing it into partial CPU fallback.
Solution: Update to a build with the fix — the embedding server now defaults to CPU-only. If you have real VRAM headroom to spare, embedding_gpu_layers in config lets you opt it back onto the GPU.
msvcp140.dll on LaunchIssue: A clean Windows install (common on fresh VMs) fails to start Memo at all with a missing DLL error.
Solution: Fixed in v3.3.4 — the installer now bundles and silently installs the Visual C++ Redistributable. Update to a current installer, or install the VC++ Redistributable manually as a workaround on an older build.
Issue: After signing in under Settings › Subscriptions the model list is empty, or no browser page opens, or a chat stops with a "usage limit reached" card.
Cause / Solution:
xdg-open under KDE). Memo opens the browser itself and also returns the sign-in address so it can be copied by hand. Update if you see it on an older build.continue into the chat by itself — only while Memo is open. Pick another model in the top-right selector to carry on immediately.Issue: The progress line under the chat turns orange after 30 seconds.
Cause: Nothing at all (not even the backend's 10-second heartbeat) has arrived for 30 seconds — a dropped connection to a remote Memo, or a stalled backend. A slow but alive model does not trigger it, because the heartbeat keeps the line green.
Solution: Check that the backend is running and reachable. A reply is only cut after 300 seconds of true silence (30 minutes in total at most); it is then marked as a timeout and the text received so far is kept.
Issue: The live browser panel shows nothing, or browser_* tools fail — or there is no globe button / the model says it has no such tool.
First check: the panel and open_app are Beta features. Turn on Settings › Beta Features; with it off they are not shown or offered at all.
Cause: The browser panel drives an isolated Chromium that is an optional download. Pages are also refused if they are not http, https or a blank page (file:// is blocked on purpose).
Solution: Install Chromium from the Browser Engine section of Settings › General (the Download Chromium button). Agent permission is required for the panel's session endpoints; with Agent Mode off you can still drive the panel by hand if your account has the agent permission.
Issue: The chat shows a sentence like "The provider can't answer right now (HTTP 500)" or "…safety filter refused this request" instead of a raw vendor error.
Cause: Since v4.6.0 Memo translates provider failures into plain sentences in your language; the number in brackets is the HTTP status the provider returned. The vendor's original text is in the backend log (search for ERROR shown to the user as).
Solution: Follow the sentence: reword a refused message; wait and retry on a rate limit or outage; check the key under Settings › API Providers (Subscriptions: sign in again under Settings › Subscriptions); pick another model if the model is unknown or not allowed for the account; start a new chat if it says the conversation no longer fits (Memo normally summarizes at 90% of the window by itself — see the context ring at the foot of the chat).