AI S
/docs/troubleshoot
Beta requires a terminal. Works with VS Code, Cursor, JetBrains, Windsurf (integrated terminals), or PowerShell / Terminal.app. Not yet supported on Claude Desktop / ChatGPT Desktop. Where do I find a terminal? →
Troubleshooting · Q&A

Something's not quite right.
let's fix it together.

Seventeen of the most common AIOS hiccups, organized by where they trip people up. Each one has a copy-paste fix. Most take under a minute.

Haylo · your guide
Hi. Haylo here. Pick a tool you use below and I'll surface what tends to bite people on your setup first. If you're not sure what's broken, scroll to aios doctor, it'll tell you.
Auto-detected
You're on macOS · Chrome. The most common issues for your setup are linked on the right.
000 · how it works

What's actually happening

If you've never set up a git hook before, three quick pictures, so when something breaks, you know which piece is involved.

Repo → hook → AIOS → verdict

Each commit goes through the hook, gets reviewed on our servers, comes back as PASS, WARN, or GATE. Your staged files are transmitted to our servers for critic evaluation, then immediately discarded, we store only the verdict, content hash, and findings. The content itself is never written to disk or retained.

Where does my key live?

In a single config file in your home directory. Every project's hook reads it. You only set it once.

What's a pre-commit hook?

A small script git runs before saving your change. AIOS installs one. Once installed, every commit is reviewed automatically, you don't run anything.

0 · commands

AIOS commands you should know

Every command runs from your project's root directory (the folder containing .git/). Replace sk-aios-YOUR-KEY with your real key.

