Skip to content

Troubleshooting

Common ParrotJS issues and how to fix them — runner crashes, module resolution, timeouts, and more.

I don’t see inline values on the free tier

Expected. The free tier shows live comments (// ?), inline console output, and inline assertions. Full automatic inline values — every variable, function return, and loop iteration — are a PRO feature.

To see values on the free tier, add a live comment:

const items = [1, 2, 3].map((x) => x * 2);
const total = items.reduce((sum, n) => sum + n, 0); // ? total  → 12

Nothing appears at all

If you’re not even seeing live comments or console output:

  • Make sure ParrotJS is running — check the status bar for the parrot toggle, or run ParrotJS: Start.
  • Confirm you’re in a .js, .ts, .jsx, or .tsx file.
  • Check parrotjs.autoStart — if false, ParrotJS won’t start on open.
  • Open the ParrotJS output panel (ParrotJS: Show Output) and look for lifecycle or error entries.

“Cannot find module ‘x’”

ParrotJS resolves imports at the runtime level. If a bare specifier can’t be found:

  • Make sure the package is installed in node_modules.
  • Node builtins (fs, path, crypto, …) always resolve.
  • Set parrotjs.includeNodeModules: true if your project imports from node_modules (the react profile enables this).
  • Relative imports (./utils, ../lib/helpers) resolve against the importing file.

The error is shown inline at the require/import line, and in the output panel.

“Execution timeout” / code hangs

Long-running or infinite-looping code is terminated after parrotjs.maxExecutionTime (default 5000ms). If your code legitimately needs longer:

{
  "parrotjs.maxExecutionTime": 10000
}

The react profile already uses a 10s timeout. Note the extension host also enforces a hard cap, so extremely long runs may still be cut off.

Runner crash / “runner unresponsive”

Each file executes in a forked Node.js child process, monitored with periodic health checks. If the runner stops responding, ParrotJS restarts it automatically and reports a crash diagnostic in the status bar and output panel.

If you see repeated crashes:

  • Check the output panel for the crash reason (e.g. a spawn error).
  • Confirm Node.js is installed and on your PATH (ParrotJS spawns node to run your code).
  • Restart VS Code if the extension host is in a bad state.

Inline values look wrong in TypeScript files

ParrotJS uses a 4-stage source map chain (original → transpiled → bundled → instrumented) so values, errors, and coverage map back to your original .ts source. If a value lands on the wrong line:

  • Make sure the file isn’t using a custom transpiler that conflicts.
  • Report it with the ParrotJS: Show Instrumented Code output (open the read-only view of the transformed code) so the mapping issue can be diagnosed.

Large objects freeze or truncate

Inline values are truncated to keep the editor fast:

  • parrotjs.maxInlineLength (default 80) — max characters inline.
  • parrotjs.maxObjectDepth (default 3) — deeper nesting shows as {…}.

For deep inspection use the Value Explorer (PRO) — it loads children lazily, so a 10,000-entry object won’t hang.

In auto-log mode, parrotjs.logLimit (default 100) caps captures per line to prevent log spam.

Time Travel keys don’t respond

Time-travel keybindings (F10, F11, Alt+←, …) only work while a recording is active. Make sure you’ve toggled recording on (ParrotJS: Toggle Time Travel / Shift+F5) and that the session is running. Time Travel is also a PRO feature.

Coverage dots don’t appear

Coverage is a PRO feature. On PRO, check parrotjs.showCoverage (default true).

License not activating

  • Double-check the key — it’s a xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx format.
  • A license is bound to the machine it was activated on.
  • One trial per machine — a second trial will be rejected.
  • Licenses revalidate daily; if validation fails (offline, revoked), the extension drops to free and shows an expired status via ParrotJS: License Status.

See License & Trial for the full flow.

Still stuck?

Open an issue on the ParrotDev issues repository with:

  • Your VS Code and ParrotJS versions
  • The file type (js/ts/jsx/tsx)
  • Your profile and relevant settings
  • The output panel contents (especially any crash diagnostics)