BoundaryML/baml · error · TelemetryError
{0}
Error message
{0} What it means
TelemetryError::Query(String) carries an opaque message for failures while querying the profile store (e.g. building or executing a query over recorded executions). The Display impl just renders the inner string, so the message text is whatever the query layer produced.
Source
Thrown at baml_language/crates/baml_lsp_server/src/playground_telemetry.rs:193
.iter()
.map(|root| root.display().to_string())
.collect();
tracing::warn!(
"Telemetry: the profiler writes one store per process, so runs started \
here for {} are recorded under {}. Those projects will look empty in \
the Telemetry tab; run them from the CLI to record them in place.",
others.join(", "),
workspace_roots[0].display()
);
}
#[derive(Debug, thiserror::Error)]
pub enum TelemetryError {
/// No store yet: nothing has run under this project since the profiler
/// started writing. This is an empty state, not a failure.
#[error("no profile store at {0}")]
NoStore(PathBuf),
#[error("{0}")]
Query(String),
}
/// One execution: a row in the executions table.
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExecutionRow {
pub execution_id: String,
pub entry_fqn: Option<String>,
pub source_label: Option<String>,
pub revision_id: Option<String>,
pub status: Option<String>,
/// `complete` | `no_root_ended` | `root_started_lost` | `index_corrupt`.
/// Anything but `complete` means the row below it is partial evidence.
pub index_state: Option<String>,
/// `complete` | `partial` | `none` — whether captured values survived.
pub value_state: Option<String>,
pub started_at_ms: Option<i64>,View on GitHub (pinned to bd85ce9dee)
Solutions
- Read the inner message to see what the query layer complained about.
- Delete/regenerate the profile store by re-running your BAML functions if it may be corrupt.
- Check for a version mismatch between the profiler that wrote the store and the LSP server reading it.
- Validate query parameters (filters, limits) passed to the telemetry endpoint.
Defensive patterns
Strategy: try-catch
Try / catch
match telemetry.query_executions() {
Err(TelemetryError::Query(msg)) => {
tracing::warn!("telemetry query failed: {msg}");
// consider regenerating the store
}
other => return other.map_err(Into::into),
} Prevention
- Keep the LSP server and profiler versions in sync
- Validate filter/limit parameters before sending them to the telemetry API
- Regenerate the profile store after crashy sessions
When it happens
Trigger: A telemetry query against the profile store failing — malformed query parameters, corrupt/unreadable store contents, or an internal query-construction error surfaced through TelemetryError::Query.
Common situations: Corrupted profile store from a crashed writer; incompatible store schema after a version upgrade; invalid filter/limit parameters passed from the playground UI to the telemetry query API.
Understand the failure class
Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.
Related errors
- no profile store at {0}
- corrupt tail segment in profiling stream
- profiling store contains an unsupported file type
- invalid profiling usage ledger
- profiling usage ledger checksum mismatch
AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12).
Data as JSON: /api/errors/d3422fee15a2c62f.
Report an issue: GitHub.