DebugBundle
Bundles

Bundles

Understand the debug bundle — DebugBundle's canonical debugging artifact.

A debug bundle is a captured snapshot of a debugging-relevant failure or improvement signal. It is the core artifact in DebugBundle — portable, self-describing, agent-readable, and designed for both human and AI consumption.

Bundle Types

TypeDescription
failureCaptures an error, exception, or degraded behavior.
improvementCaptures a recurring hardening or optimization opportunity from deterministic request, log, deploy, or incident patterns.

Improvement bundles are a first-class hosted artifact for Solo+, not just a footnote on the failure-bundle flow. See Improvement Bundles for the product-specific model, triggers, quota behavior, and settings surface.

What's in a Bundle

A bundle aggregates data from multiple events into a single coherent debugging artifact:

SectionContents
MetadataID, version, timestamps, generator
SDK infoSDK name and version
ProjectProject ID, slug, and environment
ServiceService name, runtime, framework, version, and region
SignalSignal type, severity, fingerprint, and occurrences
SummaryTitle, description, likely cause, and confidence
ImpactAffected users or requests and business criticality
Context: ErrorError name, message, stack, and top frames
Context: RequestMethod, path, headers, and body
Context: ResponseStatus, duration, headers, and body
Context: LogsTimestamped log entries
Context: FrontendRoute changes, clicks, network, console, and DOM context
Context: EnvironmentOS, host, and container details
Context: DeployCommit, version, branch, and regression window
Context: RuntimeProcess state, memory, and framework details
Context: GitCommit, branch, repo, and dirty state
Context: DependenciesService health checks
Context: Probe DataDynamically collected diagnostic data
Context: DeviceBrowser, OS, screen, and viewport
ReproductioncURL, HTTPie, JSON spec, and confidence
VerificationTest results and verification commands

All context blocks are optional — bundles work with partial data. Missing blocks are simply absent, not null-padded.

Bundle Generation

Failure bundles are generated asynchronously by the worker after events are grouped into incidents. Improvement bundles are generated asynchronously when deterministic opportunity rules cross threshold and dedupe gates.

Common generation triggers:

  • failure occurrence thresholds and meaningful context changes
  • recurring warning/log patterns
  • repeated slow requests
  • repeated request failures
  • recurring incident reopen/regression behavior
  • post-deploy regressions

Determinism

Given the same normalized events, the bundle generator produces byte-identical output. No random IDs or wall-clock timestamps are used in generation — deterministic reproducibility is a core invariant.

Versioning

Envelope versioning: bundle_version: 1 (integer). Bumps only when the overall contract changes significantly.

Context block versioning: Each context block contains its own version: 1. This allows individual blocks to evolve independently without forcing a whole-bundle version change.

Compatibility rules:

  • Unknown context blocks must be ignored safely by consumers.
  • Missing context blocks are allowed.
  • Additive fields are preferred over breaking changes.
  • A new optional context block does not require a new bundle_version.

Signal Types

The signal.signal_type field describes what kind of signal triggered the bundle:

Signal TypeDescription
exceptionAn unhandled or handled exception.
fatal_errorA fatal/crash-level error.
request_failureAn HTTP request that returned an error status.
frontend_exceptionA browser-side JavaScript exception.
warningA warning-level signal.
deprecationA deprecation notice.
performance_issueA detected performance regression.
retry_loopA detected retry loop pattern.
slow_queryA slow database query.

Improvement bundles commonly use warning, performance_issue, request_failure, and retry_loop style signals depending on the qualifying rule.

Severity Levels

SeverityMeaningAutomatic Assignment
lowMinor issue, informational.Default for most event types.
mediumModerate impact, should be reviewed.error_suppressed events and opaque browser-native resource_error captures.
highSignificant impact, needs attention.backend_exception, non-opaque frontend_exception, immediate request-failure incident signals.
criticalSevere impact, immediate action required.Manually escalated.

Opaque browser-native window_error captures infer low by default because the browser did not provide enough application detail to classify them as high-confidence failures.

Summary Section

The summary is derived at bundle generation time from existing context — it is not stored separately. Key derivations:

FieldDerived From
severitysignal.severity
error_typecontext.error.name
error_messagecontext.error.message
first_application_frameStack parsing — top application frame from context.error.stack
likely_causeAnalysis engine output
confidenceAnalysis confidence score (0–1)

Reproduction Section

When sufficient request context is available, bundles include reproduction artifacts:

ArtifactDescription
curlReady-to-run cURL command.
httpieReady-to-run HTTPie command.
json_specStructured JSON with method, URL, headers, query, and body.

Each reproduction includes a confidence score and feasibility assessment:

ScenarioFeasibility
Standard HTTP bugsHigh
Frontend interaction + failing requestMedium-high
Background jobsMedium
External outage timingLow-medium
Race conditionsLow

See Bundle Schema for the complete JSON structure.

Next Steps

On this page