Troubleshooting
Missing External Tools
When you run regis, it requires certain external binaries depending on which analyzers you use.
Error symptoms:
Command 'regctl' not foundCommand 'grype' not foundCommand 'syft' not foundCommand 'trufflehog' not foundCommand 'hadolint' not foundCommand 'dockle' not found
Solution:
-
Run
regis checkto diagnose which tools are missing:regis check -
Follow the installation instructions in Getting Started to install the missing tools.
-
Using Docker is the easiest path—the official image comes pre-packaged with all dependencies:
docker run --rm trivoallan/regis analyze nginx:latest
Registry Authentication Errors
When analyzing private container images, you may encounter authentication failures.
Error symptoms:
401 Unauthorized403 Forbiddenauthentication requiredwhen pulling from a private registry
Solution:
regis uses the same authentication mechanisms as regctl and Docker:
-
Docker login (most common):
docker login registry.example.comregis analyze registry.example.com/myapp:v1.0 -
Podman login:
podman login registry.example.comregis analyze registry.example.com/myapp:v1.0 -
Environment variables (for CI/CD):
- Configure Docker credentials (
docker login) before runningregis;regctlreads the same credential store.
- Configure Docker credentials (
If you're using a custom authentication mechanism, consult Registries for advanced configuration options.
Timeout or Network Errors
When analyzing very large images or connecting to slow registries, you may encounter timeouts.
Error symptoms:
connection timed outi/o timeout- Analysis hangs on large images
Solutions:
-
Run in serial mode to reduce concurrent load:
regis analyze myimage:latest --max-workers 1 -
Check your network connection to the registry. Large images can take minutes to pull metadata.
-
For very large images, consider analyzing during off-peak hours or splitting the analysis across multiple runs.
Report Generation Issues
Problems with the --html report or an empty/blank report file.
Error symptoms:
--htmlproduces an empty or partialreport.html- The JSON report is missing expected analyzer data
Solutions:
-
Generate a self-contained HTML report with
--html. It writes a single portablereport.htmlthat needs no base URL or web server:regis analyze nginx:latest --html -
Review the JSON report to ensure the analysis succeeded:
regis analyze nginx:latest -o report.jsoncat report.json | jq .
For detailed information on how reports work, see Reports.
Playbook Evaluation Issues
Rules marked as "incomplete" or unexpected scores.
Error symptoms:
- Rules status shows
incompleteinstead ofpassorfail - Scores don't match expected values
- Rule conditions reference missing analyzer data
Solutions:
-
Verify the analyzer ran. Incomplete rules indicate that the data they depend on was not generated. Check which analyzers participated in the run:
regis analyze myimage:latest -o report.jsoncat report.json | jq '.analyzers | keys' -
Ensure your playbook doesn't reference non-existent analyzers. For example, if you include a
cverule but didn't run the cve analyzer, the rule will be incomplete. -
Check your rule conditions in your playbook. If a rule accesses a field that an analyzer didn't populate, it will be marked incomplete rather than failed.
For detailed information on rule evaluation, see Rules and Scoring.
FAQ
What registries does Regis support?
Regis supports any OCI-compliant container registry (Docker Hub, Quay.io, ECR, GCR, Azure Container Registry, your private registry, etc.). As long as the image reference is valid and you have authentication, Regis can analyze it.
What image formats are supported?
Regis supports standard OCI container images. It does not support:
- Image archives in Docker
.tarformat - Helm charts or other packaging formats
- Non-container artifacts
For local images, use the full reference: docker.io/library/nginx:latest or localhost:5000/myimage:v1.
How do I run only specific analyzers?
Use the -a or --analyzer flag to limit which analyzers run:
# Run only CVE scanning and OCI metadata
regis analyze myimage:latest -a cve -a oci
This is useful when you only care about specific security checks or want to speed up analysis.
How do I get verbose output?
Use the --verbose flag or set the REGIS_LOG_LEVEL environment variable:
# Verbose mode
regis analyze myimage:latest --verbose
# Debug logging
REGIS_LOG_LEVEL=DEBUG regis analyze myimage:latest
This will output detailed information about each analyzer's execution, registry calls, and rule evaluation.
Can I run Regis in a CI/CD pipeline?
Yes. Regis is designed for CI/CD. Use Docker for simplicity:
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
trivoallan/regis analyze myimage:latest --html
Then collect the generated report.html (and report.json) as a CI artifact. See the GitHub and GitLab integration guides for more details.