Skip to main content

Installation issues

command not found: opendev

Cause: CLI not installed globally or PATH not updated. Solutions:
  1. Verify npm install succeeded:
  2. Re-install globally:
  3. Restart your terminal to pick up PATH changes.
  4. Check npm prefix:

Module not found errors during build

Cause: Monorepo dependencies not installed. Solution:

RPC and network issues

ECONNREFUSED / network timeout

Cause: RPC endpoint down or unreachable. Solutions:
  1. Check RPC status:
  2. Try a different RPC:
  3. Configure a persistent RPC:

Signature not found

Cause: Signature doesn’t exist, wrong network, or not finalized yet. Solutions:
  1. Confirm network:
  2. Check on Solscan: Visit solscan.io and paste the signature to verify.
  3. Wait for finalization: Transactions need a few seconds to finalize. Try again in 5 seconds.

Decoder and program issues

Unknown program in output

Cause: Program has no decoder registered. Solutions:
  1. Check coverage:
  2. Request a decoder: Open an issue on GitHub with the program pubkey.
  3. Use generic IDL decoder: If the program has an onchain IDL, opendev will try to decode generically.

IDL not found warning

Cause: Program lacks an IDL on chain. Solutions:
  1. Provide the IDL manually: Some programs don’t publish IDLs. Check the program’s repo or docs.
  2. Skip caching:

Simulation issues

EXECUTING USER CODE banner but no error

Cause: Script ran but didn’t output base64. Solutions:
  1. Verify output: Run your script directly and check the last stdout line:
  2. Output format: Base64 must be on the last non-empty line, ≥100 characters.
  3. Use intermediate file:

esbuild was installed for a different platform (WSL)

Cause: node_modules built on Windows but running in WSL (or vice versa). Solution:
Better: Work in a native Linux filesystem (~/dev/...) when using WSL.

Top-level await is currently not supported with the "cjs" output format

Cause: TypeScript file uses top-level await with .ts extension. Solutions (pick one):
  1. Rename to .mts:
  2. Wrap in main():
  3. Add "type": "module" to package.json (affects whole project).

exec timeout exceeded

Cause: Source file execution (cargo build, npm install, etc.) took too long. Solution:
First Rust build is slow; 300 seconds is safer.

AI insights issues

No AI suggestions appearing

Cause: API key not configured or invalid. Solutions:
  1. Check what’s configured:
  2. Set up AI:
  3. Verify key is active: Check the provider’s dashboard (console.groq.com / console.anthropic.com).

Invalid API key error

Cause: Key format wrong or expired. Solutions:
  1. Verify key format:
    • Groq: should start with gsk_...
    • Anthropic: should start with sk-ant-...
  2. Regenerate key:
    • Log into provider’s dashboard
    • Delete old key
    • Create a new one
    • Update opendev:

Provider quota exceeded

Cause: Hit usage limits (common on Groq free tier). Solutions:
  1. Switch provider:
  2. Wait for quota reset: Groq’s free tier resets daily.
  3. Use rule-based only:

Performance issues

Slow analysis (>5 seconds for single tx)

Cause: Large transaction, slow RPC, or network latency. Solutions:
  1. Check RPC latency:
  2. Use faster RPC:
  3. Enable cache: By default, IDL cache is on. Verify:
  4. Run batch analysis offline: Cache IDLs once, then batch:

High memory usage

Cause: Large CPI trees or many accounts. Solution:

Configuration issues

credentials.json permission error

Cause: File has wrong permissions. Solution:

Wrong RPC being used

Cause: Multiple RPC sources in conflict. Debug order (highest to lowest precedence):
  1. CLI flag:
  2. Environment variable:
  3. Credentials file:
  4. Default: mainnet
Reset to defaults:

General debugging

Enable verbose output

Shows per-stage timing and debug info.

Check CLI version

Check installed packages

See all configuration


Still stuck?

  1. Search GitHub issues: OpenSubmissionn/Open_DevTool
  2. Check architecture docs: See Project Structure
  3. Enable verbose mode: opendev --verbose
  4. Open an issue: Include opendev --version, full command, and output