Summary
On explorer.aptoslabs.com (mainnet), using the account Modules → Run tab, clicking Simulate fails with HTTP 401 from the Aptos fullnode simulate endpoint. Write / submit via a connected wallet (e.g. OneKey) can still succeed because it uses the wallet's own RPC, not Explorer's API client.
Covers FEAT-MODULES-001 (Run sub-tab).
Steps to reproduce
- Open https://explorer.aptoslabs.com (mainnet).
- Connect a wallet.
- Navigate to an account with Move modules, e.g.
/account/<address>/modules/run/<module>/<function>.
- Fill entry function arguments and click Simulate.
Expected
Simulation returns success/failure from Move execution (gas, abort, etc.).
Actual
Simulation Failed
Request to [Fullnode]: POST https://api.mainnet.aptoslabs.com/v1/transactions/simulate failed with status: (code:401) and response body: "Unauthorized: Rejected due to a per-IP blocking rule for this application"
Technical notes
- Simulate path:
RunContractForm.handleSimulate → sdkV2Client.transaction.simulate.simple → POST /v1/transactions/simulate with Explorer getApiKey() / Settings API key override (app/pages/Account/Tabs/ModulesTab/Contract.tsx, app/global-config/GlobalConfig.tsx, app/lib/constants.ts).
- Write path:
useSubmitTransaction → wallet signAndSubmitTransaction (does not use Explorer's Aptos API key).
- Likely causes: invalid Settings → API Keys mainnet override, missing/invalid
Authorization on the simulate request, or API Gateway per-IP policy for the application client ID—not a Move simulation logic error.
Environment
- Network: mainnet
- Site: production explorer.aptoslabs.com
- Wallet submit: OK; Simulate only: fails with 401
Summary
On explorer.aptoslabs.com (mainnet), using the account Modules → Run tab, clicking Simulate fails with HTTP 401 from the Aptos fullnode simulate endpoint. Write / submit via a connected wallet (e.g. OneKey) can still succeed because it uses the wallet's own RPC, not Explorer's API client.
Covers FEAT-MODULES-001 (Run sub-tab).
Steps to reproduce
/account/<address>/modules/run/<module>/<function>.Expected
Simulation returns success/failure from Move execution (gas, abort, etc.).
Actual
Technical notes
RunContractForm.handleSimulate→sdkV2Client.transaction.simulate.simple→POST /v1/transactions/simulatewith ExplorergetApiKey()/ Settings API key override (app/pages/Account/Tabs/ModulesTab/Contract.tsx,app/global-config/GlobalConfig.tsx,app/lib/constants.ts).useSubmitTransaction→ walletsignAndSubmitTransaction(does not use Explorer's Aptos API key).Authorizationon the simulate request, or API Gateway per-IP policy for the application client ID—not a Move simulation logic error.Environment