A plugin will not load or run
Reading the TVO-PLUGIN codes, and plugin doctor.
Written By Dustin
Last updated 28 minutes ago
tovio plugin doctortovio plugin listtovio plugin bindingstovio explain pluginStart with doctor. It checks every manifest, every artifact's integrity, and every binding without executing anything, and exits non-zero if any of them is broken.
The local codes
009 and 010 are the two you are most likely to meet, because they are what a blocked tovio commit or tovio land reports. Both name which plugin blocked, which binding required it, what failed, that the result was local rather than CI-side or Forge-side, and whether an override is possible.
The post-event form of 013 is different in kind: the snapshot, land, or conflict record is already durable, so nothing was prevented. TOVIO records the failure in the signed audit chain and exits non-zero so CI observes it, but reverting or re-doing the operation is your decision, not something the plugin can force.
The common causes, in order
- Built without plugin execution. Not an error in itself — your binary lacks the
plugins-wasmfeature. But a required enforcing binding in a lean build always blocks with010, because an un-runnable required gate is not allowed to pass silently. Rebuild with the feature. - Not bound.
plugin runexecutes under a binding, so mode and grants are well defined. With none, it refuses. Useplugin test <path> --event <event>to run a package without installing or binding it. - Missing
--event. Bothrunandtestrequire it. - A dangling binding. The plugin was removed, or reinstalled under a different id.
doctornames it. - An ungranted import. The guest reached for network, filesystem, or environment. Check what the manifest requests against what the binding grants.
On a Forge
014 — an enforcing binding refused by organisation allow and deny policy. 015 — a required plugin with no attested passing result for the current revision. 016 — a hosted plugin registration refused at upload.
Before you share output
Plugin findings can quote file paths and code. Redact paths, hostnames, identity DIDs, and anything a finding excerpted from a file before pasting output into a support conversation. Secret-scan findings carry redacted previews rather than raw values, but the surrounding output is ordinary repository content.