From ac3627e9dabab28ea26d5e4d481495669370e6d2 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 2 Mar 2026 13:50:42 +0100 Subject: [PATCH 1/2] feat: add support for taking build_id for errors --- src/handler/mod.rs | 1 + src/handler/web.rs | 6 ++++++ src/models.rs | 2 ++ src/tinybird.rs | 1 + 4 files changed, 10 insertions(+) diff --git a/src/handler/mod.rs b/src/handler/mod.rs index bbee664..897d32d 100644 --- a/src/handler/mod.rs +++ b/src/handler/mod.rs @@ -504,6 +504,7 @@ pub async fn insert_error_entries( count: data.count.unwrap_or(1).max(0) as u32, data_entry_id, session_id: data.session_id, + build_id: data.build_id, created_at: chrono::Utc::now(), }; diff --git a/src/handler/web.rs b/src/handler/web.rs index e93e255..e23b2a5 100644 --- a/src/handler/web.rs +++ b/src/handler/web.rs @@ -27,6 +27,8 @@ pub(crate) struct WebRequest { pub(crate) errors: Option>, #[serde(default)] pub(crate) session_id: Option, + #[serde(default)] + pub(crate) build_id: Option, } pub async fn web( @@ -48,6 +50,7 @@ pub async fn web( mut data, errors, session_id: parsed_session_id, + build_id, } = match serde_json::from_slice(&body) { Ok(req) => req, Err(_) => return error_response(StatusCode::BAD_REQUEST, "Invalid JSON"), @@ -200,6 +203,9 @@ pub async fn web( if error.session_id.is_none() { error.session_id = session_id.clone(); } + if error.build_id.is_none() { + error.build_id = build_id.clone(); + } if let Err(e) = insert_error_entries( &state.batch_queue, ctx.project_id, diff --git a/src/models.rs b/src/models.rs index f54efb8..680670b 100644 --- a/src/models.rs +++ b/src/models.rs @@ -42,6 +42,8 @@ pub struct ErrorTracking { pub count: Option, #[serde(default, rename = "sessionId")] pub session_id: Option, + #[serde(default, rename = "buildId")] + pub build_id: Option, } #[derive(Debug, Serialize, Deserialize)] diff --git a/src/tinybird.rs b/src/tinybird.rs index 1f0172a..d401f3a 100644 --- a/src/tinybird.rs +++ b/src/tinybird.rs @@ -82,6 +82,7 @@ pub struct ErrorTrackingRow { pub count: u32, pub data_entry_id: Uuid, pub session_id: Option, + pub build_id: Option, #[serde(with = "chrono::serde::ts_milliseconds")] pub created_at: DateTime, } From 771e527a414d85eaf65ce59208755bedd51ce9f6 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 2 Mar 2026 14:54:15 +0100 Subject: [PATCH 2/2] fix: add missing build_id --- src/batch_queue/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/batch_queue/mod.rs b/src/batch_queue/mod.rs index fa044bf..77f3b64 100644 --- a/src/batch_queue/mod.rs +++ b/src/batch_queue/mod.rs @@ -1096,6 +1096,7 @@ mod tests { count: 1, data_entry_id: Uuid::new_v4(), session_id: None, + build_id: None, created_at: Utc::now(), }, tracking: None,