>I dont understand that why the request has to go the gateway of each vlan for dhcp request. The query for DHCP should first circulate in the local lan and only if the server is down it should go the gateway that is the switch.
That's not how it works. The IP helper address will forward ALL DHCP requests (unless the forwarded traffic is changed) to the assigned address. What should be happening is that the local server's reply should be received first and that's the address it should be getting. I have seen similar situations where the local server was under a load and wasn't responding as quickly as it should have which results in the off-network server offering the address.
That said, the address being received should be for the network that the device is on. Do you have the scope correctly defined on the DHCP server?