Something not working?
Most of it is one setting. Start with the fix below — it accounts for more support email than everything else put together. If that isn't it, the troubleshooting list is next, and a human reads every message within one business day.
Open WebUI: forward the user headers
If everyone in Open WebUI shares one memory, or nobody gets memories at all, Open WebUI isn't telling UPtrim who is typing. Set this on the Open WebUI container or service, then restart it:
ENABLE_FORWARD_USER_INFO_HEADERS=true
Then point Open WebUI's OpenAI-compatible base URL at http://<host>:9099/v1 and leave everything else alone. UPtrim is invisible to both sides — your frontend thinks it's talking to the model, the model thinks it's getting a normal request.
Identity resolution has five tiers and will fall back to IP and session heuristics without the header, but header-based identity is the only one that's reliable in a shared household or team. If you run identity_mode: strict, requests without a resolvable user are refused rather than merged — that's on purpose.
The other usual suspects
Seven things that look like bugs and usually aren't. Every one of them is a setting you can see and change from the dashboard.
“Nothing seems to be happening” SHADOW
Several of the newest parts of UPtrim ship in shadow mode: they run on every request, record what they would have done, and change nothing about your answer. Atlas (the belief engine), Muse (the injection brain), the Skribe write engine, the adaptive demand policy and the Ghost specialist router all start this way.
That isn't a broken feature. It's a feature measuring itself before it takes over — on your data, on your hardware, with a diff you can read. Atlas, for example, moved new-vocabulary recall from 0.122 to 0.551 at 0.864 precision across a 658-case evaluation before it was allowed anywhere near a default.
Dashboard → Brain panel. Flip a mode fromshadow to primary when the numbers convince you. It applies live.
“It complained about my data folder” LIVE
A ~2-second probe at boot measures real fsync latency and checks where your data actually lives. It warns loudly about cloud-synced folders, network shares and WSL mounts, because SQLite on those loses writes.
Move the data folder to a local disk. It's one relocatable folder — nothing else has to change.Live web search came back empty LIVE
Search backends are pluggable and keyless out of the box, but individual engines block individual networks, hosts and regions. Six backend families are supported — DDGS engines, SearXNG, Brave, Google CSE, Tavily — fused with a mini-RRF and per-engine circuit breakers.
Swap or reorder the engines. Whatever answers gets used; whatever doesn't gets tripped out.“I can't find the agent / scheduler / Conductor” ONE SWITCH AWAY
They ship off deliberately. Agent mode, the generation scheduler, the Conductor (also experimental), reflex search, Parliament, plugins, the virtual pet and the multi-node fleet all start disabled so a fresh install does exactly one predictable thing.
Turn them on in Expert mode. Agent file and shell tools stay confined to a workspace until you configure a project root — no configuration means confined.A model is missing from the dropdown
That backend isn't answering. Boot no longer waits on an unreachable backend, so UPtrim starts normally and the models simply don't appear rather than hanging the whole proxy.
Check the backend is serving an OpenAI-compatible/v1, then re-scan from the dashboard. vLLM and SGLang are auto-detected.
An uploaded file wasn't used LIVE
Two usual causes. Either the file is over your tier's per-file ceiling (15 MB on the free Developer tier, then 25 MB, 1 GB, 5 GB, 100 GB), or the Inspector hasn't finished with it — its 13 format-specific analyzers deliberately wait for the GPU to go idle so an upload never slows down a live chat.
Give it a minute and ask again. Answers cite the file and the character range they came from.The license stopped working
Licenses validate offline for up to 14 days, so a machine that has been off the internet longer than that will ask to check in. The 14-day trial needs internet once, at the start.
If you just want it running again with no account and no clock, the free Developer key is public and free for life on v1.x: 4XC7N-K2RS3-NXSF6-M5CXA-AL8PU
What we help with
Write in about any of these and you'll get a real answer, not a macro:
- People aren't being recognized as separate users
- Memories aren't being extracted, or the wrong ones come back
- Uploaded files aren't being found or cited
- A backend won't connect, or routing sends work to the wrong model
- Ghost research returns nothing useful on your network
- Isolation worries — who can see whose data, and how to prove it
- License activation, tier limits, and moving a key to a new machine
- Remote access: Cloudflare or Tailscale tunnels, or your own reverse proxy
What we can't do
- Debug the LLM itself — if a model gives a bad answer, that's the model
- Support code you changed inside the package
- Promise a specific search engine keeps working from your country
- Recover data from a corrupted database on a cloud-synced folder
- Sell you a Business or Enterprise key over email today — fleet deployments go through a conversation first
If it's out of scope we'll still tell you what we'd try. We just won't pretend it's a supported path.
Reach a human
One developer builds and answers this. Every message gets a reply within one business day.
Where to write
How to get answered fast
Say what broke
The exact error, what you expected instead, and which frontend and backend you're running.
Send the settings
The relevant config keys and your tier. Secrets are masked in every API response — redact anything the dashboard didn't mask for you.
Get a reply
Within one business day, from the person who wrote the code.
Before you write in
Three places that answer most of the rest.
Downloads & install
One bundled binary for Windows, macOS and Linux. Download, unzip, run ./ContextProxy — no flags, the dashboard opens itself. No Python, no virtualenv, no pip.
FAQ
What it is, how memory works, what stays local, what a shadow mode means, and what each tier actually unlocks.
Read the FAQRemote hosting guide
Put UPtrim behind HTTPS with Nginx or Caddy, DNS included — or skip all of it with one-click Cloudflare and Tailscale tunnels on Standard and up.
Open the runbookStill stuck
The contact form routes bug reports and integration help straight to the developer. Include your frontend, your backend and the exact error.
Write in