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
{{ message }}
Repository navigation
Tool files that fail to load crash the whole session/registry instead of being skipped #42258
When a project has a .opencode/tool/*.{js,ts} file that fails to load (for example, it imports a package that couldn't be installed), the failure dies the entire tool registry — and with it, every session run in that project. A single bad tool file makes the project unusable.
The tool registry in packages/opencode/src/tool/registry.ts globs {tool,tools}/*.{js,ts} and dynamically import()s each file with no error handling around the import. If the file throws (e.g. ResolveMessage: Cannot find package ...), the defect propagates and kills the registry's state effect, so the whole run fails. Any valid tool files in the same project never get a chance to load.
Open that project in the web UI and send any prompt.
Observed: the whole run dies with the ResolveMessage stack instead of answering.
Expected
A failing tool file should be skipped with a warning, and the rest of the tool registry (including valid sibling tool files) should still load so the session can proceed.
Notes
I hit this using headless opencode via the web browser (the opencode serve API driven from a browser session); I did not test or investigate the TUI.
The trigger here (an auto-installed tool dependency failing to resolve) is separate from the module-resolution mechanism itself; a missing/uninstallable package in any tool file reproduces it.
Activity
github-actions commentedon Aug 13, 2026
This issue might be a duplicate of an existing issue. Please check:
DatScreamer commentedon Aug 13, 2026
That's my own thing. Close and ignore it.
github-actions commentedon Oct 13, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.