Troubleshooting
Missing External Tools
When you run regis, it requires certain external binaries depending on which analyzers you use.
Error symptoms:
Command 'skopeo' not foundCommand 'trivy' 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 Skopeo 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):
- Set
SKOPEO_CREDSif available, or configure Docker credentials before runningregis.
- Set
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 --site flag, blank report pages, or baseUrl mismatches.
Error symptoms:
--siteflag fails silently or produces an empty report- Report displays blank pages in the browser
- Assets fail to load when served from a subdirectory
Solutions:
-
Check the base URL. If you're serving the report from a subdirectory, always set
--base-url:regis analyze nginx:latest --site --base-url "/reports/nginx/" -
Verify the report directory exists. Reports are written to
reports/by default. Check that the directory was created and containsindex.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
trivyrule but didn't run the Trivy 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.
Archive Issues
Problems with archive creation, missing manifest.json, or blank dashboards.
Error symptoms:
manifest.jsonnot found in archive directory- Archive dashboard displays no historical data
- Reports added to archive but don't appear in the index
Solutions:
-
Initialize the archive before adding reports:
regis archive init ./my-archive -
Add reports to the archive:
regis analyze myimage:latest --archive ./my-archive -
Verify the manifest exists:
cat ./my-archive/manifest.json | jq .
For detailed information on archives, see Archives.
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 Trivy and Skopeo
regis analyze myimage:latest -a trivy -a skopeo
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 --site
Then collect the generated reports/ directory as a CI artifact. See the GitHub and GitLab integration guides for more details.