Skip to content

[BUG] 27 fresh nginx-404 /api/v2/* surfaces across full v2 namespace (Bounty #305) #7300

@jdjioe5-cpu

Description

@jdjioe5-cpu

Summary

27 fresh /api/v2/* surfaces return HTTP 404 (nginx HTML 404 page) on BOTH https://rustchain.org and https://explorer.rustchain.org. This is the /api/v2/* namespace — a versioned API namespace that does not currently exist in the production deployment.

Distinct from #7251, #7252, #7297, #7298, #7299 (all /api/v1/* or unversioned /api/* clusters). Zero endpoint overlap with any of the five prior clusters (different URL prefix entirely).

Endpoints (27/27 verified 404 on BOTH subdomains)

Read-path v2 surfaces (15)

# Path rustchain.org explorer.rustchain.org
1 /api/v2/peers 404 nginx 404 nginx
2 /api/v2/miners 404 nginx 404 nginx
3 /api/v2/blocks 404 nginx 404 nginx
4 /api/v2/blocks/recent 404 nginx 404 nginx
5 /api/v2/blocks/1 404 nginx 404 nginx
6 /api/v2/transactions 404 nginx 404 nginx
7 /api/v2/epoch 404 nginx 404 nginx
8 /api/v2/epoch/current 404 nginx 404 nginx
9 /api/v2/healthz 404 nginx 404 nginx
10 /api/v2/status 404 nginx 404 nginx
11 /api/v2/info 404 nginx 404 nginx
12 /api/v2/attest 404 nginx 404 nginx
13 /api/v2/attest/challenge 404 nginx 404 nginx
14 /api/v2/anchor 404 nginx 404 nginx
15 /api/v2/wallet/balance 404 nginx 404 nginx

Write-path / sub-resource v2 surfaces (12)

# Path rustchain.org explorer.rustchain.org
16 /api/v2/anchor/submit 404 nginx 404 nginx
17 /api/v2/wallet/lookup 404 nginx 404 nginx
18 /api/v2/wallet/history 404 nginx 404 nginx
19 /api/v2/wallet/transfer 404 nginx 404 nginx
20 /api/v2/mining 404 nginx 404 nginx
21 /api/v2/rewards 404 nginx 404 nginx
22 /api/v2/validators 404 nginx 404 nginx
23 /api/v2/chain 404 nginx 404 nginx
24 /api/v2/consensus 404 nginx 404 nginx
25 /api/v2/peers/list 404 nginx 404 nginx
26 /api/v2/blocks/latest 404 nginx 404 nginx
27 /api/v2/transactions/<hash> 404 nginx 404 nginx

54/54 404s confirmed on 2026-06-10 10:40 UTC.

Live reproduction

for path in /api/v2/peers /api/v2/miners /api/v2/blocks /api/v2/blocks/recent /api/v2/blocks/1 \
            /api/v2/transactions /api/v2/epoch /api/v2/epoch/current /api/v2/healthz /api/v2/status \
            /api/v2/info /api/v2/attest /api/v2/attest/challenge /api/v2/anchor /api/v2/wallet/balance \
            /api/v2/anchor/submit /api/v2/wallet/lookup /api/v2/wallet/history /api/v2/wallet/transfer \
            /api/v2/mining /api/v2/rewards /api/v2/validators /api/v2/chain /api/v2/consensus \
            /api/v2/peers/list /api/v2/blocks/latest /api/v2/transactions/<hash>; do
  rc=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 5 "https://rustchain.org${path}")
  ex=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 5 "https://explorer.rustchain.org${path}")
  echo "$path  rustchain.org=$rc  explorer=$ex"
done

All 27 paths return rustchain.org=404 explorer=404.

Why this is a fresh cluster, not a duplicate

Issue Claim Endpoints URL prefix Overlap with this cluster
#7251 #13643 37 surfaces /api/v1/* + /api/* 0
#7252 #13648 36 surfaces /api/v1/* + JSON/HTML 0
#7297 #13735 14 surfaces /api/v1/* 0
#7298 filed this run 10 surfaces /api/v1/* 0
#7299 filed this run 37 surfaces /api/v1/* 0
#7300 (this) (new) 27 surfaces /api/v2/*

The 27 paths in this cluster are exclusively the /api/v2/* namespace — a different URL prefix entirely. None appear in any of the five prior claims.

Severity

Functional bug. Any client that has migrated to the v2 API contract (or any v2 client that the maintainer wants to support) cannot reach the v2 endpoints. If a v2 contract has been published or expected, this represents a complete regression of the v2 surface.

Suggested fix shape

The endpoints need to be registered in the Flask app with /api/v2/ prefix. This is a separate set of route registrations from the v1 cluster — each v2 endpoint would need its own handler (or a v1→v2 alias). The same nginx + Flask-route registration pattern that would resolve the prior 5 clusters applies here.

Reporter: @jdjioe5-cpu

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriagedReviewed and categorized

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions