Bases Debugging Cheat Sheet (printable)
Use this when a Base shows everything, nothing, or behaves differently when embedded.
If you need the full explanation behind each fix:
- Obsidian Bases filter not working
- Obsidian Bases pillar page
Screenshot: the Filter menu with "All views" and "This view" visible. This matters because the cheat sheet should anchor the user to the one UI distinction that explains the most failures.
Step 0: Identify the symptom
- Symptom A: Base shows 0 results
- Symptom B: Base shows every file (filters "not working")
- Symptom C: Works normally, breaks when embedded
- Symptom D: Works on one device, breaks with sync
- Symptom E: Cards/Map show blanks (view-specific)
Step 1: Add a Debug view (90 seconds)
Screenshot: a temporary Debug table that exposes
file.path,file.folder,file.tags, andfile.links. This matters because the cheat sheet is supposed to be diagnostic, not just descriptive.
Add this view to your base temporarily so you can see what the base is actually evaluating.
views:
- type: table
name: Debug
order:
- file.path
- file.folder
- file.ext
- file.tags
- file.links
limit: 200
File properties are documented in: Bases syntax
Step 2: Top 10 failure modes (with copy/paste fixes)
1) You forgot that a base without filters shows everything
Fix: Add a dataset filter (folder, type, or tag).
Official: Views
Example (tag dataset):
filters:
and:
- 'file.hasTag("project")'
2) You applied the filter to "This view" but you are looking at a different view
Fix: Put dataset filters at the global filters level ("All views"), and slice filters in each view.
Official: Views
3) Folder filter broke after a rename
Symptom: Base shows nothing after you rename a folder.
Fix: Update the folder path in the filter manually.
Known issue: folder rename breaks base folder filter
Copy/paste:
filters:
and:
- 'file.inFolder("New Folder Name")'
4) You used tags.contains("x") but meant "file tags"
Fix: Use file.hasTag("x") for tags in content + frontmatter.
Official: Functions
Clarification: file.hasTag vs tags.contains
Copy/paste:
filters:
and:
- 'file.hasTag("places")'
5) You used this but its meaning changed (open vs embed vs sidebar)
Fix: Confirm what this points to using a "this test" filter.
Official: Bases syntax (this)
Copy/paste test:
filters:
and:
- 'file.path == this.file.path'
6) Link vs string mismatch (contains never matches)
Symptom: contains() or equality comparisons never match.
Fix: Compare like with like (link vs link, string vs string).
If your property stores links, compare to this or this.file, not this.file.name.
Copy/paste (list of links to the embedding note):
filters:
and:
- 'list(attendees).contains(this)'
Official: Functions (list, contains)
7) List vs scalar mismatch (property sometimes list, sometimes single value)
Fix: Wrap in list() to normalize.
Official: Bases syntax (list())
Copy/paste:
filters:
and:
- 'list(attendees).contains(this)'
8) Date filters return nothing (date vs datetime confusion)
Fix: Use today() and datetime.date() when needed.
Official: Bases syntax (date arithmetic and datetime.date())
Copy/paste (due today):
filters:
and:
- 'due && due.date() == today()'
9) Cards view shows no images
Fix: Ensure your image property value is one of the supported formats and set the Cards view "Image property" to that property.
Supported formats: attachment link "[[path/to/image.jpg]]", external URL, or hex color. Official: Cards view (Image property)
10) Map view is blank
Fix: Confirm requirements (Obsidian 1.10 + Maps plugin) and coordinate format.
Official: Map view
Copy/paste coordinates:
---
coordinates:
- "48.85837"
- "2.294481"
tags:
- places
---
If you are still stuck: reduce to a minimal base
views:
- type: table
name: Minimal
filters:
and:
- 'file.ext == "md"'
order:
- file.path
limit: 50
Then add one filter at a time until it breaks.
Related
- Obsidian Bases pillar page
- Obsidian Bases filter not working