Bases Debugging Cheat Sheet (printable)
Use this when a Base shows everything, nothing, or behaves differently when embedded.
Key official references:
- Views (filters, All views vs This view, advanced filter editor)
- Bases syntax (this behavior, file properties)
- Functions (file.inFolder, file.hasTag, list(), relative(), etc)
- Fix guide: Obsidian Bases filter not working
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)
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 internal docs
- Obsidian Bases pillar page
- Obsidian Bases filter not working