Scanner guide / Unknown results

Unknown results.
What to do next.

An UNKNOWN result means the scanner could not reach a conclusion. Find the message below to understand what prevented the check.

UNKNOWN

Evidence is incomplete. A command may have failed, or a setting may be unsupported. This does not confirm a vulnerability.

SKIP

The check did not run or found no supported target. A missing optional tool can cause this result. It does not establish safety.

Start with the exact message.

  1. Find the check name and its complete UNKNOWN message in your terminal report.
  2. Run diagnostics as the same user, on the same machine, and from the same project directory.
  3. Use the matching section below. Then run the scanner again.

Project location matters for MCP configuration. The user account and HOME determine which personal files the scanner examines.

A tool is missing or a check was skipped

Use your operating system's package manager to install the missing tool named in the result.

  • Python 3: structured API, browser, MCP, OpenClaw, and model-code checks.
  • curl: local HTTP probes.
  • ss or netstat: network listeners. The scanner supports the corresponding Linux or macOS output, and reads /proc/net/tcp on Linux when neither is installed.
  • timeout, gtimeout, or Python 3: a time limit for Docker metadata commands.

The scanner uses standard system paths, plus /opt/homebrew/bin and /opt/homebrew/sbin on macOS. Shell aliases and tools found only in a virtual environment can be unavailable.

If you do not use the product named in a skipped check, installation is not necessary.

Missing firewall tools produce UNKNOWN when an AI service listens beyond localhost, and SKIP otherwise. Missing required system tools stop the scan. Adding an optional tool does not correct an existing command failure.

Some results need manual review.

The scanner cannot read every configuration or infer every active setting. A manual check does not update the scanner report.

01 / System access

Firewall inspection failed

“ruleset inspection failed” · “status inspection failed” · “No supported firewall inspection tool”

Firewall status commands can require administrator access. When a command fails and an AI service listens beyond localhost, the scanner reports unknown. When nothing is exposed, it reports a skip that does not affect the score.

Run only the status command for your existing firewall. These commands read status or rules; they do not change them.

First run the command without sudo to reproduce the scanner's access. For a permission error, an administrator can repeat that status command with sudo.

Linux status commands

nftables

nft list ruleset

iptables

iptables -L

UFW

ufw status

firewalld

firewall-cmd --state

If access is denied, ask the system administrator to examine the result. “Not running” describes an inactive service, not a successful protection check.

macOS status commands

Application Firewall

/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

Packet filter (pf)

pfctl -s info

If a tool is missing, use the inspection tool for the firewall you already manage. Installing a second firewall is not necessary.

Other firewall products need manual review. Installing a dependency does not add support for them.

What resolves it: the scanner must receive a successful, recognized response. Administrator-only results can remain unknown in a normal-user scan.

Keep manual firewall evidence separately. Running the entire scanner with sudo can change its user, home directory, and configuration context.

02 / Containers

Docker is unreachable or incomplete

“Docker daemon inspection incomplete” · “container inventory UNKNOWN” · container user, mount, or network status unknown

The Docker daemon can be stopped, inaccessible, or too slow. A container can also disappear during inspection.

  1. Examine the active Docker context.
  2. Make sure it identifies the daemon you intend to examine.
  3. Request daemon metadata as your normal user.
docker context show
docker info --format '{{json .SecurityOptions}}'
docker ps --format '{{.Names}} {{.Image}}'

DOCKER_HOST or DOCKER_CONTEXT can change the selected daemon. Make sure these variables match the intended environment.

Press Ctrl + C if a diagnostic command stops responding. The scanner limits each Docker metadata command to five seconds.

If you normally use Docker Desktop, make sure it is running. Otherwise, examine your managed Docker service and its access error.

At least one of timeout, gtimeout, or python3 must be available to the scanner.

Do not make the Docker socket writable by everyone. Membership in the docker group grants root-level access; it is not a routine scanner fix. Docker access documentation.

What resolves it: the selected daemon and container metadata must be readable within the time limit. If valid metadata remains unsupported, manual review is necessary.

03 / Local services

Network, API, or browser evidence is incomplete

“listener inspection failed” · “authentication inconclusive” · “plain HTTP probe was inconclusive” · browser inspection failed

Listener or process inspection failed

Run the command for your operating system to see its error.

Linux

ss -tlnp

macOS

netstat -an -ptcp

General process access, either system

ps -eo pid,user,comm

This tests basic process access. The scanner also reads arguments. Restricted argument access can still cause unknown results.

Inspect process arguments locally if necessary. They can contain credentials; do not paste them into a public report.

Missing tools cause skipped checks. Permission errors or failed inspection commands can cause unknown results.

If you ran the scanner inside a container or restricted terminal, run it on the host you intend to examine.

An API returns a redirect, error, or unexpected response

The scanner probes supported model-list routes. It does not follow redirects, supply credentials, or use configured proxies.

Examine the named service's status and logs. Make sure the service normally serves the reported port and route.

Each request has a five-second limit. A stopped service, startup delay, TLS endpoint, proxy, or different API can prevent identification.

Keep authentication and TLS enabled. Do not expose a service to make the probe succeed.

