Skip to content

Commit

Permalink
docs: Write up the Obsidian 1.6.x titled callouts issue (#2910)
Browse files Browse the repository at this point in the history
See #2890
  • Loading branch information
claremacrae authored Jun 23, 2024
1 parent 8903b6a commit d504778
Show file tree
Hide file tree
Showing 6 changed files with 239 additions and 0 deletions.
22 changes: 22 additions & 0 deletions docs-snippets/snippet-callout-titles-bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!-- force a blank line -->

> [!Warning] Warning: Obsidian 1.6.x bug causing some tasks not to be found
> If **all** the following apply to **any** of your vaults...
>
> - You are using one of these versions of Obsidian:
> - Obsidian 1.6.3 - public release
> - Obsidian 1.6.4 - [early access version](https://help.obsidian.md/Obsidian/Early+access+versions)
> - You use a plugin like Tasks or dataview to find or edit tasks in your Obsidian vault
> - Your vault has [any tasks inside callouts](https://help.obsidian.md/Editing+and+formatting/Callouts)
> - And any of these [callouts have titles](https://help.obsidian.md/Editing+and+formatting/Callouts#Change+the+title)
>
> ... ==please read this page:== [[Missing tasks in callouts with some Obsidian 1.6.x versions]].
>
> For clarity, this is what a task in a callout with a title looks like:
>
> ```text
> > [!NOTE] Some Title - remove title to fix issue
> > - [ ] Task not be found by Obsidian 1.6.3, and not always by 1.6.4
> ```
<!-- force a blank line -->
22 changes: 22 additions & 0 deletions docs/Getting Started/Getting Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,28 @@ This is because they will usually be displayed in a completely different order t

### Tasks in Blockquotes and Callouts

<!-- force a blank line --><!-- include: snippet-callout-titles-bug.md -->

> [!Warning] Warning: Obsidian 1.6.x bug causing some tasks not to be found
> If **all** the following apply to **any** of your vaults...
>
> - You are using one of these versions of Obsidian:
> - Obsidian 1.6.3 - public release
> - Obsidian 1.6.4 - [early access version](https://help.obsidian.md/Obsidian/Early+access+versions)
> - You use a plugin like Tasks or dataview to find or edit tasks in your Obsidian vault
> - Your vault has [any tasks inside callouts](https://help.obsidian.md/Editing+and+formatting/Callouts)
> - And any of these [callouts have titles](https://help.obsidian.md/Editing+and+formatting/Callouts#Change+the+title)
>
> ... ==please read this page:== [[Missing tasks in callouts with some Obsidian 1.6.x versions]].
>
> For clarity, this is what a task in a callout with a title looks like:
>
> ```text
> > [!NOTE] Some Title - remove title to fix issue
> > - [ ] Task not be found by Obsidian 1.6.3, and not always by 1.6.4
> ```
<!-- force a blank line --><!-- endInclude -->
Tasks can read tasks that are inside [blockquotes](https://www.markdownguide.org/basic-syntax/#blockquotes-1) or [Obsidian's built-in callouts](https://help.obsidian.md/How+to/Use+callouts).
> [!released]
Expand Down
23 changes: 23 additions & 0 deletions docs/Introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@ publish: true

## What's New?

<!-- force a blank line --><!-- include: snippet-callout-titles-bug.md -->

> [!Warning] Warning: Obsidian 1.6.x bug causing some tasks not to be found
> If **all** the following apply to **any** of your vaults...
>
> - You are using one of these versions of Obsidian:
> - Obsidian 1.6.3 - public release
> - Obsidian 1.6.4 - [early access version](https://help.obsidian.md/Obsidian/Early+access+versions)
> - You use a plugin like Tasks or dataview to find or edit tasks in your Obsidian vault
> - Your vault has [any tasks inside callouts](https://help.obsidian.md/Editing+and+formatting/Callouts)
> - And any of these [callouts have titles](https://help.obsidian.md/Editing+and+formatting/Callouts#Change+the+title)
>
> ... ==please read this page:== [[Missing tasks in callouts with some Obsidian 1.6.x versions]].
>
> For clarity, this is what a task in a callout with a title looks like:
>
> ```text
> > [!NOTE] Some Title - remove title to fix issue
> > - [ ] Task not be found by Obsidian 1.6.3, and not always by 1.6.4
> ```
<!-- force a blank line --><!-- endInclude -->
_In recent [releases](https://github.com/obsidian-tasks-group/obsidian-tasks/releases)..._
<!--
Expand Down
2 changes: 2 additions & 0 deletions docs/Support and Help/About Support and Help.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ publish: true
### User Support

- [[Known Limitations]]
- [[Missing tasks in callouts with some Obsidian 1.6.x versions]]
- Obsidian 1.6.3 and 1.6.4 have a ==severe issue that causes some tasks not to be found by plugins==.
- [[Breaking Changes]]
- Tasks releases with version numbers ending `.0.0` indicate that an update to user vaults may be required.
- [[Report a Bug]]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
---
publish: true
---

# Missing tasks in callouts with some Obsidian 1.6.x versions

## tl;dr

> [!Info] This page is **very important** to you if:
>
> - you use any Obsidian plugins to manage tasks (such as Tasks or dataview)
> - *...and...*
> - you use [[#What is a callout with a title?|callouts with titles]] in your vault,
> - *...and...*
> - you have any task lines inside those callouts,
> - *...and...*
> - you are using Obsidian 1.6.3 or 1.6.4
> - (We don't know if 1.6.0, 1.6.1 or 1.6.2 were also affected).
> [!bug] Missing tasks
>
> - If the above are all true:
> - **Obsidian 1.6.3** has a bug that ==Tasks, dataview and likely other plugins *will* fail to find some of your tasks==.
> - **Obsidian 1.6.4** fixes the bug when files are edited, but ==still requires manual edits to existing files, to apply the fix==.
> - This page:
> - Explains the problems with Obsidian [[#Obsidian 1.6.3 fails to find tasks in some callouts|1.6.3]] and [[#Obsidian 1.6.4 partially fixes the bug (for Catalyst users)|1.6.4]].
> - Gives options for [[#users with Catalyst licences]] and [[#non-Catalyst users]].
> - Links to the [[#related bug reports]].
### What is a callout with a title?

Here is an example callout with a title:

````text
> [!tip] Callouts can have custom titles
> Like this one.
````

Which displays like this:

> [!tip] Callouts can have custom titles
> Like this one.
## Obsidian problems

### Obsidian 1.6.3 fails to find tasks in some callouts

The following task in a callout ==will **not be found** by Tasks in Obsidian 1.6.3==:

```text
> [!NOTE] Some Title - Remove me to make the task be found
> - [ ] Task in callout
```

The underlying cause is that Obsidian 1.6.3 reports incorrect (too large) line numbers in its [cache](https://docs.obsidian.md/Reference/TypeScript+API/CachedMetadata) for tasks (and other content) inside callouts with titles. Plugins use that cache to locate tasks and other data.

Each nested callout seems to increase the discrepancy in line numbers. So in the following, only `Correction4` would be found:

````text
> [!Calendar]+ MONTH
>> [!Check]+ GROUP
>>> [!Attention]+ Correction TITLE
>>> Some stuff goes here
>>> - [ ] Correction1
>>> - [ ] Correction2
>>> - [ ] Correction3
>>> - [ ] Correction4
````

We wrote up the underlying Obsidian issue in: [Tasks inside callouts have incorrect positions in the cache](https://forum.obsidian.md/t/tasks-inside-callouts-have-incorrect-positions-in-the-cache/84057/1).

It's possible the issue was also present in earlier 1.6.x versions: we don't know.

### Obsidian 1.6.4 partially fixes the bug (for Catalyst users)

Obsidian 1.6.4 beta/insider version was released to those with [Catalyst licences](https://help.obsidian.md/Licenses+and+payment/Catalyst+license) on 20 June 2024.

The [Obsidian 1.6.4 changelog](https://obsidian.md/changelog/2024-06-20-desktop-v1.6.4/) reports some fixes to checkboxes and callouts.

However, on initial testing we found that ==the missing tasks are still not found in many cases==.

The Obsidian team have since kindly provided a manual workaround, which we give in [[#Users with Catalyst licences]] below.

## Options for users of Tasks, dataview and similar plugins

### Users with Catalyst licences

At the time of writing (23 June 2024), the newest version of Obsidian available to holders of [Catalyst licences](https://help.obsidian.md/Licenses+and+payment/Catalyst+license) is 1.6.4.

> [!Warning]
> 1.6.4 is a beta version of Obsidian: [do note the warning about risks with beta releases](https://help.obsidian.md/Obsidian/Early+access+versions) in the Obsidian documentation.
It partially fixes the problem, but user intervention is still required to activate the fix in each affected file.

> [!Tip]
> To ensure Obsidian 1.6.4 finds all your tasks in titled callouts, the Obsidian team has advised:
>
> - An ==edit needs to be made anywhere in a file containing any callout with titles==, to make Obsidian re-read the file and generate correct line numbers for callout content.
> - After a couple of seconds of inactivity, Obsidian's cached data will be updated, and missing checkboxes in that file will be found correctly.
> - ==Don't undo the edit==, as apparently the cached data would then be reverted.
>
> You will need to do this in all your files that have tasks in titled callouts.
The good news is that doing this will then ensure that Obsidian 1.6.4 does now report the correct locations of things inside titled callouts.

### Non-Catalyst users

At the time of writing (23 June 2024), the newest public version of Obsidian is the broken 1.6.3.

> [!tip]
> We are aware of these options when using 1.6.3:
>
> 1. Do nothing, and await a full fix from Obsidian.
> - This may be acceptable if you don't track critical or important tasks in Obsidian.
> 1. Consider purchasing an [Insider tier Catalyst licence](https://help.obsidian.md/Licenses+and+payment/Catalyst+license) for early access to the partial fix.
> - ==Note [the warning about risks with beta releases](https://help.obsidian.md/Obsidian/Early+access+versions) in the Obsidian documentation==.
> - Upgrade to the beta Obsidian 1.6.4, then follow [[#Users with Catalyst licences]] above.
> 1. Remove all titles from callouts containing tasks, by changing things like this:
>
> ```text
> > [!NOTE] My lovely callout
> > - [ ] Task in callout
> ```
>
> to things like this:
>
> ```text
> > [!NOTE]
> > - [ ] Task in callout
> ```
>
> 1. Perhaps downgrade to a 1.5 Obsidian release?
> - We cannot advise how or whether to do this.
## Related bug reports

- **Tasks plugin**:
- [Error with Tasks in Titled Callouts – Obsidian v1.6.3 (and v1.6.4 until file with callout is edited) · Issue #2890](https://github.com/obsidian-tasks-group/obsidian-tasks/issues/2890)
- [Tasks with nested structures cannot be searched or are searched sporadically. · Issue #2904](https://github.com/obsidian-tasks-group/obsidian-tasks/issues/2904)
- **dataview plugin**:
- [DQL Task Query: Titled callouts cause a shift of results by one · Issue #2365](https://github.com/blacksmithgu/obsidian-dataview/issues/2365)
- [Issue with the First Task Item in Callout Losing Data · Issue #2359](https://github.com/blacksmithgu/obsidian-dataview/issues/2359)
- **Obsidian**:
- 1.6.3: [Checkbox tasks in a callout can't be clicked or checks the wrong item](https://forum.obsidian.md/t/last-checkbox-in-a-callout-cant-be-clicked/82742)
- 1.6.4: [Tasks inside callouts have incorrect positions in the cache](https://forum.obsidian.md/t/tasks-inside-callouts-have-incorrect-positions-in-the-cache/84057)
25 changes: 25 additions & 0 deletions docs/Support and Help/Report a Bug.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,31 @@ Please understand that Tasks is mostly maintained by a single person in their fr

Please follow the steps in this page **fully** when reporting a bug, to save your time and ours. Thank you.

## Active Issues

<!-- force a blank line --><!-- include: snippet-callout-titles-bug.md -->

> [!Warning] Warning: Obsidian 1.6.x bug causing some tasks not to be found
> If **all** the following apply to **any** of your vaults...
>
> - You are using one of these versions of Obsidian:
> - Obsidian 1.6.3 - public release
> - Obsidian 1.6.4 - [early access version](https://help.obsidian.md/Obsidian/Early+access+versions)
> - You use a plugin like Tasks or dataview to find or edit tasks in your Obsidian vault
> - Your vault has [any tasks inside callouts](https://help.obsidian.md/Editing+and+formatting/Callouts)
> - And any of these [callouts have titles](https://help.obsidian.md/Editing+and+formatting/Callouts#Change+the+title)
>
> ... ==please read this page:== [[Missing tasks in callouts with some Obsidian 1.6.x versions]].
>
> For clarity, this is what a task in a callout with a title looks like:
>
> ```text
> > [!NOTE] Some Title - remove title to fix issue
> > - [ ] Task not be found by Obsidian 1.6.3, and not always by 1.6.4
> ```
<!-- force a blank line --><!-- endInclude -->
## Before reporting a bug
> [!important]
Expand Down

0 comments on commit d504778

Please sign in to comment.