Agent skill · software engineering · jeremylongshore

obsidian-common-errors

Diagnose and fix common Obsidian plugin errors and exceptions.

Why this skill is useful

Provides specific debugging patterns and solutions for common Obsidian plugin errors that the AI wouldn't reliably generate on its own.

What it needs

Requires node installed locally. About 5k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.

What this skill does

Obsidian Common Errors Overview Diagnostic guide for the six most frequent Obsidian plugin development errors, with root causes and copy-paste fixes. Prerequisites Obsidian plugin development environment set up Access to Developer Console (Ctrl/Cmd+Shift+I) Plugin source code access Instructions Step 1: "Cannot read properties of null" — Workspace Not Ready Accessing app.workspace.activeLeaf or app.workspace.getActiveViewOfType() before the layout is initialized returns null. For commands that need workspace access later (not at load time), guard with a null check: Step 2: "Plugin failed to load" — Syntax or Manifest Errors This error appears in the console when Obsidian cannot parse your built main.js or your manifest.json is invalid. Check 1: Build output exists and compiles cleanly Check 2: manifest.json has all required fields Missing id, name, version, or minAppVersion causes a silent load failure. The id must match the folder name under .obsidian/plugins/. Check 3: Default export Step 3: CSS Not Loading — Wrong styles.css Path Obsidian auto-loads styles.css from the plugin root directory. It must be named exactly styles.css (not style.css, not in a subdirectory). If you use a CSS preprocessor, ensure the build outputs to ./styles.css: Common gotcha: the file must be styles.css (plural), not style.css. Step 4: Commands Not Showing in Palette Commands registered outside onload() or after the plugin is enabled won't appear in the command palette. If a command should only be available when a markdown file is open, use editorCallback instead of callback — Obsidian automatically hides it when no editor is active: Step 5: Vault Read Errors — File Doesn't Exist vault.read() and vault.cachedRead() throw if the file doesn't exist. Always check first. For vault files (TFile objects), use getAbstractFileByPath: Step 6: Settings Not Persisting — Missing saveData Call The most common settings bug: modifying the settings object without calling saveData. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills jeremylongshore/obsidian-common-errors

View the source on GitHub

Browse the @skills marketplace