C-01 · Install & rotate
First-time install (you don't have aios yet)
All platforms
macOS / Linux
Terminal
$curl -fsSL https://aios-governance-production.up.railway.app/install.js | node - --key sk-aios-YOUR-KEY
Windows PowerShell
PowerShell
PS>(Invoke-WebRequest -Uri "https://aios-governance-production.up.railway.app/install.js" -UseBasicParsing).Content | node - --key sk-aios-YOUR-KEY
Already installed? Just rotate the key
Terminal
$aios --key sk-aios-YOUR-NEW-KEY
The bootstrap one-liner is only for first install (when aios doesn't exist on your machine). Once installed, aios --key <new-key> rotates in seconds.
C-02 · Diagnose
Diagnose with aios doctor · aios upgrade · aios verify
All platforms
aios doctor
Reports active key, server reachability, hook install state, bundle drift, conflicts. Changes nothing. Run this first when something's not working.
aios upgrade
Compares your local bundle to the server's published version and refreshes any drift. Safe to run anytime. Recommended after a major server release.
aios verify
Replays your tenant's hash-chained audit ledger and checks it against the server head. Proves your audit log is intact. Customer-runnable trust property.
aios --version · aios --help
Show CLI version + the full help message (same as this section).
C-03 · Config & remove
Tune what AIOS checks + uninstall
All platforms
aios rewrite-config
Re-detects your project type, adds paths[] entries so test code doesn't gate on production critics. Backs up the prior config. Use --dry-run to preview first.
aios uninstall
Removes git hook + config. Keeps your AIOS_*.md records by default (your audit history). Add --purge-docs for full removal, or --dry-run to preview.
C-04 · In-dashboard
Faster reference inside the dashboard
All platforms
Dashboard → Help → Commands
Same content as this section but with one-click copy buttons for every command. Open at /dashboard → Help → Commands.
Diagnostic · run first

Not sure what's wrong? Run aios doctor.

It tells you (and us) your OS, shell, Node version, editor, whether the server's reachable, and whether governance actually works. Paste the output into a support email and we can usually solve it in one reply.

AIOS DOCTOR, diagnostic report
================================
aios CLI version : 5.2.0
OS               : win32 10.0.26200 (x64)
Shell / terminal : PowerShell/cmd
Node version     : 20.11.0
Project dir      : C:\Users\you\my-project
AI tool / editor : Cursor, AGENTS.md present (model-agnostic)

Checks:
  [ OK ] Node >= 18. OK (20.11.0)
  [ OK ] git installed. OK (git version 2.43.0)
  [ OK ] inside a git repository. OK
  [ OK ] AIOS pre-commit hook installed. OK
  [ OK ] API key configured. OK (sk-aios-a1b2…)
  [ OK ] server reachable. OK (server v5.2.0)
  [ OK ] governance call works. OK, server ran 18 rule domain(s)

All checks passed. Your next `git commit` will be governed.
$ aios doctor Runs in your project folder. Output is safe to share, no code, no credentials.
00 · prerequisite

Where's my terminal?

AIOS installs once via a single command in a terminal, then governs every commit automatically. If you only use Claude Desktop, Codex Desktop, or a no-terminal IDE, here's how to find one.

T-01 · Windows
Open a terminal on Windows
Windows
Steps
  1. Press Win+X on your keyboard.
  2. Click "Terminal" (Windows 11) or "Windows PowerShell" (Windows 10).
  3. Or: press Win+R, type powershell, press Enter.
  4. You're in. Now cd into your project folder before running aios --key sk-aios-….
T-02 · macOS
Open a terminal on macOS
macOS
Steps
  1. Press Cmd+Space to open Spotlight.
  2. Type Terminal, press Enter.
  3. cd into your project folder, then run the install command.
T-03 · AI Desktop
I only use Claude Desktop / Codex Desktop / ChatGPT Desktop
All platforms
Cause
The AI desktop app you're using doesn't ship a built-in terminal pane. AIOS installs via npm, which needs a real shell.
Fix

Two options:

  1. Use your OS-level terminal once. Every Windows + macOS install has one (see the two issues above). Open it, run the install, close it. AIOS runs automatically on every git commit after that, you never need the terminal again.
  2. Ask the AI itself to install it. Newer Claude Desktop + Codex Desktop versions have agentic shell tools that can run commands for you. Paste this prompt: Run this for me: irm https://aios.visnryentertainment.com/install.ps1 | iex (Windows) or Run this for me: curl -fsSL https://aios.visnryentertainment.com/install.sh | sh (macOS). The agent will execute it via its shell tool.
01 · windows

Windows issues

PowerShell quirks and the most common Windows-only friction. Most are one-command fixes.

W-01 · Install
PowerShell shows a yellow Y/N security warning
Windows
Symptom
Mid-install, PowerShell prints a yellow warning asking "Do you want to run software from this untrusted publisher? (Y/N)".
Cause
Standard Windows execution-policy prompt. Our installer is signed but not yet EV-signed.
Fix
Type Y and press Enter. The installer proceeds normally. You can do this safely once, we don't auto-update anything afterwards.
W-02 · Install
"curl: parameter cannot be found that matches parameter name 'fsSL'"
Windows
Symptom
Pasting the mac/linux curl -fsSL command into PowerShell errors out about the -fsSL flag.
Cause
Windows PowerShell aliases curl to its own Invoke-WebRequest, which has different flags.
Fix
Use the npm install instead, same result, works everywhere:
PowerShell · cmd
>npm install -g https://aios-governance-production.up.railway.app/package.tgz
Or use the PowerShell-native installer at /install.ps1.
W-03 · Install
ENOENT crash mentioning CONIN$
Windows
Symptom
Install crashes with ENOENT: no such file or directory, open 'CONIN$'.
Cause
Happens when the installer is run via a pipe (e.g. iex (iwr …)). Node can't open the console for the interactive Full/Minimal prompt.
Fix
Run as two separate commands instead of one pipeline:
PowerShell
>npm install -g https://aios-governance-production.up.railway.app/package.tgz >aios --key sk-aios-YOUR-KEY
02 · mac · linux

Mac & Linux issues

Path and permission things, mostly. Fewer Windows-style surprises here.

A-01 · Install
"node: command not found"
All platforms
Symptom
Running aios --key … errors with node not found or similar.
Cause
Node.js isn't installed, or it's installed but not on your PATH (common after first install).
Fix
Install Node 18 or newer from nodejs.org. After install, close and reopen your terminal. PATH only refreshes for new sessions. Then re-run.
A-02 · Install
"No .git directory found"
All platforms
Symptom
aios --key … tells you it can't find a git repo.
Cause
The folder you're in isn't a git repository yet. AIOS needs one to install its hook into.
Fix
Terminal
$git init $aios --key sk-aios-YOUR-KEY
03 · install

I have my key but the install failed

You got the verification email, copied the key, ran the command, and something blew up.

I-00 · Auth
Every commit fails with "401 UNAUTHORIZED" right after install
All platforms
Symptom
Install looked fine, but aios doctor shows governance call works. FAIL. HTTP 401, and every git commit is rejected as unauthorized.
Most common cause
A small slip in the install command saved the wrong word as your API key. The two usual ones:
  • aios key sk-aios-…, missing the double dash. The word "key" got saved as your key.
  • aios upgrade on an older version, saved the word "upgrade" as your key.
On v5.3.33+ the CLI catches these and won't corrupt your key, but if you installed earlier the wrong value may still be saved.
Fix
Re-run the install with your real key and the double dash:
Terminal
$aios --key sk-aios-YOUR-KEY
Then aios doctor, the governance check should pass. Want to be sure your CLI has the latest safeguards? Run the direct reinstall first: npm install -g https://aios-governance-production.up.railway.app/package.tgz
Other cause
If the command was typed correctly, the key may have been revoked (e.g. you requested a new one, which retires the old). Get a fresh key from the signup page (same email) and re-run aios --key sk-aios-NEW-KEY.
I-01 · Install
npm install hangs or fails with SSL / network errors
All platforms
Symptom
npm install stalls forever or errors with UNABLE_TO_VERIFY_LEAF_SIGNATURE, ETIMEDOUT, or proxy-related messages.
Cause
Either our server's having a moment, or your network has a proxy / corporate cert in the way.
Fix
First, check we're up: /health. If yes, configure your proxy:
Terminal
$npm config set proxy http://your-proxy:8080 $npm config set https-proxy http://your-proxy:8080
I-02 · Install
"ETIMEDOUT" or "ECONNREFUSED" reaching our server
All platforms
Symptom
Install or commit errors with timeout / connection-refused mentioning railway.app.
Cause
Either we're briefly down or your network is blocking us.
Fix
Hit /health in your browser. If it returns JSON with "status":"ok", the issue is your network. If not, check status.railway.app, we'll be back soon.
I-03 · Install
Dashboard shows an internal IP instead of the real server
All platforms
Symptom
Audit log or dashboard URL points at something like 10.x.x.x rather than aios-governance-production.up.railway.app.
Cause
You're on an installer from before v5.2 that hard-coded an internal address.
Fix
Re-run the install command from your verification email. The current installer points at the right URL.
04 · runtime

I committed but nothing happened

No verdict, no errors, no output. The hook isn't firing.

R-01 · Runtime
Commits go through with no AIOS output
All platforms
Symptom
git commit succeeds normally. No PASS/WARN/GATE. No "running governance…" line.
Cause
The pre-commit hook isn't installed in this repo, usually because the install was done in a different folder.
Fix
From the project folder you want governed, re-run the key command. It re-installs the hook into this repo's .git/hooks/:
Terminal · in your project folder
$aios --key sk-aios-YOUR-KEY $aios doctor
The doctor will confirm the hook is wired.
R-02 · Runtime
Hook fires but produces no output
All platforms
Symptom
You see the hook line briefly, then nothing else, commit lands silently.
Cause
Hook can't reach the server (often a network blip), or it timed out at 30s without completing.
Fix
Run aios doctor, if "server reachable" fails, see I-02.
R-03 · Runtime
AIOS is reviewing node_modules or other huge folders
All platforms
Symptom
Commits take forever; verdicts mention paths inside node_modules/, dist/, .next/, etc.
Cause
You're on an older client that didn't apply the default exclude list.
Fix
Re-run the install. v5.2 auto-excludes build artifacts, vendored deps, lockfiles, and binary blobs.
R-04 · Runtime
A subfolder shows up as a submodule
All platforms
Symptom
You see a subfolder treated as a submodule in git status, or AIOS can't review files inside it.
Cause
There's a nested .git/ folder inside one of your subfolders (usually from cloning a starter into a place that already has git).
Fix
Delete the nested .git:
Terminal
$rm -rf subfolder/.git # on Windows: Remove-Item -Recurse -Force subfolder\.git
05 · gates

My commit got blocked

A GATE verdict stopped the commit. Here's how to read it and move forward.

G-01 · Verdict
"governance FAILED, commit blocked"
All platforms
Symptom
AIOS prints a list of rule violations with line numbers, then refuses the commit.
Cause
One of AIOS's rules found a hard-blocking issue, usually a secret, an auth flaw, or a known-vulnerable dependency.
Fix
Read the output. Each line has the rule name, the file, the line number, and a short explanation. Fix those lines, git add them, and re-commit. If you're sure it's a false positive, see G-1a (Wrong file type) below, or G-02 (Bypass).
G-1a · v5.3+
AIOS is flagging a file the rule shouldn't apply to
All platforms
Symptom
A SQL-injection check fires on a file with no SQL. A logging check fires on a CLI tool. An eval check fires on a comment that just mentions eval. A rule meant for production web code blocks a file that isn't production web code.
Cause
By default, AIOS treats every JS/TS file like production web code and runs every rule against it. aios.config.json lets you tell AIOS what kind of file each folder contains (tests / CLI / data / docs / etc.) so only the right rules run against each.
Fix · Auto-detect (recommended)
From your project root:
Terminal
$aios rewrite-config --dry-run # preview
$aios rewrite-config # apply
The detector scans for tests/, scripts/proofs/, tools/, docs/, seed_data/, and adds a paths[] entry for each. Backs up the prior config to aios.config.json.pre-v5.3.bak. Preserves your custom keys.
Fix · Use the dashboard suggestion
When a commit is blocked, open the verdict in the dashboard. A yellow "Suggested config change" card shows the exact path entry that would let the file pass, plus a Copy JSON button. Paste into your aios.config.json, recommit.
Fix · Manual edit
Add a path entry to aios.config.json:
aios.config.json
{
  "projectType": "production",
  "paths": [
    { "pattern": "tests/**",        "profile": "test_harness" },
    { "pattern": "scripts/proofs/**", "profile": "test_harness" },
    { "pattern": "tools/**",        "profile": "local_tooling" },
    { "pattern": "docs/**",         "profile": "data_extraction" }
  ]
}
Profiles: production (strictest), library, local_tooling, test_harness, data_extraction, knowledge_base, mixed.
What never changes
Security-floor critics (secrets, owasp, crypto, auth, compliance) stay gating in every profile. You can't accidentally silence security with a config edit. AIOS rejects profiles that try. Profiles only relax style / structure critics where they don't apply.
G-02 · Verdict
I need to commit urgently, how do I bypass?
All platforms
Symptom
A block is stopping a commit you need to land right now (production hotfix, etc.).
Cause
By design, that's what blocks do. There's always an escape hatch.
Fix
Use git's standard bypass flag. The commit lands and the bypass is logged in your audit trail:
Terminal
$git commit --no-verify -m 'urgent hotfix'
Use this sparingly, the bypass shows up on your dashboard as a separate review state.
v5.3.4+, reason required for AIOS preflight bypass
If your project uses the AIOS preflight check (the script that runs before commit and asks about your AIOS_INTENT.md), the AIOS_PREFLIGHT_BYPASS=1 env var now also requires AIOS_PREFLIGHT_REASON, a free-text explanation of why you're bypassing:
Terminal
AIOS_PREFLIGHT_BYPASS=1 AIOS_PREFLIGHT_REASON="prod down, need to ship rollback now" git commit -m '...'
The reason must be at least 10 characters and not placeholder text (rejected: ok, test, fix, wip, bypass, the env-var name itself). Reason is written into your audit ledger so every bypass has a recorded rationale. This applies to the AIOS preflight script only, the git commit --no-verify form above is covered by the next entry (v5.3.55+).
v5.3.55+, reason required when pushing commits that skipped governance
If you push commits that bypassed the AIOS check (anything pushed with --no-verify, or commits made before AIOS was installed), AIOS now asks for a reason at push time, same shape as the preflight bypass above:
Terminal
AIOS_PUSH_BYPASS_REASON="docs-only commits, no source code changed" git push
Same validation rules: at least 10 characters, no placeholders (fix, test, asdf, etc.), not the env-var name pasted back. The reason lands in your audit log with kind: "push_bypass" alongside the commit SHAs that skipped review. Whoever runs the push provides the reason, you, your CI, or your AI agent. Closes the silent --no-verify loophole that used to let things slip through without a written record of why.
G-05 · v5.3.9
My first commit printed a big banner with AIOS rules, is that normal?
All platforms
Symptom
Running git commit for the first time in a freshly-installed AIOS repo, your terminal prints a long banner labeled "AIOS GOVERNANCE. FIRST COMMIT WELCOME" followed by the contents of AIOS_AGENTS.md. Subsequent commits don't show it.
Cause
By design (v5.3.9+). AIOS hands the governance rules directly to your AI agent on the first commit via the hook output channel, instead of writing into your CLAUDE.md or other vendor files. The banner is the AI's training-wheels moment, it loads the rules into context. After first commit, AIOS drops a .aios/welcomed marker and the banner never repeats.
Fix
No action needed, this is the intended behavior. The next commit will be quiet (only the verdict prints). If you want to see the welcome again (e.g. you switched AI tools and want the new agent to see it), delete .aios/welcomed and it will re-fire on the next commit.
What AIOS actually writes in your repo
Three things, total: AIOS_AGENTS.md (the governance rules), aios.config.json (your settings for what kind of file gets which rules), and .git/hooks/pre-commit (chained, your existing hooks are preserved). AIOS never writes to CLAUDE.md, AGENTS.md, .cursor/rules/, .github/copilot-instructions.md, or .windsurfrules. Those belong to you. AIOS never commits, never pushes, never modifies your source code.
G-03 · v5.3.6
aios rewrite-config says "detector module not found"
All platforms
Symptom
Running aios rewrite-config errors out with Cannot find module ... v53ConfigDetector or similar. Was working previously, or never worked on a fresh install.
Cause
Older AIOS bundles were missing a small piece of the install, the detector module wasn't packaged correctly. We've since fixed it on our end.
Fix
Pull a fresh bundle:
Terminal
$aios upgrade
Then re-run aios rewrite-config. If aios upgrade reports "already up to date" but the error persists, you may have a stale install, reinstall with aios --key <your-key>.
G-04 · v5.3.6
crypto.constantTime fires unexpectedly on code with no secrets
All platforms
Symptom
A line like docs[keys[0]] or if (config.row_key) trips crypto.constantTime. "secret-dependent branch detected" or "secret-dependent memory access detected", even though the identifier is not a secret.
Cause
Older versions of the rule matched any identifier that contained the word key as a substring, so things like keys, row_key, even monkey tripped it. We've since tightened the rule so only the standalone word fires.
Fix
Pull a fresh bundle:
Terminal
$aios upgrade
Re-commit. If the same false positive persists on v5.3.6+ on a standalone keyword (e.g. a variable literally named key), open a feedback ticket from the dashboard, that's a separate issue.
06 · email

I didn't get the verification email

The link should arrive within seconds. When it doesn't, here's the playbook.

E-01 · Email
No verification email arrived
All platforms
Symptom
You signed up at /signup, the page says "check your email", but nothing arrived.
Cause
Usually a spam filter or a corporate gateway. Occasionally a typo in the email field.
Fix
Three things, in order:
  1. Check your spam folder. Look for sender noreply@aios.visnryentertainment.com.
  2. Add aios.visnryentertainment.com to your safe senders.
  3. Go back to /signup and re-submit. The previous link won't work, the new one will.
Links expire 30 minutes after sending. If yours did, just re-submit; you'll get a fresh one.
E-02 · Email
My key expired / I lost it
All platforms
Symptom
Your key worked, now you get 401 Unauthorized; or you never copied it from the verification page.
Cause
Either the 30-day beta trial elapsed, or you need a fresh key.
Fix
Re-enter the same email at /signup. We'll send a fresh verification link and issue a new key. Your previous key is revoked when the new one is issued, so re-run aios --key sk-aios-NEW-KEY in your project after.
E-03 · Email
"Did you mean gmail.com?" warning at signup
All platforms
Symptom
You submitted a signup and saw a yellow box: "Did you mean name@gmail.com?"
Cause
The domain you typed is one or two characters off a major email provider (gmail.com, outlook.com, yahoo.com, icloud.com, proton.me, etc.). Most often a real typo. gmial.com, gmaill.com, gmail.cm.
Fix
Click "Use <suggestion>" to accept the correction and proceed with the corrected email. If you really meant the original (some companies use unusual domains), click "Use <original> anyway". AIOS will accept either, but the verification email only arrives at the address you confirm.
E-04 · Email
My email got accepted but the link never arrived
All platforms
Symptom
"Check your email" appeared, you waited 5+ minutes, nothing arrived, even though the domain is correct.
Cause
The most likely cause is a typo before the @ (in the username part). AIOS can detect typo'd domains but can't tell whether the username part exists at a real domain like gmail.com, it's a real address from our perspective, the bounce happens at delivery.
Fix
  1. Triple-check the spelling before the @. Compare letter-by-letter against another place your email appears (an existing email client, login screen, etc.).
  2. Check spam/junk one more time.
  3. Re-submit at /signup with the corrected address.

If the same address fails twice and you've confirmed the spelling, contact support@visnryentertainment.com, could be a corporate spam filter blocking us at the gateway.

D-03 · dashboard

Dashboard shows the wrong account

You signed up with a new email, but the dashboard shows verdicts from a different account.

D-03 · Dashboard
I see a different account's verdicts
All platforms
Symptom
You signed up with a fresh email (Account B) but visiting the dashboard shows verdicts from an older account (Account A) that you previously used in this browser.
Cause
Dashboard sign-in uses a 7-day session cookie tied to whichever key you last signed in with. Your prior signin to Account A on this browser is still active.
Fix
  1. Click your account menu (top-right of the dashboard) → Sign out.
  2. You'll land on the sign-in page. Paste your new API key.
  3. You're now on the new account's dashboard.

Alternative: re-click the original verification link from your inbox, that automatically refreshes your browser session to the new account.

07 · move

How do I reinstall / move to a different project?

One install, many projects. Here's how it works.

M-01 · Move
Install AIOS once, use it in any project
All platforms
Symptom
You want governance on a new project, do you have to reinstall everything?
Cause
N/A, this is how it works by design.
Fix
The npm install is once per machine. The aios --key command is once per project (it installs the hook). For a new repo:
Terminal · from inside the new project folder
# first time on this machine? also run: $npm install -g https://aios-governance-production.up.railway.app/package.tgz $aios --key sk-aios-YOUR-KEY
08 · remove

Remove AIOS from a repo

One command. By default it keeps your audit-record markdowns (your governance evidence) and only removes the hooks + config.

U-01 · Remove
aios uninstall, clean exit from a project
All platforms
Symptom
You want to stop AIOS from running on a specific repo, either to migrate off, to test something, or to clean up before sharing the repo.
Fix
From inside the project folder, run:
Terminal · preview, then run
# Preview what will be removed (changes nothing) $aios uninstall --dry-run # Remove hooks + config; KEEP your AIOS_*.md audit records $aios uninstall # Or: also delete AIOS_MEMORY.md, AIOS_VERDICTS.md, .aios/ ledger, etc. $aios uninstall --purge-docs

What's preserved by default: AIOS_MEMORY.md, AIOS_VERDICTS.md, AIOS_CODEBASE.md, AIOS_INTENT.md, AIOS_DECISION_LOG.md, AIOS_TECHNICAL_DEBT.md, AIOS_RELATIONSHIP.md, AIOS_CODEBASE_MAP.md, AIOS_TESTS.md, AIOS_COMPLIANCE.md, AIOS_SUPPLY_CHAIN.md, plus the .aios/ ledger directory. These are your governance evidence, the cryptographic record of what AIOS reviewed and when. We don't delete them automatically.

What's removed: the git pre-commit / post-commit / pre-push hooks (your originals are restored from .pre-aios backups if present), aios_user_config.json, aios.config.json, AIOS-only entries from .mcp.json (other entries preserved), the AIOS-START..AIOS-END blocks in AGENTS.md / CLAUDE.md, AIOS_AGENTS.md (if AIOS-managed), and the # AIOS section of .gitignore.

To also uninstall the global CLI: npm uninstall -g aios-governance. That removes the aios binary from your PATH.

D-01 · Dashboard
Sign-in won't load (or never finishes)
All
Symptom
You paste your API key on /dashboard, click Sign in, and the button spins forever, or nothing happens at all.
Cause
Almost always one of three:
  1. Server cold-start. The Railway server may have been idle. Give it 10–30 seconds and try again.
  2. Stale cookie or another tab logged in. Two browser tabs racing the same session can wedge each other.
  3. Wrong server. If you have AIOS_SERVER set in your shell profile (especially via OneDrive-synced PowerShell), your dashboard tab may be pointed at a server that's no longer running. Check with echo $env:AIOS_SERVER (PowerShell) or echo $AIOS_SERVER (bash).
Fix
  1. Close every other open AIOS dashboard tab on this and other computers.
  2. Hard-refresh: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (macOS).
  3. Try once in a private/incognito window. If that works, the issue was a stale cookie, clear cookies for this domain.
  4. If the sign-in form shows "No response in 15 seconds", the server is unreachable. Try aios doctor from any AIOS-installed project to confirm the server is up.
D-02 · Dashboard
Page loading spinner won't go away
All
Symptom
You clicked a link on an AIOS page and the Haylo thinking spinner sits there indefinitely.
Cause
The destination page is taking longer than expected to load. Almost always a slow network or a server cold-start (first request after idle).
Fix
  1. After 6 seconds the overlay shows a Cancel button. Click it to stop the navigation and stay on the current page.
  2. Try the link again, once the server is warm, the second click is usually instant.
  3. If it keeps happening on the same link, the destination URL may be wrong or the server may be down. Run aios doctor to confirm reachability.
10 · github actions

GitHub Actions CI

The AIOS check run is powered by Approach B — the runner is downloaded from your AIOS server at CI time, so there is no public GitHub repo dependency. Common failures below.

CI-01 · Auth
Check run fails with "401 Unauthorized"
All platforms
Symptom
The AIOS Governance check run on your PR shows a red failure with 401 or "Unauthorized" in the run output.
Cause
The AIOS_API_KEY secret in your GitHub repo is missing, wrong, or revoked.
Fix
  1. Go to your GitHub repo → Settings → Secrets and variables → Actions.
  2. Check that a secret named exactly AIOS_API_KEY exists (no typos, no extra spaces).
  3. Copy your key from the dashboard Keys page and update the secret value.
  4. Re-push a commit to trigger the check again.
If you recently rotated your key (getting a new one revokes the old one), you must update the GitHub secret to match.
CI-02 · Coverage
Check run passes but says "No governed files changed"
All platforms
Symptom
The AIOS check run shows green and says "No governed files changed" even though there are code changes in the PR.
Cause
AIOS skips removed files, binary files (images, fonts, zips, etc.), files with zero net changes, and files over 512 KB. If your PR only touches those, there is nothing to govern.
Fix
No action needed — this is correct behavior. If you expected a specific file to be governed, check:
  • The file has a text extension (e.g. .js, .ts, .py, .go — not .png, .pdf, .woff).
  • The file is modified or added, not just renamed or deleted.
  • The file is under 512 KB.
CI-03 · Runner
Check run fails at "Download AIOS runner" step
All platforms
Symptom
The GitHub Actions job fails on the step that runs curl -fsSL .../ci-runner -o aios-runner.js with a network error or 404.
Cause
The AIOS server is unreachable from GitHub's runner infrastructure, or the server URL in the workflow YAML is wrong.
Fix
  1. Check your server is reachable: hit https://aios-governance-production.up.railway.app/health in a browser. It should return {"status":"ok"}.
  2. Open the downloaded .github/workflows/aios.yml and confirm the server URL matches your account's server.
  3. Re-download a fresh aios.yml from the dashboard GitHub Actions page and recommit.
CI-04 · Setup
No AIOS check run appears on my PR at all
All platforms
Symptom
PRs don't show any AIOS Governance check. The Actions tab shows no AIOS job either.
Cause
The workflow file is either missing, in the wrong path, or has a YAML syntax error that prevents GitHub from parsing it.
Fix
  1. Confirm the file exists at exactly .github/workflows/aios.yml (not .github/aios.yml, not .github/workflow/).
  2. Check the Actions tab in your GitHub repo. If AIOS doesn't appear there, the YAML is invalid. GitHub surfaces YAML parse errors under the Actions tab.
  3. Re-download a fresh copy from the dashboard — the server always serves a valid template.

Still stuck? Send us your doctor output.

If none of the above fixes work, run aios doctor in your project and paste the output into an email. We usually solve it in one reply.

ezra@visnryentertainment.com
Betacoverage and behavior may change · advisory only