Skip to content

Troubleshooting and Security

Liu.Yandong.Hanks edited this page Aug 21, 2026 · 3 revisions

Troubleshooting and Security Boundaries

Diagnose common integration failures and define safe host boundaries for AuroraScript execution.

Applies to 4.0.0.

Home · Host Integration · Tooling

On this page

Module Not Found or Relative Path Errors

Check that @module is the first effective statement, that the entry path is relative to the Resolver root, and that the import / include target is visible to the Resolver. A custom resolver must resolve relative paths from the importing source, not merely from the current working directory.

Build Succeeds but Execution Fails

First record the AuroraRuntimeException, script stack, entry module name, and method name. Confirm the export name is correct, the domain has not been disposed, host globals were injected when the domain was created, and call arguments can convert to ScriptDatum.

No Editor Completion or Navigation

Confirm the workspace root is correct, the Language Server has started, and no extra log text is written to stdout. If a name comes from the host, add a visible @global(); declaration file; it is for static analysis only and does not create a runtime global.

MCP Cannot Start or Be Called

Run aurora-mcp in a terminal first to confirm the command can be found. MCP uses stdin/stdout for JSON-RPC; do not insert startup logs into that channel. For a locally published executable, use an absolute path and set a working directory explicitly.

Running Untrusted Scripts

Warning

AuroraScript is an embedded execution engine and must not be treated as a security sandbox. Do not register CLR types that can access the file system, network, processes, reflection, environment variables, or sensitive business objects to untrusted scripts; do not put sensitive state directly in $state or enumerable host globals.

Recommended Isolation

  • Create an isolated ScriptDomain for each tenant, request, or rule session.
  • Expose only narrow, explicitly reviewed CLR wrapper types and functions.
  • Restrict Source Resolver roots to allowed directories or memory sources.
  • Enforce host-side limits for script size, execution time, and concurrency.
  • Validate scripts with aurora_check_script, aurora_check_file, and project tests before deployment.

Next steps

Clone this wiki locally