Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
scripts/deploy.ts:270-280 appends NEXT_PUBLIC_NFT_CONTRACT_ID / NEXT_PUBLIC_POOL_CONTRACT_ID / NEXT_PUBLIC_MANAGER_CONTRACT_ID / NEXT_PUBLIC_GOVERNANCE_CONTRACT_ID to both frontend/.env.local AND backend/.env. But the backend reads LOAN_MANAGER_CONTRACT_ID / LENDING_POOL_CONTRACT_ID / REMITTANCE_NFT_CONTRACT_ID / MULTISIG_GOVERNANCE_CONTRACT_ID / POOL_TOKEN_ADDRESS (backend/src/config/env.ts:14-18, backend/src/app.ts:145-149). After a fresh deploy the backend still has no valid contract IDs and POOL_TOKEN_ADDRESS is never emitted at all, so required-env validation fails or uses stale values.
Acceptance criteria
Files to touch
scripts/deploy.ts
scripts/deploy-config.json
Out of scope
- Renaming the backend env vars themselves
- Frontend env var naming
Why this matters
scripts/deploy.ts:270-280 appends NEXT_PUBLIC_NFT_CONTRACT_ID / NEXT_PUBLIC_POOL_CONTRACT_ID / NEXT_PUBLIC_MANAGER_CONTRACT_ID / NEXT_PUBLIC_GOVERNANCE_CONTRACT_ID to both frontend/.env.local AND backend/.env. But the backend reads LOAN_MANAGER_CONTRACT_ID / LENDING_POOL_CONTRACT_ID / REMITTANCE_NFT_CONTRACT_ID / MULTISIG_GOVERNANCE_CONTRACT_ID / POOL_TOKEN_ADDRESS (backend/src/config/env.ts:14-18, backend/src/app.ts:145-149). After a fresh deploy the backend still has no valid contract IDs and POOL_TOKEN_ADDRESS is never emitted at all, so required-env validation fails or uses stale values.
Acceptance criteria
Files to touch
scripts/deploy.tsscripts/deploy-config.jsonOut of scope