Troubleshooting
Symptoms grouped by area. Find the heading that matches what you see, follow the numbered steps, escalate if it’s still broken.
If your problem isn’t here, see Account & billing or Getting started — and email support@theagentum.com with whatever you’ve already tried.
Note on file paths. The product is called Agentum, but the on-disk data directory is
~/Library/Application Support/YuriClaw/, the env vars are prefixedYURICLAW_*, and the URL scheme isyuriclaw://. These predate the rebrand and are deliberately unchanged so existing installs survive the upgrade — your data and license stay put. References toYuriClawin paths and identifiers below are correct as written.
License issues
Symptom: “Trial — Nd” chip is missing or stuck on “Verifying…”
The license manager couldn’t read your license cache or talk to the server.
- Check your internet connection.
- Open System → Advanced and click Reactivate.
- If that fails, quit Agentum (
Cmd+Q), wait a few seconds, and relaunch — the manager re-runs verify on launch. - If it’s still stuck after a relaunch, the cache may be corrupt. Quit Agentum, move
~/Library/Application Support/YuriClaw/license.jsonto your Desktop, and relaunch — the app will re-fetch from the server. - Still stuck? Email
support@theagentum.comand attach the contents of~/Library/Application Support/YuriClaw/settings.json(it has yourlicenseKeybut no secret data).
Symptom: Activation deep-link doesn’t bring me back to Agentum after Google sign-in
The OAuth callback fires agentum://license?key=… but macOS doesn’t route it back to a running app.
- Make sure Agentum is running before you click the activation link.
- In your browser, copy the activation URL from the address bar and paste it into a new Safari window — Safari handles custom URL schemes more reliably than Chrome on first install.
- As a fallback: the wizard polls
/api/licenses/activation-statusevery few seconds. Just leave Agentum’s onboarding screen open — within ~10s of completing Google sign-in, it picks up the new license without needing the deep link. - If polling also fails, copy your license key from the email Stripe sent and paste it into the “I have a license key” field on the LicenseStep.
- Still broken? Email
support@theagentum.comwith the email you signed in with.
Symptom: I bought lifetime but the app still shows “Trial expired”
The Stripe webhook hasn’t been processed, or the heartbeat hasn’t run since.
- In Agentum, open System → Advanced → Reactivate. This forces an immediate verify.
- If your trial entry is still showing, quit and relaunch — the verify runs again at boot with the same
licenseKeyand the server will return the upgraded record. - Check your email for a Stripe receipt. If you have one, the webhook normally fires within seconds; if more than 5 min has passed without an in-app upgrade, something dropped on the server side.
- Email
support@theagentum.comwith the Stripe receipt’s payment intent ID (pi_…) and we’ll reconcile manually.
Symptom: Sidebar shows the wrong account / I want to switch Google accounts
Agentum is signed in with whichever Google account first activated the license. To swap:
- Open System → Advanced → Sign out.
- Quit Agentum (
Cmd+Q). - In your browser, sign out of the unwanted Google account at
accounts.google.com(otherwise it’ll auto-select again). - Relaunch Agentum and run the wizard from the top — choose Start trial or I have a license key and sign in with the right account.
- If you need to transfer your existing license to the new email, email
support@theagentum.comwith the old and new email addresses.
Symptom: Full red overlay says “license deactivated” but I haven’t been refunded
The server returned status=revoked, which the client treats as a hard block. Common causes: a chargeback was filed, payment failed retroactively, or the license was manually revoked for support.
- Check your email for a notice from
support@theagentum.comor Stripe. - Click the Contact support button on the overlay (it opens a
mailto:to support). - If you genuinely didn’t initiate a refund or chargeback, email
support@theagentum.comimmediately — we can re-issue. - While you wait, the shell stays usable but containers won’t start. Plugin editing still works for offline drafts.
Symptom: Going to be offline for >7 days — how do I prep
The client gets a 7-day offline grace from the last successful heartbeat. After 7 days with no server contact, containers stop.
- Within the 24h before you go offline, open Agentum and let the daily heartbeat run (or click System → Advanced → Reactivate to force one).
- Confirm the sidebar chip says “Lifetime” or “Trial — Nd” — not “Offline” — that means you’re freshly verified and the 7-day clock starts now.
- Plan to come online within 7 days. If you can’t, accept that containers will stop until the next successful verify.
- Email
support@theagentum.comahead of time if you have a known longer offline window — we can sometimes extend grace on a case-by-case basis.
Symptom: “Sign in to your account” prompt keeps appearing but the chip won’t update
The legacy OAuth-polling path completed but the new license manager hasn’t picked up the key from settings.
- Quit Agentum and relaunch. The manager loads
licenseKeyfromsettings.jsonat boot. - If the chip is still missing, open System → Advanced and check whether License key field is populated. If empty, paste your key from your activation email and click Save.
- Click Reactivate to force a verify.
- Still no chip? Email
support@theagentum.comwith your license key.
Container / runtime issues
Symptom: “Starting services” boot screen never finishes
compose up -d succeeded but at least one service is stuck in a non-healthy state. The boot waits up to 5 minutes before timing out.
- Wait the full 5 minutes — first-launch image pulls can be slow on a cold cache.
- Open the developer logs (View → Toggle Developer Tools → Console) and look for
[ContainerManager]lines. - Quit Agentum, then in a terminal:
cd ~/Library/Application Support/YuriClaw/yuriclaw-data && docker compose ps— note any service inunhealthyorrestartingstate. - If a single service is wedged, restart just that one:
docker compose up -d --force-recreate <service>. - Still stuck? Email
support@theagentum.comwithdocker compose logs --tail=200.
Symptom: Podman machine isn’t starting
Agentum needs a running container runtime. Podman’s VM has to be initialized once and started after each reboot.
- Open Terminal and run
podman machine list. - If no machine exists:
podman machine initthenpodman machine start. - If one exists but is
Stopped:podman machine start. - If start fails with a virtualization error, make sure macOS allowed the Podman helper extension (System Settings → Privacy & Security, scroll to the bottom).
- Re-launch Agentum once
podman psreturns without error. Still failing? Emailsupport@theagentum.comwithpodman machine infooutput.
Symptom: Containers report “unhealthy” — how to inspect logs
- In Agentum, open System → Containers to see the per-service health pill.
- In a terminal:
cd ~/Library/Application Support/YuriClaw/yuriclaw-data && docker compose logs --tail=100 <service>(orpodman compose logs …). - For a live tail:
docker compose logs -f <service>. - For raw inspection:
docker inspect <container-name>shows the last health-check exit code and stderr. - Capture the relevant log lines and email
support@theagentum.com.
Symptom: Compose provider not available (the bundled docker-compose standalone is missing)
Agentum’s boot detection tries podman compose, podman-compose, docker compose, and docker-compose in order. If none answer, the app fails to start the stack.
- In a terminal:
which docker-composeanddocker compose version. At least one should print a version. - If you have Docker Desktop installed, open it and let it finish starting — the
docker composeplugin only registers once Docker Desktop’s daemon is up. - If you’re on Podman, run
brew install podman-composeand retry. - As a last resort, reinstall Agentum from the latest DMG —
Resources/runtime/docker-composeis bundled and re-extracted on install. (Note: the bundled binary is listed undermac.binariesinelectron-builder.ymlso notarization includes it; if it’s missing you have a partial install.) - Still stuck? Email
support@theagentum.com.
Symptom: After a macOS update, services stopped working
macOS point-releases occasionally reset virtualization permissions or evict cached Docker/Podman state.
- Open Docker Desktop or run
podman machine start. Confirmdocker ps(orpodman ps) returns without error. - Re-grant any permissions macOS revoked (check System Settings → Privacy & Security for newly-blocked items).
- Quit and relaunch Agentum. The boot sequence will re-sweep orphans and re-bring up the stack.
- If a Class-2 orphan dialog appears asking to remove old containers, click Remove and Start — your data on host volumes is preserved.
- Still broken? Email
support@theagentum.comwith the macOS version anddocker versionoutput.
OAuth / integration issues
Symptom: Google OAuth tab opens but never returns
The OAuth response is supposed to redirect back to Agentum via agentum://.... If the redirect doesn’t complete, the polling fallback eventually catches up.
- Leave the Agentum onboarding screen open. The wizard polls
/api/licenses/activation-statusand will pick up the completed sign-in within ~10s. - If polling never lands, check the browser tab for an error from
accounts.google.com(consent denied, account disabled, etc.) and retry. - Sign out of any extra Google accounts at
accounts.google.comso the OAuth picker doesn’t get confused. - As a fallback, copy the license key from your activation email and paste it into Agentum’s “I have a license key” field.
- Still failing? Email
support@theagentum.com.
Symptom: Calendar / Gmail integration says “not authorized”
The integration’s OAuth scopes weren’t granted, were revoked, or the refresh token expired.
- In Agentum, open the integration’s settings card and click Reconnect.
- Step through the Google consent screen; make sure the Calendar/Gmail scope checkboxes are ticked.
- If you see “This app is blocked”, check Google Workspace admin policies (org-managed accounts may require an admin to allow the app).
- Visit
https://myaccount.google.com/permissions, remove any stale Agentum entry, and reconnect from scratch. - Still broken? Email
support@theagentum.comwith the integration name.
Symptom: Telegram bot isn’t receiving messages
Either the bot token is wrong, your user ID isn’t in the allowlist, or the in-container TMA listener didn’t start.
- Open System → Settings → Telegram Mini App and confirm the Bot Token field shows a value (use the reveal toggle).
- Confirm your numeric Telegram user ID is in Allowed User IDs (comma-separated). Get it from
@userinfobotif you don’t have it. - Click Save, then Restart agent — this re-spawns the agent container with
--force-recreateso the new env is picked up. - Verify the listener is up:
cd ~/Library/Application Support/YuriClaw/yuriclaw-data && docker compose logs agent | grep -i tmashould show[TMA] listener up on 127.0.0.1:18803. If you see[TMA boot guard] refusing to start: TELEGRAM_ALLOWED_USER_ID is empty, your allowlist didn’t save — re-enter and re-save. - Still no messages? Email
support@theagentum.comwith the bot’s@username.
Plugin / agent issues
Symptom: New agent doesn’t show up in the sidebar after I created it
The plugin folder watcher missed the new directory, or the manifest is invalid.
- Confirm the new agent’s folder lives under your configured plugins directory (default:
~/Documents/YuristicPlugs). - Verify the folder contains a valid
manifest.jsonat its root. - Click the Reload plugins button in the sidebar header (or reload the window with
Cmd+R). - If the sidebar still ignores it, check the dev console for
[plugins]errors — a malformed manifest fails silently in the list view. - Still missing? Email
support@theagentum.comwith the manifest’s contents.
Symptom: Agent built by the chat builder failed validation
The builder generated a manifest or panel file that doesn’t pass schema validation.
- Read the validation error in the chat — it names the failing field (e.g.
tools[2].schema.properties.input.type). - Click Edit in builder and ask the builder to fix the specific field.
- If the builder loops, manually open the generated
manifest.jsonand edit the field to match the schema (see Getting started for the manifest reference). - Re-trigger validation by clicking Validate on the agent’s card.
- Still failing? Email
support@theagentum.comwith the manifest you tried to save.
Symptom: Plugin’s Configuration tab shows blank fields after I save
The fields saved to disk but the in-memory cache wasn’t refreshed.
- Reload the window (
Cmd+R). The fields will repopulate from disk. - If the values are still blank after reload, open
~/Documents/YuristicPlugs/<agent>/config.jsonand confirm your values are there. - If
config.jsonis empty or missing, the save handler failed. Re-enter your values and watch the dev console for[config]errors when you click Save. - Still blank? Email
support@theagentum.comwith the agent name and the contents of itsconfig.json.
Symptom: The hot-reload isn’t picking up my panel.js change
The chokidar watcher should fire on saves under the plugins directory, but only for files that match the watch glob.
- Confirm you saved the file (some editors don’t write until you blur the window or run a formatter).
- Confirm the file lives under your plugins directory — files outside
~/Documents/YuristicPlugs/aren’t watched. - Reload the window with
Cmd+Rto force a fresh read. - Restart Agentum if the watcher itself died — check the dev console for chokidar errors.
- Still not reloading? Email
support@theagentum.comwith the absolute path of the file you’re editing.
Symptom: My agent isn’t firing on schedule
The plugin either didn’t register its recurring job, registered it under an unexpected name, or hit an error on every tick.
- Open System → Schedulers. Find your plugin in the grouped list.
- No row at all? The plugin didn’t call
ctx.schedule.every(...)(ordailyAt) in itsinit(). Open the agent’s source and confirm; recurring jobs registered via the legacymanifest.tickIntervalMsfield still show up here too. - Row present but Last fire is
—? Tick hasn’t fired yet. For a once-a-day schedule that’s normal; forevery(N, …)it should have fired within the interval. Check that the plugin is Enabled in the sidebar. - Row shows a red dot + error message? The tick fires but throws. The error message is truncated in the table; the full stack lives in the plugin’s Logs tab.
- Tick fires fine but nothing visibly happens? Check the Permissions tab: a revoked integration grant returns a denial — the tick will run, the
ctx.services.X.isReady()guard will returnfalse, and your code will silently skip the action. Toggle the integration back on.
Symptom: My agent stopped working after I changed a Permissions toggle
Revoking an integration or data-read grant is meant to keep the plugin running with reduced capability, but the plugin might not handle the denial gracefully.
- Open the Permissions tab for the affected plugin. Note which toggle you flipped.
- The plugin’s
ctx.services.<id>.isReady()returnsfalsefor revoked integrations, andctx.data.read(<id>, <table>)returns[]for revoked reads. Well-written plugins guard on these. - If the plugin throws unhandled errors on revoked access, toggle the grant back on as a temporary fix, then check the plugin’s Logs tab for the unhandled-promise error message — that points at the un-guarded code path.
- Use Reset to defaults in the Permissions tab to restore the auto-granted state from the manifest.
Update / installation issues
Symptom: Auto-update notification appeared but install fails
electron-updater downloaded the new version but Squirrel.Mac couldn’t swap the bundle.
- Quit Agentum fully (
Cmd+Q) and relaunch. The downloaded update will apply on the next clean launch viaautoInstallOnAppQuit. - If a system notification said “YuriClaw is updating” but the app never came back after ~30s, open
Console.appand search for[updater]orSquirrel— the messageApp Still Running Errormeans a background helper kept the process alive past the install window. - Make sure Agentum is in
/Applications/(not in the DMG, not in~/Downloads/). Squirrel needs a writable, non-translocated location to swap the bundle. - As a last resort, download the latest DMG manually from
https://theagentum.com/downloads/yuriclaw/stable/and drag the new app into/Applications, replacing the old one. Your data in~/Library/Application Support/YuriClaw/is preserved. - Still broken? Email
support@theagentum.comwith the version you’re updating from and to.
Symptom: Gatekeeper blocked the .app on first launch
macOS shows “Agentum can’t be opened because Apple cannot check it for malicious software” or similar.
- Right-click (or Control-click)
Agentum.appin/Applicationsand choose Open from the context menu — this surfaces a one-time Open button that bypasses the default block. - If that doesn’t appear, open System Settings → Privacy & Security, scroll to the bottom, and click Open Anyway next to the blocked-app notice.
- Confirm the build is properly signed:
codesign -dv /Applications/Agentum.appshould print an Apple Developer ID team identifier without errors. - If the bundle isn’t notarized (Gatekeeper says “not notarized”), you grabbed an unofficial build — re-download from
https://theagentum.com/downloads/. - Still blocked? Email
support@theagentum.comwith the macOS version.
Symptom: Reinstalling Agentum — what data survives, what doesn’t
Reinstalling the .app bundle does not touch user data. Specifically:
- Survives: anything under
~/Library/Application Support/YuriClaw/— yourlicense.json,settings.json,tunnel/, and the rest ofuserData. The data dir is pinned toYuriClawviaapp.setPatheven though the product is now called Agentum. - Survives:
~/Documents/YuristicPlugs/(your agents and configs) and~/Library/Application Support/YuriClaw/yuriclaw-data/(host volumes for the container stack). - Replaced: the bundle at
/Applications/Agentum.appitself, plus its bundled resources (license-verify-key.pem, the cloudflared binary, the bundleddocker-compose). - Lost: anything you stored only inside a container’s writable layer (rare; the stack uses host volumes for everything that matters).
- If you want a true clean slate, remove
~/Library/Application Support/YuriClaw/before reinstalling — but you will lose your license cache and have to reactivate. Emailsupport@theagentum.comif reactivation fails after a clean install.
Network / Telegram Mini App issues
Symptom: TMA tunnel won’t start
cloudflared is supposed to spawn after the wizard’s tunnel:onboard IPC completes. If it never reaches the registered state, traffic can’t reach your listener.
- In System → Settings → Remote Access, check the status pill. If it says “Starting…” for more than 30 seconds, click Stop then Start again.
- Open
Console.appand filter for[tunnel]. Look fortunnel: spawning cloudflaredfollowed byRegistered tunnel connection— multiple “registered” lines are expected (4 redundant edge connections). - If you see
error="..."lines, your network is blocking outbound 443 to Cloudflare’s edge. Try a different network. - Run cloudflared manually for a verbose log:
/Applications/Agentum.app/Contents/Resources/runtime/cloudflared tunnel --config "$HOME/Library/Application Support/YuriClaw/tunnel/config.yml" --loglevel debug run <tunnel-id>. (The tunnel ID is inconfig.yml.) - Still failing? Email
support@theagentum.comwith the cloudflared log output.
Symptom: The Mini App URL gives “522” or “1033” Cloudflare errors
The tunnel is registered with Cloudflare but the origin (your listener) isn’t reachable from the tunnel.
- From your terminal:
curl -i http://127.0.0.1:18803/tma/. Expect200 OK. If you getConnection refused, the listener isn’t running — see the next symptom. - From inside the container:
cd ~/Library/Application Support/YuriClaw/yuriclaw-data && docker compose exec agent curl -i http://127.0.0.1:18803/tma/. If the host curl works but in-container doesn’t, the listener is bound to the wrong interface. - Confirm the listener binds to
0.0.0.0not127.0.0.1:docker compose exec agent ss -tlnp | grep 18803should show0.0.0.0:18803. If it shows127.0.0.1:18803, you’re on a build older than PR #99 — update Agentum. - Confirm the compose mapping is intact:
grep '18803' ~/Library/Application Support/YuriClaw/yuriclaw-data/docker-compose.ymlshould show- "127.0.0.1:18803:18803". - Still broken? Email
support@theagentum.comwith the tunnel hostname and the curl outputs.
Symptom: “Sign in” inside the TMA fails
Every /api/tma/* request requires a valid X-Telegram-Init-Data header. If auth fails, the bot token is wrong or the init data has expired.
- Close the Mini App on your phone and re-launch it from the bot’s menu button. Telegram regenerates
initDataon every launch (5-min validity for writes, 1h for reads). - If 401s persist after a fresh launch, the bot token in System → Settings → Telegram Mini App doesn’t match the bot you’re talking to. Re-paste the token from
@BotFather, Save, Restart agent. - Confirm your numeric user ID is in Allowed User IDs — a missing ID returns 401 even with valid initData.
- Don’t try to test from a desktop browser — browsers can’t construct valid
initData(they don’t have the bot token), so direct browser visits always 401. Use Telegram on your phone. - Still broken? Email
support@theagentum.comwith the bot’s@username.
See also
- Account & billing — license transfers, refunds, plan changes
- Getting started — first-run setup, manifest reference, runtime requirements