-
Notifications
You must be signed in to change notification settings - Fork 0
User Guide Troubleshooting
Prev: Using Native rqp Packages | Up: User Guide | Next: Extending ReqPack
This page collects common ReqPack failure modes, what they usually mean, and fastest fix.
Before deep debugging, check these first:
- confirm target system/plugin name is right
- confirm plugin bundle has
metadata.json,reqpack.lua,run.lua,scripts/install.lua,scripts/remove.lua - confirm local file install can be mapped to system, or pass explicit system
- confirm host metadata is fresh if plugin branches on OS/CPU state
Useful command:
rqp host refreshThat refreshes cached host snapshot used by plugins via context.host and reqpack.host.
Common errors:
cannot determine system for local target: <path>
Use: rqp install <system> <path>
or:
no plugin found for file extension '.xyz': <path>
Use: rqp install <system> <path>
Meaning:
- ReqPack could not infer system from local path
- or no plugin declares matching
plugin.fileExtensions
Fix:
- run
rqp install <system> <path>explicitly - or add correct
plugin.fileExtensionsto plugin bundle
Common errors:
[Lua API Error] plugin table is required.
[Lua API Error] getMissingPackages is required.
plugin load failed
Meaning:
-
run.luadid not define globalplugintable - required methods are missing
-
plugin.init()returned failure - or thin-layer trust / hash checks rejected plugin during load
Fix:
- verify required Lua contract in Writing Lua Plugins
- verify
plugin.init()does not fail at startup - if
security.requireThinLayer = true, verify runtimegetSecurityMetadata()matches registry record
Common errors:
proxy resolution depth exceeded for '<system>'
proxy resolution cycle detected
proxy '<system>' could not resolve request
proxy '<system>' resolved to itself
proxy '<system>' resolved to unknown target '<target>'
proxy '<system>' returned both packages and localPath
Meaning:
- proxy chain loops or is too deep
-
resolveProxyRequest()returnednil - plugin resolved to invalid/self target
- plugin returned illegal shape
Fix:
- keep proxy chain short
- return exactly one of
packagesorlocalPath - keep target inside configured
planner.proxies.<system>.targets - do not return current system again
Common errors:
execution policy denied for plugin '<id>': shell command requires capability 'exec'.
execution policy denied for plugin '<id>': command requests privilege escalation but privilegeLevel is 'none'.
execution policy denied for plugin '<id>': command writes outside declared writeScopes ('<path>').
Meaning:
- plugin tried to execute shell command without
execcapability - command used
sudoordoaswithoutprivilegeLevel = "sudo" - command writes outside declared
writeScopes
Fix:
- update
plugin.getSecurityMetadata()honestly - keep plugin thin and restrict writes to declared scopes
- remember runtime exec enforcement needs both:
security.requireThinLayer = trueexecution.checkVirtualFileSystemWrite = true
Common errors:
rules.rules[1].source must be 'line' or 'screen'.
rules.rules[1] is missing field 'regex'.
rules.rules[1] is missing field 'actions'.
Meaning:
- exec-rules table shape is invalid
- top-level or rule fields use wrong keys/types
Fix:
- check schema in Writing Lua Plugins
- make
rulescontiguous array-style Lua table - use only
lineorscreensources
Common errors:
pack project is missing metadata.json
pack project is missing reqpack.lua
pack input is ambiguous: use either payload-tree/ or --payload-dir, not both
pack input is incomplete: payload/ and hashes/ must both be present
metadata.payload requires payload files or payload tree
output file already exists: <path>
Use --force to overwrite.
Meaning:
- package project is incomplete
- payload source modes are mixed illegally
- output already exists
Fix:
- keep exactly one payload mode
- provide both
payload/andhashes/when using prebuilt payload - use
--forcefor overwrite in non-interactive runs - see Building
rqpPackages and Repositories
Common errors:
package architecture does not match host
rqp missing install hook
payload sha256 mismatch
payload archive missing
Meaning:
- package metadata does not fit current host
- package is malformed
- payload file/hash is missing or corrupted
Fix:
- rebuild package with correct
architectureor usenoarchonly when really valid - keep
hooks.installpresent in packagereqpack.lua - regenerate payload and
hashes/payload.sha256
Common errors:
no fakeExec rule matched command: <command>
commands did not match expectation
events did not match expectation
resultCount mismatch
Meaning:
- hermetic fake command table did not match plugin output
- plugin behavior changed and case expectations are stale
Fix:
- make
fakeExec.matchsubstrings specific and correct - update case
expectsection to actual intended behavior - use Testing Lua Plugins for exact case schema
Meaning usually one of these:
-
history.trackInstalleddisabled - packages were not installed through ReqPack-managed flows
- installed-state tracking has not been refreshed yet
Fix:
- enable
history.trackInstalled = true - re-run installs through ReqPack
- read Configuration and Data, State, and Trust
Yes, ReqPack has host-introspection API. Lua plugins can read:
context.host.os.*context.host.cpu.archcontext.host.cpu.vendorcontext.host.cpu.modelcontext.host.cpu.logicalCorescontext.host.cpu.physicalCorescontext.host.memory.totalBytescontext.host.memory.availableBytescontext.host.gpuscontext.host.storage.mounts
If values look stale:
rqp host refreshImportant runtime difference:
-
context.hostis per-call snapshot and should be preferred -
reqpack.hostis bridge-global snapshot created when plugin was constructed
Full field list is documented in Writing Lua Plugins.
Prev: Using Native rqp Packages | Up: User Guide | Next: Extending ReqPack
- User Guide
- Getting Started
- Command Reference
- Configuration
- Configuration Reference
- Security, Audit, and SBOM
- Output and Report Formats
- Remote Mode
- Remote Protocol Reference
- Using Native
rqpPackages - Troubleshooting