PARACHUTE docs
v1.0.0
Live demo Get help
● Ship · Fixes

Troubleshooting
messages and their fixes.

What you may see, what it means and what to do. Tip: paste the exact message into the search box. The dApp's /settings page lists build-setting problems in plain words.

01Install and build

npm ci fails on better-sqlite3

No prebuilt binary matched your platform or Node version, and compiling it failed. Use Node.js 20.19 or newer, install a C/C++ build toolchain for your system, then run npm ci again.

npm ci says the lock file is out of sync

You changed package.json. Run npm install once to update package-lock.json, or restore the original files.

npm run gate fails at check:licenses

A package you added has a licence the check refuses (GPL, AGPL, SSPL, BUSL). Remove it or choose another package.

npm run gate fails at check:contrast

A colour you changed in src/index.css is not readable enough on the backgrounds. Adjust it until the check passes.

Tests are slow or time out

Run them with fewer workers: npx vitest run --maxWorkers=2.

Deep links such as /token/0x… return 404 on the host

The single-page rewrite to index.html is missing (how).

02Build settings (shown on /settings)

"VITE_FEE_BPS=… exceeds the 100 bps cap. Fee disabled."

The fee is capped at 100 bps. Use 100 or less and build again.

"VITE_FEE_BPS must be a whole number, got "…". Fee disabled."

Write the fee as a whole number of basis points, for example 25.

"VITE_FEE_BPS is set but VITE_FEE_RECIPIENT is empty. Fee disabled."

A fee needs a wallet. Set VITE_FEE_RECIPIENT.

"VITE_FEE_RECIPIENT is not a valid non-zero address. Fee disabled."

Paste a full 0x… address with 40 hex characters. The zero address is refused.

"VITE_RPC_URL entries must be http(s) URLs; ignored "…"."

Each comma-separated entry must start with https:// (or http://). Remove spaces inside URLs.

"VITE_UNIVERSAL_ROUTER is not a valid address. Using the verified default."

Fix the address, or leave the variable empty to use Universal Router 2.1.2.

"VITE_PUBLIC_CONFIG_URL must be https:// or a same-origin path (or "off")."

Use /api/public-config, a full https:// URL, or off.

03Operator config in the dApp

"No operator server answers here: the app runs on safe defaults (no interface fee, stocks off)."

The dApp asked /api/public-config and got no config, for example on a static host. Either serve the dApp from the operator server, or build with VITE_PUBLIC_CONFIG_URL=off to use the VITE_FEE_* values.

"The operator server answered HTTP …. Running on safe defaults."

Something other than the operator server answers the config URL, or it is failing. Check curl https://<your-domain>/api/public-config and the server log.

"The operator config is not in the expected format. Running on safe defaults."

The config URL points at the wrong thing (for example the dApp's own index.html). Point it at the operator server.

"Could not reach the operator server (…)"

Network error or the server is down. Check the process and the proxy.

I changed a setting but the site still shows the old one

Open tabs re-read the config every 5 minutes; reload the page to apply it at once. Check /api/public-config to see what browsers receive.

The fee is set but a trade shows no fee

Expected on pons bonding-curve trades: no interface fee is possible there. On v4 routes, check Console → Status ("Fee, referral and moderation settings are valid") and reload the tab.

"Read-only mode: the operator has paused trading on this deployment."

Console → Trading safety → Read-only mode is on, or Console → Access → Maintenance mode is on. Turn it off.

04Operator server

"ADMIN_SECRET_KEY is not set. Generate one with `openssl rand -hex 32`, keep it out of git, and start again."

Set the variable in the environment of the process (how). The server does not read .env.local.

EADDRINUSE

Another program uses the port. Stop it, or start with another PORT.

"PARACHUTE operator server. The dApp is not built yet (npm run build). The console is at /admin."

Run npm run build, or point PARACHUTE_DIST_DIR at your build.

I lost the setup code

Restart the server while no owner exists: each start prints a new code in the log.

Status: the RPC check fails

Set a working RPC in Console → Integrations, or PARACHUTE_RPC_URL. The public RPC rate-limits bursts.

Status: "not measured yet: node scripts/admin/volume-split.mjs 7"

An info check. Run that command to measure where pons volume trades; it reads the chain and writes server/volume-split.json. Re-run it every two weeks to keep the check green.

Revenue: "Fee revenue is still being read from the chain. Try again in a minute."

The first read of your fee wallet's history is running. On the public RPC this can take a while; set your own server RPC to speed it up.

Secrets in the console cannot be read after a move

The server was started with a different ADMIN_SECRET_KEY. Use the original key; there is no way to recover encrypted values without it.

05Data and speed

Deep Trust or Portfolio takes a long time

Expected on the public RPC: a Deep Trust report takes 10 to 40 seconds, and the first Portfolio visit of a wallet scans about 200 requests. Set your own VITE_RPC_URL (RPC).

CORS errors in the browser console

A throttled reply from the public RPC carries a malformed CORS header, so the browser reports a CORS error instead of HTTP 429. The app backs off; your own RPC removes the limit.

"not enough data" instead of a Trust Score

Fewer than 60% of the applicable signals could be read, or the token is too young (Trust Score).

A pool is missing from routing, with a warning

Pools with hooks that are not on the verified list are excluded on purpose.

A Parachute rule did not alert

Rules run only while a PARACHUTE tab is open; there is no server that watches them. Check that notifications are allowed (Parachute rules).

06Wallets

"No browser wallet detected."

Install an EVM wallet extension, or open the site in a wallet app's built-in browser.

"WalletConnect is not enabled on this deployment."

WalletConnect needs its package and a project ID (how).

The wallet is on the wrong network

PARACHUTE works on Robinhood Chain mainnet, chain ID 4663. Switch the wallet to that network.