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

  1. Read the inner message to see what the query layer complained about.
  2. Delete/regenerate the profile store by re-running your BAML functions if it may be corrupt.
  3. Check for a version mismatch between the profiler that wrote the store and the LSP server reading it.
  4. 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

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


AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12). Data as JSON: /api/errors/d3422fee15a2c62f. Report an issue: GitHub.