Skip to content

v5.9.7 release tag prefix breaks Obsidian community-plugin updater (tags/v5.9.7 vs manifest.version: 5.9.7) #222

Description

@gcp007-ops

Symptom

Updating Nexus through Obsidian → Community plugins → Update fails for v5.9.7 with a generic error. Users have to manually download release assets (gh release download v5.9.7 ...) and copy them into .obsidian/plugins/nexus/ to receive the v5.9.7 bits.

Root cause

The v5.9.7 release tag is v5.9.7 (with leading v), but manifest.json in the same release declares "version": "5.9.7" (no prefix).

Obsidian's community-plugin updater queries GET /repos/{owner}/{repo}/releases/tags/{manifest.version} — i.e., it looks for the tag 5.9.7, not v5.9.7. Empirically:

$ gh api repos/ProfSynapse/nexus/releases/tags/5.9.7
{"message":"Not Found","documentation_url":"...","status":"404"}

$ gh api repos/ProfSynapse/nexus/releases/tags/v5.9.7
{"tag_name":"v5.9.7","name":"v5.9.7 — Fix archive visibility on tagged states", ...}

The 404 is what the updater sees, so it bails.

Convention break

Every prior release in the 5.x line uses an unprefixed tag (5.6.6, 5.7.0, ..., 5.9.5, 5.9.6). v5.9.7 is the first one with the v prefix — looks like a tagging slip rather than a convention change, since the manifest version stayed unprefixed.

Repro

  1. Have Nexus ≤ 5.9.6 installed in a vault.
  2. Settings → Community plugins → Check for updates → Update.
  3. Update fails for Nexus (succeeds for any other plugin that doesn't have the prefix mismatch).

Suggested fix

Either:

  • Re-publish v5.9.7 with tag 5.9.7 (matching the manifest version), or
  • Push an additional tag 5.9.7 pointing to the same commit as v5.9.7 so the API resolves both.

The first option is cleaner; the second avoids touching the release. Either restores Obsidian auto-update for everyone on v5.9.6 and earlier.

Note

For future releases, keeping the tag format consistent with manifest.version (no prefix) preserves Obsidian's updater contract — it's a direct string lookup, not a semver-aware match.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions