Skip to content

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:

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


Step 1: Add a Debug view (90 seconds)

Screenshot: a temporary Debug table that exposes file.path, file.folder, file.tags, and file.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