Skip to main content
This error appears in the chat when Second Brain encounters an unhandled exception. The most common cause is a connection problem to the Gemini Proxy Balancer.Check the following:
  • Is GEMINI_PROXY_URL set correctly in your .env file? It must point to a running instance of the Gemini Proxy Balancer.
  • Is the proxy service actually running and reachable from the machine running Second Brain?
Click the Technical details expander below the error to see the full Python traceback. Look for ConnectionError or HTTP status codes like 429 or 503.If you see 429 or 503: your proxy is hitting Gemini API rate limits. The Gemini Proxy Balancer rotates keys automatically, but if all configured keys are exhausted the proxy will reject requests. Add more API keys to your proxy to resolve this.
Second Brain reads your vault path from the OBSIDIAN_VAULT_PATH environment variable (or from the path you opened in the Vault Launcher).Check the following:
  • OBSIDIAN_VAULT_PATH must point to a folder that actually exists on disk.
  • The path must be absolute, not relative. For example, /Users/you/Notes is correct; ./Notes is not.
  • On Docker or Railway deployments, the path must be inside the container’s mounted volume. Use /app/obsidian-vaults as the path and mount your local vault folder there.
If you recently moved the vault folder, click ↗ Switch vault in the sidebar and re-open the vault. This triggers a full re-sync against the current folder contents.
Second Brain checks whether the Builder produced any vault write directives after each step. If none are found but the task was expected to write to the vault, the app automatically requests the Builder to re-emit its output in the correct format. You will see the re-emit attempt appear in the chat.If notes are still not saved after the re-emit:
  • Rephrase your request to be more explicit, for example: Create a markdown note called Project Overview.md with the following content: ...
  • Check that the vault folder is writable by the user running Second Brain.
A conflict status in the Audit Log means the Builder attempted to patch a file using # patch_vault_file:, but the target lines were not found in the current version of the file. This happens when the file was edited externally (directly in Obsidian, for example) after the task was planned but before the patch was applied.Solution: re-run your request. The agents will re-read the current vault state before planning a new patch, so the target lines will match.
Check the following:
  • All Python dependencies must be installed: run pip install -r requirements.txt.
  • Python 3.12 or newer is required. Check your version with python --version.
  • GEMINI_PROXY_URL and OBSIDIAN_VAULT_PATH must be set before launching. Either add them to a .env file in the project root or export them as environment variables before running streamlit run src/interfaces/streamlit/ui.py.
The Manager agent is configured to respond with JSON. If the model returns a malformed response, Second Brain automatically retries once with a stricter format instruction.If the retry also fails, the task is aborted and the loop exits. Try submitting your request again — transient model formatting errors are common and usually don’t repeat.If this happens repeatedly, check that your GEMINI_MODELS list in .env contains valid Gemini model IDs. An unrecognized model ID can cause the proxy to return error responses that the Manager cannot parse.
The Browse Local tab opens a native file picker dialog, which requires a graphical desktop environment.On headless servers (Railway, Docker without a display server, or remote SSH sessions), the dialog cannot open and the button will appear to do nothing.Alternatives:
  • Use the Recent Vaults tab to select a vault that was previously registered.
  • Set OBSIDIAN_VAULT_PATH directly in your .env file before launching, so the vault is loaded automatically on startup.