Troubleshooting
Decision tree for the most common failures. If your issue isn’t here, see the deeper guides linked at the bottom or open a support ticket.GitHub Check Run never appears
The PR was opened but the Roboticks Check Run is missing.Confirm the App is installed on the repo
Inspect webhook deliveries
Check installation suspension
Test ran but no requirement was linked
Pytest passed; the matrix didn’t update.Is the SDK installed in the test environment?
Is the SDK installed in the test environment?
pip show roboticks inside the runner’s Python environment. If missing, add it to your test requirements.Did the plugin load?
Did the plugin load?
-p roboticks.pytest_plugin -v and look for the plugin banner. If pytest reports it as unknown, the package didn’t install the entry point — reinstall with pip install --force-reinstall roboticks.Are the `@confirms` properties in the JUnit XML?
Are the `@confirms` properties in the JUnit XML?
<runner-workdir>/junit.xml. Look for <property name="roboticks.confirms" value="REQ-001"/>. If missing, the decorator isn’t actually applied — check for typos and import order.Does the requirement ID exist in the platform?
Does the requirement ID exist in the platform?
@confirms("REQ-999") on a non-existent requirement is silently no-op (logged as warning).Self-hosted runner shows offline
Heartbeat lapse for > 90 seconds marks the runner unhealthy.Check the runner process
systemctl status roboticks-runner (Linux), launchctl list | grep roboticks (macOS), or Services panel (Windows).Inspect runner logs
journalctl -u roboticks-runner -n 200 -f (Linux). Look for repeated connection errors → network problem; auth errors → token revoked, re-register.Confirm outbound 443
curl -I https://api.roboticks.io/healthz from the runner host. If a proxy is in the path, confirm HTTPS_PROXY is set in the runner’s environment.Sim minutes cap reached
A hosted job was rejected with HTTP 402.- Free tier hard cap is 30 sim minutes/month — no overage. Upgrade or move the job to a self-hosted runner (always free).
- Team tier auto-bills overages at $0.10/min above the 500 included.
- Check current usage: dashboard → Billing → Usage or
rbtk pool usage.
MCAP upload fails
The test ran but evidence is missing the MCAP.Presigned URL expired
Presigned URL expired
Disk full on runner
Disk full on runner
df -h on the runner host.mcap extra not installed
mcap extra not installed
pip install 'roboticks[mcap]'.Requirement parsing failed
PDF or ReqIF upload returned an error.PDF: LLM extraction returned zero requirements
PDF: LLM extraction returned zero requirements
ocrmypdf input.pdf output.pdf and re-upload. Or copy-paste the text into the dashboard requirement editor.ReqIF: schema validation failed
ReqIF: schema validation failed
rbtk requirements validate path/to/export.reqif. Common issues: missing IDENTIFIER, unmapped SPEC-OBJECT-TYPE, vendor-specific custom datatypes. See ReqIF round-trip.YAML: schema validation failed
YAML: schema validation failed
rbtk requirements validate roboticks/requirements.yaml for line-level errors. Schema: requirement.schema.json.Evidence pack generation stuck
Arbtk test evidence-pack call is taking longer than expected.
- Typical generation time: 30 seconds for small releases (< 100 tests), up to 10 minutes for large packs with many MCAPs and a heavy SBOM.
- Check status with
rbtk test evidence-pack status <pack-id>. - If
failed, inspect the Lambda log link in the response. Common cause: a missing artifact (the runner crashed before uploading).
Cross-cutting tips
- Always check the dashboard’s Audit Log first (Settings → Audit Log) — many issues correlate with a recent action.
rbtk doctorprints a one-shot health check of your local environment (auth, network, SDK install).- Discord support is the fastest channel for non-urgent issues.