Troubleshooting plugins
What to check when a plugin does not show up, conflicts with another one, or fails at boot.
Most plugin problems come from a handful of repeatable causes: a missing manifest, a layer-order conflict, or a bad module reference. Work through them in the order below.
The plugin does not show up in the verify output
Confirm the layer first:
dsh --profile default --dump-config
If the plugin's # == <package-name> layer is missing, the package almost
certainly lacks a dsh.bundle manifest and installed as a plain dependency.
Rather than guess, paste the package name into the publish
check β it runs the same rule the indexer uses and
reports exactly what the manifest is missing.
Two plugins conflict on the same layer
When two bundles patch the same rows, the later bundle in the profile wins and replaces the row's whole configuration. If behaviour broke after adding a second plugin, check the bundle order in your profile first. Then remove one of the two to confirm it is the cause:
dsh plugin remove <package-name>
The plugin errors at boot
Read the dsh log output first β it names the failing module. Then open the
bundle's cordis.patch.yml and check that the module it references actually
exists in the package (right name, right entry point). To isolate the problem,
remove the plugin from the profile and boot again: if boot is clean, the plugin
is the cause.
The install itself fails
Install failures are usually mundane. Confirm the npm package name is exactly right (the listing's copy-ready command is the safest source), then check network access from the machine running the install. The install forwards to the package manager, so its error messages apply as-is.
Clean reinstall
When a plugin is stuck in a broken half-state, remove and reinstall it:
dsh plugin remove <package-name>
dsh plugin add <package-name>
This drops both the dependency and the layer, then reinstalls the latest version from scratch.
Last updated 2026-08-22