This guide consolidates common local setup issues, symptoms, and resolution steps for contributors working on the Invoice Liquidity Network (ILN) frontend.
- Underlying Cause: Running
npm installornpm ciinstead ofpnpm installin your local environment. - Resolution:
This repository pins and enforces
pnpmVersion 9. Usingnpmchanges lockfiles, which will fail CI validation steps. To reset:# Delete npm-generated lockfile (if created) rm -f package-lock.json # Prune all local caches and generated folders pnpm run clean # Re-run installation using pnpm pnpm install
- Underlying Cause: Husky hooks are either not installed or lack execute permissions.
- Resolution:
Verify the hooks are registered:
If permissions are wrong, make them executable using chmod:
pnpm exec huskychmod +x .husky/pre-commit chmod +x .husky/pre-push
- Underlying Cause: A cold run of
tscchecks the entire codebase. - Resolution:
We have optimized hooks to use
npx tsc --incremental. Ensure you have not disabled caching or deletedtsconfig.tsbuildinfounless troubleshooting.
- Underlying Cause:
.env.localis missing or keys are not matching.env.local.example. - Resolution:
Copy the checked-in example to create a local config:
Ensure to restart the Next.js development server after changing environment variables.
cp .env.local.example .env.local
- Underlying Cause: Freighter extension is not installed, locked, or running on the wrong network.
- Resolution:
- Install Freighter from the official web extension store.
- Open the Freighter extension and switch the network to Testnet (Settings > Network > Testnet).
- Unlock your Freighter wallet.
- Reload the local application page.
- Underlying Cause: Freighter is configured to Mainnet (or another custom RPC), but the application specifies Testnet.
- Resolution: Check your Freighter extension settings and make sure the active network is SDF Testnet.
- Underlying Cause: Testnet accounts must be funded by SDF Friendbot before submitting or interactively simulating transactions.
- Resolution:
Fund your Freighter public key using Friendbot:
Swap
curl "https://friendbot.stellar.org/?addr=YOUR_PUBLIC_KEY"YOUR_PUBLIC_KEYwith your actual Stellar address.
- Underlying Cause:
CRON_SECRETis missing in.env.localor request does not supply the proper authorization header. - Resolution:
- Add
CRON_SECRET=your_secret_tokento.env.local. - Invoke the endpoint using a Bearer token:
curl -H "Authorization: Bearer your_secret_token" http://localhost:3000/api/reminders
- Add
- Underlying Cause: Missing Supabase or Resend environment values during testing local integrations.
- Resolution:
Verify the following exist in
.env.local:NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYRESEND_API_KEY
- Underlying Cause: Another process is binding port 3000.
- Resolution:
Run the Next.js development server on a different port:
pnpm dev -- -p 3001
- Underlying Cause: UI changes modify output layout dynamically, causing existing snapshots to be out-of-date.
- Resolution:
If you have verified the UI changes are intentional, update the snapshots:
pnpm test -- --update-snapshots