Claude-code-plugins-plus-skills langfuse-debug-bundle

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/langfuse-pack/skills/langfuse-debug-bundle" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-langfuse-debug-bundle && rm -rf "$T"
manifest: plugins/saas-packs/langfuse-pack/skills/langfuse-debug-bundle/SKILL.md
source content

Langfuse Debug Bundle

Current State

!

node --version 2>/dev/null || echo 'N/A'
!
python3 --version 2>/dev/null || echo 'N/A'
!
npm list langfuse @langfuse/client @langfuse/tracing 2>/dev/null | head -5 || echo 'No langfuse packages'

Overview

Collect all diagnostic information needed for Langfuse support tickets: environment versions, SDK config, API connectivity, redacted logs, and a reproduction template.

Prerequisites

  • Langfuse SDK installed
  • Access to application logs
  • Bash shell available

Instructions

Step 1: Run the Full Debug Bundle Script

Save this as

langfuse-debug.sh
and run it:

#!/bin/bash
set -euo pipefail

BUNDLE_DIR="langfuse-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE_DIR"

echo "=== Langfuse Debug Bundle ===" | tee "$BUNDLE_DIR/summary.txt"
echo "Generated: $(date)" | tee -a "$BUNDLE_DIR/summary.txt"

# --- Environment ---
{
  echo ""
  echo "--- Environment ---"
  echo "Node.js: $(node --version 2>/dev/null || echo 'not installed')"
  echo "Python: $(python3 --version 2>/dev/null || echo 'not installed')"
  echo "npm: $(npm --version 2>/dev/null || echo 'not installed')"
  echo "OS: $(uname -srm)"
} >> "$BUNDLE_DIR/summary.txt"

# --- SDK Versions ---
{
  echo ""
  echo "--- SDK Versions ---"
  npm list langfuse @langfuse/client @langfuse/tracing @langfuse/otel @langfuse/openai @langfuse/langchain 2>/dev/null || echo "npm: no langfuse packages"
  pip show langfuse 2>/dev/null | grep -E "Name|Version" || echo "pip: langfuse not found"
} >> "$BUNDLE_DIR/summary.txt"

# --- Config (redacted) ---
{
  echo ""
  echo "--- Langfuse Config ---"
  echo "LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:+SET (${LANGFUSE_PUBLIC_KEY:0:12}...)}"
  echo "LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY:+SET}"
  echo "LANGFUSE_BASE_URL: ${LANGFUSE_BASE_URL:-NOT SET}"
  echo "LANGFUSE_HOST: ${LANGFUSE_HOST:-NOT SET}"
} >> "$BUNDLE_DIR/summary.txt"

# --- Network Connectivity ---
{
  echo ""
  echo "--- Network Test ---"
  HOST="${LANGFUSE_BASE_URL:-${LANGFUSE_HOST:-https://cloud.langfuse.com}}"
  echo "Target host: $HOST"
  echo -n "Health endpoint: "
  curl -s -o /dev/null -w "%{http_code} (%{time_total}s)" "$HOST/api/public/health" 2>/dev/null || echo "FAILED"
  echo ""

  if [ -n "${LANGFUSE_PUBLIC_KEY:-}" ] && [ -n "${LANGFUSE_SECRET_KEY:-}" ]; then
    AUTH=$(echo -n "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" | base64)
    echo -n "Auth test: "
    curl -s -o /dev/null -w "%{http_code}" \
      -H "Authorization: Basic $AUTH" \
      "$HOST/api/public/traces?limit=1" 2>/dev/null || echo "FAILED"
    echo ""
  fi
} >> "$BUNDLE_DIR/summary.txt"

# --- Application Logs (redacted) ---
if [ -d "logs" ]; then
  grep -i "langfuse\|trace\|generation\|flush" logs/*.log 2>/dev/null | \
    tail -100 | \
    sed 's/sk-lf-[a-zA-Z0-9]*/sk-lf-***REDACTED***/g' | \
    sed 's/pk-lf-[a-zA-Z0-9]*/pk-lf-***REDACTED***/g' \
    > "$BUNDLE_DIR/app-logs-redacted.txt" 2>/dev/null || true
fi

# --- Package Dependencies ---
if [ -f "package.json" ]; then
  grep -A 100 '"dependencies"' package.json | head -60 > "$BUNDLE_DIR/package-deps.txt" 2>/dev/null || true
fi

# --- Reproduction Template ---
cat > "$BUNDLE_DIR/reproduction-steps.md" << 'REPRO'
# Bug Report

## Environment
- Node.js version:
- Langfuse SDK version:
- Langfuse host: Cloud / Self-hosted (version: )

## Steps to Reproduce
1.
2.
3.

## Expected Behavior


## Actual Behavior


## Error Messages

Paste error output here


## Relevant Code
```typescript
// Paste minimal reproduction here

REPRO

--- Package ---

tar -czf "$BUNDLE_DIR.tar.gz" "$BUNDLE_DIR" 2>/dev/null echo "" echo "Bundle created: $BUNDLE_DIR.tar.gz" echo "Contents:" ls -la "$BUNDLE_DIR/"


### Step 2: Review Before Sharing

**Always redact before submitting:**

| Include | Redact |
|---------|--------|
| Error messages and stack traces | API keys (`pk-lf-*`, `sk-lf-*`) |
| SDK versions and config structure | Secret keys and passwords |
| HTTP status codes | PII (emails, user IDs) |
| Timing and latency data | Internal URLs and IPs |
| OS and runtime versions | Database connection strings |

### Step 3: Submit to Support

1. Run: `bash langfuse-debug.sh`
2. Review bundle contents for leaked secrets
3. Fill in `reproduction-steps.md`
4. Submit via:
   - [GitHub Issues](https://github.com/langfuse/langfuse/issues) (public)
   - [Discord](https://langfuse.com/discord) (community)
   - Email support (enterprise customers)

### Step 4: Quick Inline Diagnostic (No File)

For a fast check without creating files:

```bash
set -euo pipefail
echo "=== Quick Langfuse Check ==="
echo "Node: $(node --version 2>/dev/null || echo N/A)"
npm list langfuse @langfuse/client 2>/dev/null | head -5
echo ""
echo "Public Key: ${LANGFUSE_PUBLIC_KEY:+SET} | Secret Key: ${LANGFUSE_SECRET_KEY:+SET}"
HOST="${LANGFUSE_BASE_URL:-${LANGFUSE_HOST:-https://cloud.langfuse.com}}"
echo "Health: $(curl -s -o /dev/null -w '%{http_code}' $HOST/api/public/health)"

Error Handling

Collected ItemWhy It Matters
SDK versionVersion-specific bugs, breaking changes between v3/v4/v5
Environment versionsNode 18+ required, Python 3.9+
Network testFirewall, DNS, self-hosted connectivity
Auth testKey validity, project mismatch
Redacted logsTrace errors, flush failures, rate limits
Package depsConflicting versions, missing peer deps

Resources