Skip to content

Try it on a broken app

The best way to see what the agents do is to point them at something that's actually broken. The repo ships a deliberately-broken two-service app, Broken Shop, so you can watch the agents root-cause a real failure end to end before you connect your own app.

  browser ──▶ storefront ──calls──▶ pricing
                  │                     │
                  └──── each logs ──────┘   (its own token-protected /_logs)

A checkout that prices orders by country, with a backend pricing dependency. Each service has its own logs, so it's a real multi-source setup, and the root cause often lives in a different service's logs than where the symptom appears.

1. Run it

bash
cd examples/broken-shop
cp .env.example .env
docker compose up -d --build
open http://localhost:8800

2. Pick a failure to debug

Edit .env to switch scenario, each is a different class of failure:

ScenarioWhat breaksAsk the agents
data bug (default)Germany is priced in USD, not EUR"Why are German customers charged in USD at checkout?"
dependency downcheckout 500s, service unreachable"Checkout returns 500, find the cause."
firewall / timeoutcheckout hangs then 500s"Checkout is failing and slow, what's wrong?"
DNSthe dependency hostname won't resolve"Checkout 500s, investigate."
autha wrong API key between services"Checkout fails with an auth error, why?"
configa required env var is unset"Checkout 500s, is something misconfigured?"

3. Connect the logs

In Settings → Server logs → Multiple log sources, connect both services so the agents can correlate across them:

json
[
  {"type":"http","label":"storefront","url":"http://host.docker.internal:8800/_logs","token":"devlogtoken"},
  {"type":"http","label":"pricing","url":"http://host.docker.internal:8810/_logs","token":"devlogtoken"}
]

(host.docker.internal is how the in-container agents reach an app on your machine. The /_logs endpoints are token-protected, set the same token both sides.)

4. Fire the agents

In the assistant, ask the question for your scenario, or just "find what's broken in checkout." The agents fan out across both log sources, follow the failure to its cause, and report the layer, the cause, and the fix, read-only. With the data-bug scenario, try connecting only the storefront source first: the agents see checkout succeed but can't explain the USD, because the cause is in the pricing logs. Add the second source and they find it. That's the whole point of multi-source debugging.

Full scenario details (the seven failure modes, the env toggles, the root cause each reproduces) are in examples/broken-shop/README.md. When you're ready, point the same setup at your app: connect your real log sources and ask the agents about a real failure. See the autonomous agent and connecting server logs.

Upliftr · AI-native, self-healing E2E testing. Terms · Privacy · Legal Notice