Marketplace update does not run `git submodule update` after pull
Resolved 💬 3 comments Opened Mar 4, 2026 by WontakKim Closed Mar 8, 2026
Bug Description
When a marketplace repository uses git submodules to organize plugins, /plugin marketplace update pulls the latest parent repo changes but does not run git submodule update. This leaves submodule working directories at stale commits, causing plugin installation failures for any plugin added after the initial marketplace clone.
Steps to Reproduce
- Create a marketplace repo that uses git submodules for plugin sources (e.g.,
plugins/my-team/as a submodule) - Install the marketplace in Claude Code
- Add a new plugin (e.g.,
sounds) to the submodule repo and update the parent repo's submodule pointer via CI - Run
/plugin marketplace update <name> - Try to install the newly added plugin
Expected Behavior
After marketplace update, submodule working directories should be checked out to the commits referenced by the updated parent repo. The new plugin should be installable.
Actual Behavior
- The parent repo is pulled successfully (submodule pointer is updated to the new commit)
- But
git submodule updateis not executed, so the submodule working directory remains at the old commit - The new plugin's source path does not exist
- Installation fails with:
Error: Failed to install: Source path does not exist: .../<submodule-path>/<new-plugin>
Evidence
# After running `/plugin marketplace update`:
$ git ls-tree HEAD plugins/my-team
160000 commit <new-commit-hash> plugins/my-team # parent expects new commit
$ git submodule status plugins/my-team
+<old-commit-hash> plugins/my-team (heads/main) # actual checkout is old (+ indicates mismatch)
Suggested Fix
After git pull, the marketplace update logic should also run:
git submodule update --init --recursive
Environment
- Claude Code CLI
- macOS
- Marketplace with git submodules
---
Contact: wontak0103@gmail.com
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