Your bot can read the market but can't place orders? Check the static IP
Since brokers began requiring API orders to come from a registered static IP, a common failure looks strange: everything works except placing an order. Here is how we find the cause.
Last reviewed November 2026
The symptom
Login works. Prices, positions and funds load. Then the first order is refused with an IP error. On Upstox the error is UDAPI1154.
The reason it looks healthy: the IP check applies to order calls (place, modify, cancel, GTT), not to reading data. A bot can run all morning and only fail at the moment it needs to trade.
Check 1: is the server using IPv6?
Most people register their server's IPv4 address. But if the broker's API has an IPv6 address and your server has IPv6, Linux will usually prefer IPv6. The broker then sees an address you never registered.
Read the error message closely. Some brokers say which address the request came from. Register that one, or make the server use the family you registered.
Check 2: is the address really yours?
Cloud servers get recycled IP addresses. If another account already registered your server's IPv4, the broker may refuse to add it to yours. A stable IPv6 address, or a separately bought static IP, gets round it.
Check 3: does the broker use a separate host for orders?
Some broker SDKs send order calls to a different hostname from everything else. That host can have its own network route, which may not work from your server even when the main API does. If orders time out while other calls are fine, test the order host on its own.
A safe way to test
Send an order that cannot become a real one, for example with an instrument key that doesn't exist. If the reply is an IP error, the IP check failed. If it is “invalid instrument”, the request passed the IP check and reached validation. Either way nothing is placed.
Two traps after a fix
- Restart the bot. A running process keeps reusing connections it already opened, on the old address. It will keep failing until it is restarted.
- Mind the change lock. Brokers can limit how often the registered IP is changed. On Upstox we hit a 7-day wait, so get the address right the first time.
What we build in
Every bot we hand over runs this order-path test after deployment and after any network change. If the IP check fails, it alerts you before the market opens instead of failing on the first trade.
General information from building and running these systems, not legal or investment advice. Brokers change their APIs and rules; check your broker's current documentation before relying on any detail here.
Want this handled in your own software?
Tell us what you trade and what you'd like the software to do. You'll get questions or a rough scope within one working day.