Skip to content

Conversation

@zanesq
Copy link
Collaborator

@zanesq zanesq commented Dec 18, 2025

Summary

Noticed we weren't sending the error context and also covered some more key places we were missing.

Overview

This PR improves PostHog error telemetry by including detailed, sanitized error messages alongside error types. Previously, only categorical error types (e.g., "auth", "rate_limit") were sent, making it difficult to diagnose issues. Now, the actual error content is included for better observability.

Changes

Backend (Rust)

crates/goose/src/posthog.rs

  • Extended ErrorContext struct with new error_message field
  • Updated emit_error() signature to accept error_type and error_message
  • Added sanitization of error messages before sending to PostHog

crates/goose/src/agents/agent.rs

  • Added detailed error messages to existing emit_error calls for:
    • tool_execution_failed - includes tool name and error
    • context_length and other ProviderError variants
    • compaction_failed - new tracking for compaction failures

crates/goose/src/agents/retry.rs

  • Added retry_max_exceeded error tracking when max retry attempts are reached

crates/goose/src/scheduler.rs

  • Added scheduler_job_failed error tracking for scheduled job failures

crates/goose-server/src/routes/agent.rs

  • Added error tracking for:
    • recipe_deeplink_decode_failed
    • session_create_failed
    • session_resume_failed
    • extension_load_failed (during session resume)
    • extension_add_failed (via API)

crates/goose-server/src/routes/session.rs

  • Added error tracking for:
    • session_copy_failed
    • session_truncate_failed

crates/goose-server/src/routes/recipe.rs

  • Added error tracking for:
    • recipe_create_failed
    • recipe_encode_failed
    • recipe_decode_failed
    • recipe_schedule_failed

Frontend (TypeScript)

ui/desktop/src/App.tsx

  • Added trackErrorWithContext for:
    • create_session in PairRouteWrapper - catches session creation failures from recipes
    • open_shared_session in AppInner - catches shared session deeplink failures

Error Types Added

Error Type Location Description
tool_execution_failed agent.rs Tool call execution error
compaction_failed agent.rs Context compaction failure
retry_max_exceeded retry.rs Max retry attempts reached
scheduler_job_failed scheduler.rs Scheduled job failure
recipe_deeplink_decode_failed routes/agent.rs Recipe deeplink decoding error
session_create_failed routes/agent.rs Session creation error
session_resume_failed routes/agent.rs Session resume error
extension_load_failed routes/agent.rs Extension loading during resume
extension_add_failed routes/agent.rs Extension add via API
session_copy_failed routes/session.rs Session copy error
session_truncate_failed routes/session.rs Conversation truncation error
recipe_create_failed routes/recipe.rs Recipe creation error
recipe_encode_failed routes/recipe.rs Recipe encoding error
recipe_decode_failed routes/recipe.rs Recipe decoding error
recipe_schedule_failed routes/recipe.rs Recipe scheduling error

Privacy

All error messages are sanitized using the existing sanitize_string() function before being sent to PostHog, which redacts API keys, tokens, and PII patterns.

@zanesq zanesq requested a review from michaelneale December 18, 2025 20:57
@zanesq zanesq merged commit 70ac4b4 into main Dec 18, 2025
16 of 17 checks passed
@zanesq zanesq deleted the zane/add-more-analytics branch December 18, 2025 21:40
zanesq added a commit that referenced this pull request Dec 18, 2025
* 'main' of github.com:block/goose:
  Enhanced PostHog Error Tracking with Detailed Messages (#6176)

# Conflicts:
#	crates/goose-server/src/routes/agent.rs
zanesq added a commit that referenced this pull request Dec 18, 2025
…ession-extensions

* 'zane/working-dir' of github.com:block/goose:
  upstream merge fix
  Enhanced PostHog Error Tracking with Detailed Messages (#6176)

# Conflicts:
#	crates/goose-server/src/routes/agent.rs
#	crates/goose-server/src/routes/agent_utils.rs
#	ui/desktop/src/App.tsx
bkvarda pushed a commit to bkvarda/goose that referenced this pull request Dec 19, 2025
Signed-off-by: Brandon Kvarda <brandon.kvarda@databricks.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants