Skip to content

fix(docker): langfuse-web healthcheck probes container IP (was falsely unhealthy) - #89

Merged
AndreJorgeLopes merged 1 commit into
mainfrom
fix/langfuse-web-healthcheck
Jul 30, 2026
Merged

fix(docker): langfuse-web healthcheck probes container IP (was falsely unhealthy)#89
AndreJorgeLopes merged 1 commit into
mainfrom
fix/langfuse-web-healthcheck

Conversation

@AndreJorgeLopes

Copy link
Copy Markdown
Owner

Problem

langfuse-web showed Up (unhealthy) for days, which derailed a trace-review data investigation into blaming it for thin ingestion. It was a false negative: the container serves fine (host :3100 returned 200 the whole time; version 3.20). The Next.js server binds the container's own IP (172.18.0.4:3000), NOT loopback, so the healthcheck wget http://localhost:3000/... (and 127.0.0.1, [::1]) was always refused.

Fix

Probe the container IP via $(hostname -i) (CMD-SHELL form). Verified: container reports healthy, and reads + OTLP ingestion + a live tessl-push score all work.

Also in this PR

  • Record the 2026-07-30 trace-review data-accrual verification in tasks/VERIFY-WHEN-DATA-ACCRUES.md: enrichment-hook-writes-rows and score-push-path move to Verified (113 sidecar rows over 24 days; a tessl-push landed in ClickHouse in ~5s). The remaining accrual items (score-down flag, rung-3 coverage) are blocked on real volume, not a broken pipe — 0 scores since 07-06 = no create/optimize-skill reviews ran, not dropped pushes.

Fixed this session, runtime-only (no source change)

A redundant bundled-hindsight container was crash-looping (missing ANTHROPIC_API_KEY, and :8888 is owned by the native com.user.hindsight-embed daemon). Removed the orphan; devflow up's guard correctly skips it when the native daemon serves :8888.

Verification

make test green. Healthcheck confirmed on the running stack (healthy after recreate). No skill/plugin files touched.

…calhost

langfuse-web (Next.js) binds the container's own IP (e.g. 172.18.0.4:3000), NOT loopback, so the
healthcheck's `wget http://localhost:3000/...` was always refused and the container showed
perpetually "unhealthy" even though it served fine (host :3100 returned 200 throughout). This
misled a data-pipeline investigation into blaming web for thin ingestion. Fix: probe
`http://$(hostname -i):3000` via CMD-SHELL. Verified: container goes healthy; reads + OTLP
ingestion + score push all work.

Also record the 2026-07-30 trace-review data-accrual verification pass in
tasks/VERIFY-WHEN-DATA-ACCRUES.md: mark the enrichment-hook-writes-rows + score-push-path items
VERIFIED (113 sidecar rows / 24 days; a tessl-push landed in ~5s), and note that the remaining
accrual items (score-down flag, rung-3 coverage) are blocked on real volume, not a broken pipe.
Separately fixed this pass (runtime only, no source change): removed a redundant crash-looping
bundled-hindsight container (the native daemon owns :8888).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 30, 2026 18:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@AndreJorgeLopes
AndreJorgeLopes merged commit e1c8804 into main Jul 30, 2026
1 check passed
@AndreJorgeLopes
AndreJorgeLopes deleted the fix/langfuse-web-healthcheck branch July 30, 2026 18:13
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.

2 participants