An unsupported endpoint needs manual review. A successful authenticated application session does not establish unauthenticated API access.

A browser debugging check is incomplete

The check needs Python 3, process information, listener information, and supported browser metadata.

Examine the browser's existing launch configuration. A dynamic port, inaccessible process, or unrecognized response can prevent correlation.

Do not enable remote debugging for this check. Pipe-only debugging does not require a network port.

What resolves it: successful command output and supported service metadata. Protected or unsupported endpoints can require manual review.

04 / Local files

A file or directory cannot be examined

“permission inspection failed” · “search incomplete” · “Secret scan failed” · history, owner, or telemetry hosts-file inspection failed

These results can affect model directories, .env files, shell history, logs, GPU devices, and /etc/hosts.

  1. Locate the exact path named in the result.
  2. Make sure the path still exists and belongs to the expected account.
  3. Examine its access permissions and the permissions of its parent directories.

Replace the example path before you run this command:

ls -ld "/path/from/the/finding"

If ownership is incorrect, ask the owner or administrator to correct it. Keep secret files private; do not use chmod 777.

Some files are intentionally inaccessible. Do not expose credentials or history to complete a scan.

What resolves it: the same user must be able to read the required metadata or content. Extended permissions, access control lists, and search limits can still require manual review.

05 / Agent configuration

MCP or OpenClaw settings are unsupported

“configuration inaccessible” · “malformed” · “unsupported” · “unresolved variables” · “inspection incomplete”

Python 3 enables these parsers. It does not add support for every configuration format.

MCP: files, grants, and access permissions

Run from the project you want to examine. The scanner reads selected Claude Desktop, Claude Code, and Cursor JSON files.

  • Unreadable or malformed: examine the named file locally. Correct an actual JSON error using the client's documented format.
  • Variables or relative grants: examine the resolved path and the server's working directory in the client.
  • ACL or symlink: examine the target and its effective permissions. The scanner may still need manual review.
  • Unsupported structure or limit: the check does not support every server entry, file size, or project count.

Do not start an MCP server just to inspect it. Keep valid client configuration intact when the scanner cannot interpret it.

OpenClaw: strict JSON and runtime policy

The check reads ~/.openclaw/openclaw.json, or the literal path in OPENCLAW_CONFIG_PATH.

The scanner calls openclaw --version before it examines policy settings. It supports CLI versions 2026.9.3 through 2026.9.6. A missing or other version gives UNKNOWN.

Run openclaw --version to check the installed CLI version. The scanner uses a fixed command search path. The CLI version does not prove the running gateway version.

It supports strict JSON and selected policy fields. JSON5, includes, variables, and unsupported agent, provider, sender, or channel policies remain incomplete.

Verify that the path identifies the active configuration. Manually examine the documented runtime settings and policy. Do not start an agent to complete this check.

Automatic or Tailscale-based binding can require runtime evidence. The scanner does not resolve every bind mode or verify token enforcement.

Do not convert a valid configuration only to remove an unknown result. Do not remove authentication, sandbox settings, or policy overrides.

Both parsers limit configuration files to 1 MiB. Some valid configurations exceed the scanner's coverage.

What resolves it: readable, supported configuration and a supported OpenClaw CLI version. Unsupported syntax, versions, unresolved settings, or parser limits require manual review or a scanner improvement.

06 / Active settings

Model or environment settings cannot be inferred

“could not establish active remote-code configuration” · “OLLAMA_HOST requires address resolution” · “OLLAMA_NO_CLOUD has an unrecognized value”

Remote model code

The scanner recognizes selected vLLM and TGI launch commands. Wrappers, hidden arguments, and settings loaded from code can prevent a conclusion.

Examine the active service configuration and model-loading code. Establish the effective remote-code setting from those sources.

Do not enable remote code or load an untrusted model to complete this check.

Ollama and telemetry environment

A hostname or unsupported URL form in OLLAMA_HOST can prevent the scanner from classifying the bind address.

Examine the running service's effective bind address. If its service file is unreadable, ask its administrator to verify the service user.

For OLLAMA_NO_CLOUD, use a documented boolean value appropriate for the intended setting. Ollama cloud configuration.

The scanner recognizes 1 and true as enabled. Recognized false values give no cloud opt-out evidence; the check can report skipped.

Shell variables do not establish a running service's environment. Cloud opt-out evidence does not prove that every outbound connection is blocked.

What resolves it: supported launch arguments or recognized environment values. Runtime behavior outside these observations needs manual review.

Verify the result

Run the scan again.

Use the same account and project directory after you correct the cause.

From a repository checkout

bash ./iscooked --no-color

For the downloaded script

bash ./iscooked.com --no-color

Use the Bash 4 or later executable available on your machine. On macOS, the system Bash can be too old.

A completed check can produce a passed result, warning, or critical finding. Read the new message; a lower unknown count does not establish safety.

Still unknown? Record the check name, exact message, operating system, and scanner version. Get the version without a scan:

bash ./iscooked --version

For a downloaded copy, replace ./iscooked with ./iscooked.com. Remove credentials, personal paths, and service details before you share a report.

Report an unsupported check