You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello I'm trying to use the {{linknote}} timestamp but, when I click on it it does nothing, on either view or edit mode.
I tried it in two devices. It works normally on my Windows 11, but not on my arch linux. Both share the same obsidian config files and version. My vault on Arch vault on arch is on an external disk.
Probably not the problem, but below are two examples of timestamp links generated.
Closing as resolved on master (HEAD 8ad7aa5); this ships in the next release (latest published is 2.16.0, which predates the main fix).
What was wrong
The old URI handler resolved feed episodes via FeedParser.findItemByTitle, which threw on a fetch failure or a title miss with no surrounding try/catch → an unhandled promise rejection that surfaced as a silent no-op (exactly "clicking does nothing"). It also did a blanket episodeName.replace(/\+/g, " ") for decoding.
What fixed it
fix(uri): preserve '+' in episode titles and paths for timestamp links #181 (8ad7aa5) — the main fix. encodePodnotesURI now encodes spaces as %20 and a literal + as %2B, which round-trips losslessly through Obsidian's decodeURIComponent-only protocol decoder. The handler resolves the episode via ordered candidates ([raw, "+"-collapsed-to-space]) so legacy +-encoded links exactly like the two in this report still resolve, matching feed titles via trim().toLowerCase(). The silent throw is replaced with visible notices ("Episode not found" / "Could not load the podcast feed").
I built current master into a dev vault and fired the actual registered obsidian://podnotes handler — with params decoded exactly as Obsidian decodes them — against the live feed.podbean.com/theoryunderground feed from your report, using current episode titles carrying the same special characters you hit (&,'!"|):
Scenario
Result
Legacy +-encoded link (your link format), episode not loaded → feed fetch + switch
✅ switches to the correct episode
New %20-encoded link, hard special chars ("'!,)
✅ switches
Same episode already loaded → seek
✅ jumps to the time directly (no second click)
time=0 and fractional time (e.g. 12.074103)
✅
Nonexistent title
✅ graceful "Episode not found" notice — no crash, no silent hang
15 unit tests across URIHandler / encodePodnotesURI also pass.
About "works on Windows 11, does nothing on Arch Linux"
The title-resolution code has no platform-specific branching and resolved titles identically on both OSes even before these fixes — so a clean Windows-vs-Linux split is the classic signature of the OS never handing the obsidian:// URL to Obsidian at all, i.e. the obsidian:// scheme not being registered with the desktop environment (common with the AppImage / xdg-mime / a vault on an external disk). If clicks still do nothing on Linux after updating, that part is OS-level URI registration rather than PodNotes — make sure the obsidian:// scheme is associated with your Obsidian install. The separate in-app no-op that the Windows 10 follow-up most likely hit is fixed by #181.
One narrow caveat
A link generated by a pre-#181 build whose episode title contains a literal+ (e.g. C++ Weekly) can still miss, because the old encoding made a literal + and a space indistinguishable after decoding (documented in #181 as the single unrecoverable legacy case). Re-capturing the timestamp on the new version produces an unambiguous link that works. Note this does not affect the links in this issue — none of them contain a literal +.
If you're on the release that includes #181 and a specific link still fails, please reopen with the exact link plus your Obsidian version/platform and I'll dig in. Thanks for the detailed report and the example links — they made this straightforward to verify.
Activity
weaverlings commentedon Feb 7, 2025
I have the same issue, on desktop with windows 10 :(
chhoumann commentedon Jun 15, 2026
Closing as resolved on
master(HEAD8ad7aa5); this ships in the next release (latest published is2.16.0, which predates the main fix).What was wrong
The old URI handler resolved feed episodes via
FeedParser.findItemByTitle, which threw on a fetch failure or a title miss with no surroundingtry/catch→ an unhandled promise rejection that surfaced as a silent no-op (exactly "clicking does nothing"). It also did a blanketepisodeName.replace(/\+/g, " ")for decoding.What fixed it
8ad7aa5) — the main fix.encodePodnotesURInow encodes spaces as%20and a literal+as%2B, which round-trips losslessly through Obsidian'sdecodeURIComponent-only protocol decoder. The handler resolves the episode via ordered candidates ([raw, "+"-collapsed-to-space]) so legacy+-encoded links exactly like the two in this report still resolve, matching feed titles viatrim().toLowerCase(). The silent throw is replaced with visible notices ("Episode not found" / "Could not load the podcast feed").ac05f57) — removed the old "please click timestamp again" double-click requirement (clicks now seek directly) and preservedtime=0.Verification (real Obsidian, not just unit tests)
I built current
masterinto a dev vault and fired the actual registeredobsidian://podnoteshandler — with params decoded exactly as Obsidian decodes them — against the livefeed.podbean.com/theoryundergroundfeed from your report, using current episode titles carrying the same special characters you hit (&,'!"|):+-encoded link (your link format), episode not loaded → feed fetch + switch%20-encoded link, hard special chars ("'!,)time=0and fractionaltime(e.g.12.074103)15 unit tests across
URIHandler/encodePodnotesURIalso pass.About "works on Windows 11, does nothing on Arch Linux"
The title-resolution code has no platform-specific branching and resolved titles identically on both OSes even before these fixes — so a clean Windows-vs-Linux split is the classic signature of the OS never handing the
obsidian://URL to Obsidian at all, i.e. theobsidian://scheme not being registered with the desktop environment (common with the AppImage /xdg-mime/ a vault on an external disk). If clicks still do nothing on Linux after updating, that part is OS-level URI registration rather than PodNotes — make sure theobsidian://scheme is associated with your Obsidian install. The separate in-app no-op that the Windows 10 follow-up most likely hit is fixed by #181.One narrow caveat
A link generated by a pre-#181 build whose episode title contains a literal
+(e.g.C++ Weekly) can still miss, because the old encoding made a literal+and a space indistinguishable after decoding (documented in #181 as the single unrecoverable legacy case). Re-capturing the timestamp on the new version produces an unambiguous link that works. Note this does not affect the links in this issue — none of them contain a literal+.If you're on the release that includes #181 and a specific link still fails, please reopen with the exact link plus your Obsidian version/platform and I'll dig in. Thanks for the detailed report and the example links — they made this straightforward to verify.