This document outlines common pitfalls, current limitations, and troubleshooting steps for the PayD staging environment.
The staging environment interacts with the Stellar Testnet. Occasionally, the Stellar RPC nodes or Friendbot (the faucet) may be slow or unresponsive.
- Symptom: CI/CD pipeline fails at the "Wait for Stellar Quickstart health" check.
- Fix: Re-run the job. If the issue persists, check the Stellar Dashboard for network status.
The frontend uses several packages with strict peer dependency requirements.
- Pitfall: Running
npm installwithout flags may fail. - Fix: Always use
npm install --legacy-peer-depsornpm ci --legacy-peer-depsin the frontend directory. This is handled automatically in the GitHub Actions pipeline.
There is a distinction between PUBLIC_STELLAR_NETWORK (used by the frontend/Vite) and STELLAR_NETWORK (used by the backend).
- Pitfall: Configuring one but not the other, leading to "Network mismatch" errors or connecting to the wrong network.
- Fix: Ensure both are set to
testnetfor staging andmainnetfor production.
The backend codebase has both an index.ts (entry point) and an app.ts (application logic).
- Pitfall: Adding routes to
app.tsbut finding they return 404 becauseindex.tswasn't updated to use the fullapp.tsinstance. - Fix: Ensure
index.tsimports and uses theappexport fromapp.ts. (A critical fix for this was applied recently).
On Testnet, accounts must manually establish trustlines for the ORGUSD (or other custom) assets before they can receive payments.
- Status: Manual process for now. Future updates will automate trustline creation during onboarding.
The backend implementation includes transaction throttling to prevent spam.
- Limit: Currently set to 10 requests per minute per IP for sensitive endpoints.
- Impact: Rapid testing may trigger 429 Too Many Requests.
- 404 Not Found on API: Check
backend/src/index.tsto ensure it's using the correct router. - Contract Address Issues: Verify
environments.tomlhas the correct contract IDs for thetestnetnetwork. - CORS Errors: Ensure the staging frontend domain is added to the backend's allowed origins.
For more details on specific implementations, see: