"Open note in obsidian" fails to launch Obsidian despite generating a valid URI

Hello, and thank you for creating and maintaining this very useful plugin.

I am experiencing an issue where the `Open note in obsidian` context menu action fails to launch Obsidian. When I click the button, there is no visible action or error message; Zotero simply remains the active window.

Environment:
Zotero Version: 7.0.24 (64-bit)
MarkDB-Connect Version: 0.1.6
Better BibTeX Version: 7.0.49
Operating System: Windows 11 Pro

Problem Details & Diagnostic Steps Taken:

Through extensive testing, I believe the issue is not with the plugin's core logic but with Zotero's ability to execute the external URI call on my system.

Here is a summary of my findings:

1. The Plugin Generates a Correct URI: I have enabled debug logging, and the log clearly shows the plugin generating a perfectly valid `obsidian://` URI.

2. The URI Works Outside of Zotero: If I copy the exact `obsidian://...` URI from the Zotero debug log and paste it into my web browser's address bar, it works perfectly. Obsidian launches and opens the correct note instantly. This confirms that the `obsidian://` protocol is correctly registered on my operating system.

3. Path Simplification Did Not Help: My initial paths contained non-ASCII characters. I have since tested with a purely ASCII path (e.g., `C:\Test\note.md`), and the problem remains exactly the same.

4. Crucial Finding: As a key diagnostic step, I added a link based on the `obsidian://open` protocol directly to a Zotero item's attachment. Even when clicking this manually-added link from the attachment, it still fails to open Obsidian.

Conclusion:

This evidence strongly suggests that the `zotero-markdb-connect` plugin is functioning correctly. The root cause seems to be an issue within my Zotero environment (or a conflict) that is preventing it from making the system call to launch an external custom URI scheme like `obsidian://`.

I have already attempted troubleshooting steps such as temporarily disabling my antivirus/firewall software and running Zotero as an administrator, but the issue persists.

I am reporting this to you in case this is a known compatibility issue with certain Zotero versions or system configurations, or if you have any further insight into what could be blocking this specific action within Zotero.

Thank you for your time and consideration.
  • edited 23 days ago
    Can you provide a Debug ID for reproducing this?

    I don't have Obsidian installed, but I have Visual Studio Code, and if I create a web link attachment with the URL vscode://foo and try to open it, I get a prompt "Allow this site to open the vscode link with Visual Studio Code?", and if I click "Open Link", it opens VS Code.

    You can try deleting handlers.json in the Zotero profile folder:

    https://www.zotero.org/support/kb/file_handling_issues
  • Thank you so much for your help!

    After deleting the file and restarting Zotero, everything now works as expected. Zotero can now open obsidian:// links.

    I really appreciate your quick and effective support!
  • edited 11 days ago
    A simple follow-up on this.

    I'm also using URI links to Obsidian from within Zotero.

    On Zotero 6, clicking on the link would directly open the Obsidian document.
    Now, it comes up with the message "Allow this site to open obsidian link with Obsidian?"
    There is a brief pause, and it then lets you click on "Open Link."
    That does work, but it's a slowdown in workflow.

    I tried selecting "Choose a different application" in the same popup window, and then selecting Obsidian, and also checking "Always use this application to open obsidian links", but the status of that checkbox doesn't seem to be remembered, and the behavior is the same.

    Anything I can do with the profile or prefs to directly open the link without going through this extra step?

    Many thanks for your help.

    Best,

    -- madison
  • Hello, I'm using Zotero 7.
    I can disable that security pop-up by the following steps:
    Go to Settings -> Advanced -> Config Editor.
    Just find security.external_protocol_requires_permission and set it to false.
  • Yes, it worked, I had tried various Config Editor settings without luck.

    Thank you so much for this. I just got some rhythm back to my workflow!

    -- madison
Sign In or Register to comment.