Skip to content

Cannot connect to custom node on port 18089 - connection error 400 #1016

Description

@Paul1804

Monerujo version: 4.1.7 'Exolix' (installed from F-Droid)
Android version: 12 (12 SKQ1.211019.001)
Device: POCO X3 NFC (MIUI Global 14.0.2 Stable)

Issue:
Monerujo cannot connect to my self-hosted Monero node, while Cake Wallet connects successfully with identical settings.

Node configuration:

  • Domain: monero.magnoliya.homes
  • Port: 18089 (SSL enabled)
  • Setup: monerod (restricted-rpc) → SSH tunnel → nginx reverse proxy
  • Certificate: Valid Let's Encrypt SSL certificate

What works:
✅ Cake Wallet connects successfully to monero.magnoliya.homes:18089
✅ curl with User-Agent "Monerujo/1.0" returns 200 OK:

curl -X POST https://monero.magnoliya.homes:18089/json_rpc \
  -H 'User-Agent: Monerujo/1.0' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -k

# Result: HTTP 200 with valid blockchain data

✅ monerod works in restricted-rpc mode:

curl -X POST http://localhost:18089/json_rpc \
  -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' \
  -H 'Content-Type: application/json'

# Result: HTTP 200 with valid data

What doesn't work:
❌ Monerujo returns "ОШИБКА СОЕДИНЕНИЯ 400" (CONNECTION ERROR 400) when testing the node

Server logs show:

146.59.10.99 - - [10/Dec/2025:15:26:40 -0500] "POST /json_rpc HTTP/1.1" 400 255 "-" "Monerujo/1.0"
146.59.10.99 - - [10/Dec/2025:15:26:42 -0500] "POST /json_rpc HTTP/1.1" 400 255 "-" "Monerujo/1.0"

tcpdump capture shows Monerujo sends:

POST /json_rpc HTTP/1.1
Host: monero.magnoliya.homes:18089
User-Agent: Monerujo/1.0
Content-Length: 56
Accept: application/json
Accept-Encoding: gzip
Content-Type: application/json; charset=utf-8

{"jsonrpc":"2.0","id":"0","method":"getlastblockheader"}

Interesting observations:

  • Method getlastblockheader (no underscores) works when called directly via curl
  • Method get_last_block_header (with underscores) also works
  • monerod accepts both method name variants
  • Some requests from Monerujo return 200, but the node test still fails

Questions:

  1. Does Monerujo require any specific RPC methods for node validation?
  2. Why does curl with the same User-Agent work, but the app doesn't?
  3. Is there any documentation on Monerujo's node connection requirements?

Additional information:

  • Port 18089 is specified in Monerujo settings, SSL is enabled
  • No login/password specified (node runs in restricted-rpc mode without authentication)
  • Certificate is valid and works in browser
  • Cake Wallet connects to the same node without issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions