Agent fails to start: missing commitSha
Error message:
HyperProbe.start() was called without a commitSha option, and the GIT_COMMIT environment variable is either unset or set to the string "unknown". The agent refuses to start in this state because without a commit SHA it cannot resolve source maps or guarantee that probes match the version of code running in production.
Solution: Supply the commit SHA via one of two methods:
Most CI/CD platforms (GitHub Actions, GitLab CI, CircleCI) expose the commit SHA as a built-in environment variable. Map it to
GIT_COMMIT in your deployment configuration so your application code stays clean.Probe shows an orange dot — agent not going live
What you see: A probe is visible in the extension with an orange indicator next to it. The probe status shows as registered but no agent has been seen. Cause: The agent started successfully but cannot reach the broker, or theserviceId or environment values do not match what the extension is looking for.
Solution:
Check the broker URL
Verify that Enable broker logs to see exactly what’s happening:
brokerUrl in your HyperProbe.start() call is correct and reachable from the machine running your application. Test connectivity directly:Verify serviceId matches your .hprc file
The
serviceId passed to HyperProbe.start() must exactly match the serviceId field in your .hprc file. Open both and confirm they are identical — the comparison is case-sensitive..hprc
index.ts
Check the environment value
The
environment field passed to HyperProbe.start() must match the environment selected in the extension’s source selector. If your SDK is configured with environment: 'production' but the extension is scoped to staging, the agent and the extension will not find each other.Probe stays ACTIVE but never captures data
What you see: A probe shows as ACTIVE (green indicator) but no snapshots appear even after the relevant code runs. Possible causes and solutions:The code path is never triggered
The code path is never triggered
The instrumented line may be in a code path that isn’t being executed — such as an error handler, a rarely called branch, or an endpoint receiving no traffic. Trigger the path explicitly:
- Call the relevant endpoint or function manually.
- Use a load generator or test script to exercise the path.
- Check application logs to confirm the code block is being entered.
A probe condition is filtering out all executions
A probe condition is filtering out all executions
If you set a condition expression on the probe, HyperProbe only captures when the condition evaluates to
true. If the condition is incorrect or always evaluates to false, you will never see a capture.Remove the condition temporarily to verify the line is being hit at all. Once you confirm captures are working, re-add and refine the condition.Source map mismatch — probe resolved to the wrong line
Source map mismatch — probe resolved to the wrong line
For TypeScript or bundled projects, a missing or stale source map can cause the probe to instrument a different line in the compiled output than the one you selected in your source file. Symptoms include the probe being ACTIVE with no captures, or captures appearing with unexpected variable names.Check your source map configuration:
- Confirm
sourceMapDirpoints to the directory containing your.js.mapfiles. - Ensure source maps were generated for the exact build currently running in production.
- If you recently redeployed, make sure
GIT_COMMITreflects the new commit so fresh source maps are uploaded.
Probe shows ERROR status
What you see: A probe’s status is ERROR in the extension. Cause: The agent received the probe configuration but could not instrument the specified code location. This is typically a file path, line number, or instrumentation target problem. Solution:Verify the file path and line number
Confirm that the file path is correct relative to your project root, and that the line number points to an executable statement — not a comment, blank line, import declaration, or type annotation.
Check source map configuration for TypeScript projects
For TypeScript projects, ensure:
- Source maps are enabled in your
tsconfig.json("sourceMap": true). - The compiled output and source maps were generated from the same build as the running process.
sourceMapDirin your SDK configuration points to the output directory.
Extension cannot find a .hprc file
What you see: The extension shows no services in the source selector, or shows a warning that no .hprc file was found in the workspace.
Cause: The .hprc file is missing from the workspace, is located in a subdirectory the extension doesn’t scan, or contains invalid JSON.
Solution: Create a .hprc file in the root of your project with valid JSON and a serviceId field:
.hprc
serviceId value must be a non-empty string and must match the serviceId passed to HyperProbe.start() in your application.
The extension automatically detects
.hprc files anywhere in the open workspace using a recursive file watcher. If you add or update the file while VS Code is open, the extension picks it up within a few seconds without a reload.Large objects are truncated in snapshots
What you see: Captured snapshots show objects with[truncated] markers or fewer properties than expected.
Cause: The agent applies data limits to prevent large captures from impacting production performance. The default limits are:
| Setting | Default | Description |
|---|---|---|
maxObjectDepth | 3 | Maximum levels of nested object traversal |
maxObjectProperties | 50 | Maximum properties captured per object |
maxArrayLength | 3 | Maximum array elements captured |
maxStringLength | 1024 | Maximum characters captured per string |
Safety guardrail triggered — instrumentation suspended (RED status)
What you see: TheDEBUG=hyperprobe:safety logs show a RED status event, and probe captures stop for a period of time.
What happens: The safety monitor detected that instrumentation overhead exceeded a configured threshold — either the event loop lag exceeded maxLagMs or the pause budget (pauseBudgetMs) was consumed within a measurement window. The agent suspends all instrumentation and automatically resumes after the cooldownSec period (default: 10 seconds).
This is intentional behavior designed to protect your application. No manual intervention is required for a single occurrence.
If RED status occurs frequently:
Wait for automatic recovery first
The agent resumes instrumentation automatically after the cooldown period. Check whether captures resume on their own before making configuration changes.
Relax the lag and budget thresholds
If your application has naturally higher event loop variance, increase the thresholds to avoid false positives:
