Skip to main content
Cortex Bot tells you what went wrong in a sentence rather than a code, so the quickest way to fix something is to find the exact sentence you are looking at. This page is grouped by area: locate your symptom, read what it means, then do what the last column says. Two habits make everything here easier. First, Bot fails closed: when a check cannot be read, the action is refused rather than quietly allowed, so many failures are about a read that did not come back and not about permission you lack. Second, a load failure is never a statement about what exists. Could not load Always rules. does not mean you have no rules, and Your bots could not be loaded. does not mean the account is empty.

You cannot find your bots

An account with no bots opens on Create your first bot rather than an empty list. That setup form is the expected first screen, not an error. It asks for a Name and optionally a Look, Face, Description, Label, Notifications and Skills, and every field can be changed later. An account holds at most 24 bots, and each bot has exactly one computer. Those ceilings are fixed for everyone, so hitting one is not something a setting will lift. See Limits and quotas. Bot also requires a signed-in account, end to end, because a signed-out visitor cannot come back later to revoke what it set up. The refusals say which part needs an account: Guests cannot use Bot — the app is signed-in only., A guest session has no bot files. Sign in to browse a bot’s workspace., Connecting an app needs a signed-in account., A guest cannot record this computer., and Guest credentials are not accepted on this deployment. If you are in a browser and there is no This PC or SSH choice on the Runs on rail, that is expected: on the web a bot’s computer is Cloud only. The Bot desktop app is where the other choices appear.

The computer will not start, or the desktop will not appear

Connecting to the desktop stream… is not a failure

It is the live view handshaking, which can take up to about 20 seconds. The failure is a different sentence, The desktop stream could not connect., and that one has a button: Retry stream. If all you have is the connecting line, wait rather than restarting the computer. The rail itself is the short version: Live means the stream is up, Off means the computer is not running and Wake the computer is your next move. An idle computer hibernates on its own, so the first step of a turn can take a moment while it comes back. That is normal, not a fault. If the computer did not respond as expected, try the action again. Recreate rebuilds the computer and is the last resort rather than the first, because a rebuilt desktop starts from scratch. Starting, waking, sleeping and recreating are covered in full on Computer.

A parked step will not clear

Every step that changes something stops and asks. Until you choose, nothing happens: that is the widget doing its job, not a stuck screen. The model is one line: Allow runs the parked tool. Deny does not. Always writes a rule. Two more reasons an approval seems not to take. Marking an inbox row read is not the same as deciding it, so a row you have read can still be waiting. And an Always you write can be overruled: tool policy is evaluated in tiers and the administrator tier wins, so a rule set above you still asks or still denies. Both are explained on Approvals and tool policy, which also lists exactly which tools always ask, which never do, and where parked steps collect.
The Bot turn timed out; external effects may have occurred. means the 15-minute deadline expired part-way through, not that nothing happened. Check what the bot actually did, on its computer and anywhere it was posting, before you ask it to run the job again.

A tool, an app or a skill is missing

A skill that is enabled but seems ignored is usually not a fault: a skill is a recipe, not a permission, and the bot picks one up when the job matches. Name it in your message to be sure. If the review never ran you get The review did not run, so this recipe has not been cleared. Enable anyway only if you have read it., and the only control offered is Enable anyway. See Bot skills. When a bot cannot reach a host, the allow list is the reason: Hosts on the allow list may be reached. Everything else is refused, and the blocked ranges are refused before this list is read. An empty list means exactly what it says, No host is allowlisted, so the bot reaches nothing. Adding one is what turns egress on., and some destinations can never be allowed at all: Instance metadata, loopback and the private network are blocked whatever this list says — {example} cannot be allowed. Editing the list from this panel is not wired yet, which the panel admits: Cortex cannot store an egress rule yet, so nothing here writes. The list above is what the deployment holds.

A turn stopped early, or the bot said nothing

A turn that ends with work done and nothing said is a real case: only what the bot deliberately sends becomes a bubble, and it can send at most eight in a turn. Its own prose is not shown. If you want a summary, ask for one. A turn has no round limit, so length alone will not stop it: the 15-minute deadline and the repeat guard above are what stop it. If the composer will not accept a message, look for a question or a secret request in the thread. A pending one blocks the composer until you answer it. And a task the bot spun off cannot talk to you at all, only the parent bot speaks, so watch the parent thread rather than the task. See How Bot works and Tasks and subagents.

A routine did not run when you expected

See Routines.

Recording or teaching is refused

Recording needs a computer that is up and an owner doing the recording: Recording needs a running computer., Recording needs the computer to be awake., Computer Use is off, so recording is refused., Only the owner can record. A video that fails at the end says Encoding failed, and a demonstration that fails says The task could not be taught. Nothing was saved., which means there is nothing half-saved to clean up. See Teach from a demonstration.

Not available yet, so there is nothing to fix

Some surfaces are built but not wired up on this deployment, and no setting will turn them on. Bot rooms and room sharing: This deployment does not host bot rooms yet. Nothing was started. Bot packs and duplicating a bot. Browsing or downloading a bot’s workspace files. Editing the egress allow list. Minting a public share link: Cortex cannot mint a link yet, so nothing here writes. Inbound mail: Inbound mail is not configured on this deployment. Live voice: Live voice is not available on this deployment. The companion roster: The companion roster is not served here yet.
There is also no per-turn cost line to look up for a bot: The cost ledger is not configured on this deployment. If a bot action failed, the reason is the message it gave you, so work from that rather than looking for a billing explanation. Channels, routines, tasks, secrets, memory, skills, tool policy and teaching are all live, and Channels and Share a bot say which half of each pair works today.

Error codes you may see

Every code has its own page in the Problem catalog, and Errors explains how to read one. If several things fail at once across products, check System status before debugging your own bot.
  • Computer - the desktop rail, the stream, control handover, and recreating a computer.
  • Approvals and tool policy - which tools ask, what Always writes, and where parked steps collect.
  • How Bot works - what a turn is, what ends one, and what the bot can say.
  • Routines - schedules, weekday hours, and paused copies.
  • Troubleshooting - sign-in, updates and the rest of the app.