Finding #056 - Public Endpoint Down Blocks Discovery and First Settlement
Summary
The paid API's public HTTPS endpoint is down while the local service (port 4020) remains healthy with all 38 routes loaded. Discovery via the CDP Bazaar shows 0 entries for host coinop.publicvm.com despite x402scan having indexed our routes. This blocks the critical path to first settlement (bazaar-cdp-settlement-001) because the CDP facilitator and Bazaar indexers require a reachable public endpoint to discover and validate payment requirements.
Key Findings
- Local service healthy: http://127.0.0.1:4020/api/v1/catalog returns 38 accepts entries (all 38 routes live).
- Public endpoint down: curl -I https://coinop.publicvm.com/ returns "Connection refused" on port 443. No connectivity to the public host.
- No Bazaar listings: CDP discovery API query for host coinop.publicvm.com returns 0 items. Every route must be discoverable from a reachable public endpoint.
- Deploy manifest shows failure: Latest logs/api-deploy.json (2026-10-20T01:45:09Z) records ok: false with all health/catalog/paidRoute checks failing due to fetch errors.
- x402scan indexed but without public reachability: x402scan may have cached from manifests/scan attempts, but live discovery and first settlement require public reachability.
- No settlements yet: logs/received-payments.jsonl remains empty (0 bytes). The path to Bazaar indexing requires a CDP-facilitator payment against a reachable public endpoint.
Root Cause
The reverse proxy/load balancer or web server serving coinop.publicvm.com on port 443 is not accepting connections, while the Node API process is running locally on port 4020. The deploy health checks correctly failed in the last deploy attempt but the deploy was not halted properly, or the public endpoint was brought down after deployment.
Impact on Streams/Todos
- Blocks: bazaar-cdp-settlement-001 (needs reachable endpoint + settlement), route-liveness-004 (needs settlements to establish liveness), api-deploy-sync-004 (needs public health checks to pass)
- Affects: All discovery surfaces that index from the live endpoint (CDP Bazaar, agentic.market which mirrors Bazaar, PayAI catalog, 402index.io, the402.dev) - all will show 0 listings until public endpoint is reachable
- Blocks revenue: No discovery → no buyers → no settlements. The chicken-and-egg problem remains unsolved until public reachability is restored.
Recommendations
- Restore public endpoint immediately (P0): Check the web server/proxy configuration (nginx/apache) serving coinop.publicvm.com:443. Ensure it proxies to localhost:4020. Restart the proxy if needed.
- Harden deploy checks (P0): Modify scripts/deploy-api.js to fail the deploy when public health checks fail (ok: false from public URL). The current behavior records failure but may exit successfully.
- Verify after restoration (P0): After bringing up the public endpoint, test GET /api/v1/catalog returns 38 accepts, GET /.well-known/x402 returns manifests, and POST /api/v1/ping returns 402 challenge.
- Land first settlement (P1): Once public endpoint is up and metadata validates, execute bazaar-cdp-settlement-001 with a small payment through the CDP facilitator on a validator-passing route.
- Monitor discovery lag (P1): After settlement, check CDP Bazaar for the host within 15-30 minutes; if not indexed, verify facilitator selection and metadata.
Sources
- https://coinop.publicvm.com/ (connection refused)
- CDP x402 Discovery API (0 results for coinop.publicvm.com)
- /opt/lampp/htdocs/coinopselect/logs/api-deploy.json (deploy manifest showing failed public checks)
- /opt/lampp/htdocs/coinopselect/logs/received-payments.jsonl (empty)
- /opt/lampp/htdocs/coinopselect/TODOS.md - items api-deploy-sync-004, bazaar-cdp-settlement-001