{"record":{"id":"785ad45a162e6f78","repo":"diegosouzapw/OmniRoute","slug":"cannot-reach-obsidian-at-baseurl-ensure-the-lo","errorCode":null,"errorMessage":"Cannot reach Obsidian at ${baseUrl}. Ensure the Local REST API plugin is running and using the correct port. The REST API uses HTTP on port 27123 — do not use port 27124 (that is a separate MCP endpoint with HTTPS). If connecting via Tailscale, use http://<tailscale-ip>:27123.","messagePattern":"Cannot reach Obsidian at (.+?)\\. Ensure the Local REST API plugin is running and using the correct port\\. The REST API uses HTTP on port 27123 — do not use port 27124 \\(that is a separate MCP endpoint with HTTPS\\)\\. If connecting via Tailscale, use http://<tailscale-ip>:27123\\.","errorType":"exception","errorClass":"ObsidianServerError","httpStatus":null,"severity":"error","filePath":"src/lib/obsidian/api.ts","lineNumber":111,"sourceCode":"      }\n\n      const ct = response.headers.get(\"content-type\") ?? \"\";\n      if (ct.includes(\"application/json\")) {\n        return response.json();\n      }\n      return response.text();\n    } catch (err) {\n      if (err instanceof Error && err.name === \"AbortError\") {\n        clearTimeout(timeout);\n        throw new ObsidianTimeoutError(\"Obsidian API request timed out after 30s\");\n      }\n      if (err instanceof ObsidianAuthError || err instanceof ObsidianNotFoundError) {\n        clearTimeout(timeout);\n        throw err;\n      }\n      if (err instanceof TypeError && err.message === \"fetch failed\") {\n        clearTimeout(timeout);\n        throw new ObsidianServerError(\n          `Cannot reach Obsidian at ${baseUrl}. Ensure the Local REST API plugin is running ` +\n          `and using the correct port. The REST API uses HTTP on port 27123 — do not use ` +\n          `port 27124 (that is a separate MCP endpoint with HTTPS). If connecting via ` +\n          `Tailscale, use http://<tailscale-ip>:27123.`\n        );\n      }\n      if (retryCount < MAX_RETRIES - 1) {\n        lastError = err instanceof Error ? err : new ObsidianServerError(String(err));\n        await sleep(Math.pow(2, retryCount) * 200);\n        return attempt(retryCount + 1);\n      }\n      clearTimeout(timeout);\n      throw err;\n    }\n  };\n\n  return attempt(0);\n}","sourceCodeStart":93,"sourceCodeEnd":129,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/obsidian/api.ts#L93-L129","documentation":"Error \"Cannot reach Obsidian at ${baseUrl}. Ensure the Local REST API plugin is running and using the correct port. The REST API uses HTTP on port 27123 — do not use port 27124 (that is a separate MCP endpoint with HTTPS). If connecting via Tailscale, use http://<tailscale-ip>:27123.\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/obsidian/api.ts:111 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}