Windows Troubleshooting
Validate and troubleshoot an AI Endpoint Shield installation on Windows — version, tasks, config, logs, hooks, and the common failure modes.
Overview
This page covers post-installation validation and troubleshooting of AI Endpoint Shield on Windows — checking the version, processes and scheduled tasks, where config lives, the logs the agent writes, verifying IDE hooks, and common fixes. Use it if Akto was installed but is not sending data, or stopped working after a reboot.
30-second health check
Paste this into an elevated PowerShell window:
$d = "C:\Program Files\Akto Endpoint Shield"
Write-Host "`n--- Version ---"
& "$d\akto-endpoint-shield.exe" --version 2>&1
Write-Host "`n--- Scheduled tasks ---"
Get-ScheduledTask -TaskName "MCPEndpointShield*" | ForEach-Object {
$i = $_ | Get-ScheduledTaskInfo
[PSCustomObject]@{ Task = $_.TaskName; State = $_.State; LastResult = "0x{0:X8}" -f $i.LastTaskResult }
} | Format-Table -AutoSize
Write-Host "--- Running processes ---"
Get-Process akto-endpoint-shield -ErrorAction SilentlyContinue | Format-Table Name, Id, StartTime -AutoSize
Write-Host "--- Config status ---"
$cfgDir = "$env:SystemRoot\System32\config\systemprofile\.akto-endpoint-shield\config"
& "$d\akto-endpoint-shield.exe" check-config --path $cfgDirA healthy result looks like:
A version string (e.g.
akto-endpoint-shield version v1.1.134), not an errorMCPEndpointShieldHTTP,MCPEndpointShieldAgent,MCPEndpointShieldDetectorall showRunningorReadywithLastResult0x00000000(MCPEndpointShieldSystemProxymay showReady/stopped — it's an optional feature, see System-wide proxy)At least one
akto-endpoint-shieldprocess listedConfig status prints
provisioned
If any of these don't match, keep reading — the matching section explains what to check, and Common issues and fixes has a quick symptom → fix table.
Checking the installed version
This prints immediately, before anything else the agent does, so it works even if config or the network is broken. If it errors instead of printing a version, the binary itself is missing, blocked, or corrupted — see Install location and files.
Install location and files
Default install folder:
Quick presence + integrity check:
Test-PathreturningFalsemeans Akto isn't installed (or was installed to a different location) — re-run the installer.If the last command (
Zone.Identifier) returns a result instead of an error, the file is flagged by Windows as downloaded from the internet ("Mark of the Web"), which can cause SmartScreen/UAC to block it. Fix:
If you previously had an older MCP Endpoint Shield install (the product's old name) at C:\Program Files\MCP Endpoint Shield, that's expected to be gone after an update — the installer removes it automatically.
Scheduled tasks
Akto runs as four scheduled tasks (all named MCPEndpointShield*, registered to run as SYSTEM at startup):
MCPEndpointShieldHTTP
Local HTTP service the agent uses internally
MCPEndpointShieldAgent
Main background agent — heartbeats to the dashboard, applies config/policy changes, keeps IDE hooks up to date
MCPEndpointShieldDetector
Detects which AI tools/IDEs are installed on the machine
MCPEndpointShieldSystemProxy
Optional system-wide HTTPS inspection proxy — only relevant if your organization has this feature turned on (see System-wide proxy)
Check status and last result:
State should be Running or Ready — never Disabled. Common LastResult codes:
0x00000000
Success
0x00000002
File not found — binary or launcher script is missing, reinstall
0x00000005
Access denied — check with your security team if an EDR/antivirus tool is blocking it
0x00041301
Task is currently running (normal, transient)
0x00041303
Task has not run yet (normal right after install)
0xC000013A
Process was terminated externally — usually antivirus/EDR killing it, see Allowlist in Security Software if CrowdStrike is in use
0x80070001
PowerShell execution policy (a Group Policy restriction) is blocking the script at startup — contact your IT admin
If a task shows Ready but never seems to have run, or you just changed something and want to restart everything immediately:
After a reboot, all three core tasks (HTTP, Agent, Detector) should show a LastRunTime at or after your last boot time:
If a task's LastRunTime is older than the boot time, it didn't auto-start — see Common issues and fixes.
Running processes
You should normally see 2–3 akto-endpoint-shield.exe processes (one per running task above). If nothing appears:
Start the tasks manually (command in Scheduled tasks) and re-check after a few seconds.
If a process appears and then disappears within a few seconds every time, something is killing it immediately after launch — most commonly an antivirus/EDR tool. See Allowlist in Security Software.
To see the exact error a task would hit (useful when a task starts and immediately exits), run the agent directly in the foreground:
Leave the window open, read the first few lines of output, then press Ctrl+C to stop it. Common messages:
AKTO_API_TOKEN is not set
Config is missing or unreadable — see Config values and location
AKTO_API_BASE_URL is not set
Same as above
bind: Only one usage of each socket address
Another Akto process is already using that port — stop existing processes first (Stop-Process -Name akto-endpoint-shield -Force), then restart the tasks
failed to install mitmproxy
No internet access during install — check network and re-run the installer
Listening ports
The HTTP service binds a local port that the agent and the IDE hooks talk to. If hooks report connection failures while the tasks look healthy, check what is actually listening:
If nothing is returned but processes exist, the service failed to bind — usually a port conflict. Run the agent in the foreground (see Running processes) to see the bind error, then:
Config values and location
Akto stores its configuration (your account token, dashboard URL, and feature on/off switches) encrypted on disk, using Windows' own built-in machine-level encryption (DPAPI) — the file is not human-readable, and only processes on that same machine can decrypt it.
File locations (the same encrypted file is kept in more than one place so both your user session and the background SYSTEM tasks can each read their own copy):
Your user profile
%USERPROFILE%\.akto-endpoint-shield\config\config.env.enc
SYSTEM (used by the scheduled tasks)
C:\Windows\System32\config\systemprofile\.akto-endpoint-shield\config\config.env.enc
On a device that hasn't been updated in a while you may instead see a plain config.env file next to it — same idea, older format, still supported.
Check whether config is present and valid (does not print any secret values):
provisioned (exit code 0)
Healthy — token and settings are present and readable
not-provisioned (exit code 2)
Device was never given credentials — re-run the installer with your Akto token
undecryptable (exit code 3)
Config file exists but can't be decrypted (e.g. after restoring from a different machine's backup/image) — this device needs to be reinstalled/reprovisioned, it cannot be repaired in place
Reading a specific (non-secret) value, e.g. to confirm which dashboard URL or device ID this machine is registered under:
Do not run get-config ... AKTO_API_TOKEN and paste the output anywhere (screenshots, tickets, chat) — that value is your account's secret credential. If Akto support needs to confirm the token, they can verify it against your account without you ever displaying it.
Config keys you may be asked about:
AKTO_API_TOKEN
Your organization's Akto account credential (secret — never share)
AKTO_API_BASE_URL
Your Akto dashboard's URL for this account
AGENT_ID
This device's unique identifier, shown on the Akto dashboard
ENABLE_PROMPT_HOOKS_* / ENABLE_MCP_HOOKS_*
Per-IDE switches for whether guardrail hooks are installed for that tool (on by default)
ENABLE_SYSTEM_PROXY
Whether the optional system-wide HTTPS proxy is turned on (off by default)
Cross-checking this device's identity against the dashboard:
This should match the device label shown for this machine in the Akto dashboard.
Logs
All logs below are plain text and safe to open in Notepad.
Install log
%USERPROFILE%\.akto-endpoint-shield\logs\install.log (also briefly at C:\ProgramData\akto-endpoint-shield\logs\install.log before a user profile is detected)
Full step-by-step output of the last install/update run, including every IDE hook installer's own output
Agent (background service)
C:\ProgramData\akto-endpoint-shield\logs\agent-wrapper.log
Startup/exit history for the MCPEndpointShieldAgent task
HTTP service
C:\ProgramData\akto-endpoint-shield\logs\http-wrapper.log
Startup/exit history for the MCPEndpointShieldHTTP task
Detector
C:\ProgramData\akto-endpoint-shield\logs\detect-wrapper.log
Startup/exit history for the MCPEndpointShieldDetector task
System proxy
C:\ProgramData\akto-endpoint-shield\logs\system-proxy.log (or %LOCALAPPDATA%\akto-endpoint-shield\logs\system-proxy.log once a user is logged in)
Only present if the optional proxy feature is enabled
Auto-update / self-heal detection
C:\ProgramData\akto-endpoint-shield\logs\remediation-detect.log
Result of each scheduled health check (runs automatically every few hours)
Auto-update / self-heal action
C:\ProgramData\akto-endpoint-shield\logs\remediation-remediate.log
What happened the last time a health check found and fixed an issue (e.g. installed a new version)
View the most recent activity in any of them:
Hook installation logs — there's no separate file per IDE; each IDE's hook installer writes its output into install.log above, prefixed with its script name. To see just the hook-related lines from the last install/update:
Hook execution (prompt block/allow) logs — when a hook actually blocks or allows something in your IDE in real time, that decision is recorded on the Akto dashboard, not in a local file on this machine.
Verifying IDE hooks
Akto installs guardrail "hooks" into each supported IDE/CLI so it can inspect prompts and tool calls. Run the check for whichever tools you use:
Claude Code
Get-Content "$env:USERPROFILE\.claude\settings.json" | Select-String "akto"
Cursor
(Get-Content "$env:USERPROFILE\.cursor\hooks.json" | ConvertFrom-Json).hooks.beforeSubmitPrompt
GitHub Copilot CLI
Test-Path "$env:USERPROFILE\.github\hooks\hooks.json"
VS Code Copilot
Test-Path "$env:USERPROFILE\.copilot\hooks\akto-hooks.json"
Codex CLI
Get-Content "$env:USERPROFILE\.codex\config.toml" | Select-String "codex_hooks"
Gemini CLI
Test-Path "$env:USERPROFILE\.gemini\settings.json"
OpenCode
Look for akto-guardrails-plugin.js under %APPDATA%\OpenCode\plugin, %USERPROFILE%\.config\opencode\plugin, or %LOCALAPPDATA%\opencode\plugin
A result (a JSON block, True, or a matching line) means the hook is installed. No result / False means that tool's hooks weren't installed — because the tool wasn't detected on the machine, its feature switch (ENABLE_PROMPT_HOOKS_*, see Config values and location) is off for your account, or the install needs to be re-run for that tool.
If hooks worked before and stopped working (e.g. after editing IDE settings yourself), the background agent (MCPEndpointShieldAgent task) automatically re-checks and restores them — no action needed, wait for its next check-in cycle (typically a few minutes), or restart the task to force it immediately:
System-wide proxy (optional)
Some accounts have an optional feature enabled where Akto routes AI-tool traffic through a local HTTPS-inspecting proxy. This only applies if your organization has turned it on. Check whether it's active:
If the task is Ready (not running) and no certificate is listed, the feature is simply not enabled for your account — this is normal and not an error.
If it is enabled but the certificate isn't trusted (browser/tool warnings about an untrusted certificate), re-import it:
Startup and execution-policy audit
Use this when the tasks are registered but never actually run — most often because Group Policy or an event-log-visible error is stopping them at boot.
Group Policy execution policy
A machine- or user-level GPO-enforced execution policy (typically AllSigned) overrides -ExecutionPolicy Bypass for -File invocations, which silently blocks a task that launches a PowerShell script at startup:
Anything reported under a GPO line is enforced and cannot be bypassed by the task. Current Akto builds register the tasks to run akto-endpoint-shield.exe directly for exactly this reason — see Task action pattern below. If your device still has a powershell -File task, it predates that change and needs an update.
Task action pattern
Execute value
Meaning
...\akto-endpoint-shield.exe
Current pattern — unaffected by execution-policy GPOs
cmd.exe
Also policy-safe
powershell.exe
Older pattern — an AllSigned GPO blocks this at boot. Update the agent
RunAs should be SYSTEM (or S-1-5-18) so the tasks start before any user logs in.
Event logs
not digitally signed or cannot be loaded in the PowerShell log confirms an execution-policy block. Task Scheduler event 101/103 with an access-denied result points at an EDR — see Security software conflicts.
Did the tasks start after the last reboot?
The three core tasks should each show StartedAtBoot = True within roughly 10 minutes of boot. False means the task did not auto-start — check the trigger and RunAs above, then the event logs.
Security software conflicts
Antivirus and EDR products are the single most common cause of "tasks look fine, nothing is running". Enumerate what is present on the machine:
Then check whether Akto is already excluded in Microsoft Defender:
A hit in Get-MpThreatDetection is direct proof Defender quarantined the binary. Two further blockers worth ruling out:
To fix any of these, add the exclusions in Allowlist in Security Software and share the binary's SHA256 hash with your security administrator.
Device enrollment and identity
Useful when a device is installed and healthy but does not show up on the dashboard, or shows up twice.
A device restored from another machine's disk image inherits that machine's MachineGuid and will collide on the dashboard; it also makes the encrypted config undecryptable. Both need a reinstall — see Config values and location.
Common issues and fixes
Device not appearing on the dashboard
Not provisioned, or token mismatch between your user profile and SYSTEM
Run the config check in Config values and location for both profile locations; re-run installer if not-provisioned
Tasks show Running/Ready but no processes
Antivirus/EDR terminating the process immediately
Use the foreground-run test in Running processes; see Allowlist in Security Software if CrowdStrike is in use
Everything worked, then stopped after a reboot
Task didn't auto-start, or config mismatch (SYSTEM profile missing token the user profile has)
Run the reboot check in Scheduled tasks; copy config from user profile to SYSTEM profile (see below)
A specific IDE's hooks aren't showing up
That tool wasn't detected, its feature flag is off, or hooks need reinstalling
check-config reports undecryptable
Device was cloned/restored from another machine's disk image
Reinstall — this can't be repaired in place
Binary blocked by Windows / SmartScreen
File flagged as downloaded ("Mark of the Web")
Unblock-File command in Install location and files
Port conflict error
Another Akto instance is stuck
Stop-Process -Name akto-endpoint-shield -Force, then restart the tasks
No tasks listed at all
Installer did not complete
Re-run the installer as Administrator
Tasks registered but never run at boot
GPO-enforced AllSigned execution policy, or an old powershell -File task action
Binary quarantined or deleted after install
Antivirus/EDR detection
Agent can reach nothing over HTTPS
Corporate SSL-inspection proxy re-signing traffic
Check the trusted-root certs in Security software conflicts
Device shows up twice, or under the wrong name
Machine cloned from another device's image
Copying config from your user profile to the SYSTEM profile (fixes the common "works when I run it manually, not after reboot" case):
Full automated diagnostic
For a single comprehensive report covering everything above plus antivirus/EDR conflicts, PowerShell execution-policy restrictions, and event log history:
Get
diagnose_windows.ps1anddiagnose_windows.bat(included in the Akto installer package, or ask Akto support for them).Put both files in the same folder (e.g. your Desktop).
Right-click
diagnose_windows.bat→ Run as administrator.A report file named like
akto-diag-20260722-143000.txtis saved to your Desktop, along with a PASS/WARN/FAIL summary and copy-paste "quick fix" hints printed at the end.
This script only reads information from your machine — it does not change any settings — and does not print your API token.
Reinstall / uninstall (last resort)
If nothing above resolves the issue:
Open Settings → Apps → Installed apps (or Add or remove programs), find Akto Endpoint Shield, and Uninstall.
Restart the machine.
Re-run the installer package provided by your IT team / Akto.
Wait 2–3 minutes, then check the dashboard for the device to reappear.
If the problem persists after reinstall, run the diagnostic script above and send the report to Akto support along with what you observed.
Related documentation
macOS Troubleshooting — the same checks for Macs
Allowlist in Security Software — antivirus and EDR exclusions
Intune Deployment (Windows) — fleet rollout and auto-update
Get support
When contacting Akto support, include the diagnostic report (akto-diag-*.txt), the installed version, and what you observed and when it started. Never include the raw AKTO_API_TOKEN value in a ticket, chat, or screenshot.
There are multiple ways to request support from Akto:
In-app
intercomsupport. Message us with your query on intercom in the Akto dashboard and someone will reply.Join our discord channel for community support.
Contact support@akto.io for email support.
Last updated