Yeah, you know, cause Istanbul hard fork contains EIP 1884, it will increases the gas cost of the SLOAD, so transfer is not recommended any more, cause when a contract receive ETH by transfer, and do something else, it will revert due to not enough gas, but when you use transfer to transfer ETH to wallet, it is ok, cause wallet only receive ETH and will not do anything else.
I know, i've read all the relevant articles, So the question is weth.withdraw transfer ETH to x2y2 Exchange contract ant it's successful. That is my confuse why the x2y2 can use weth.withdraw ETH to the contract and i failed, here is the test contract i deployed on BSC testnet,
you can get a failed tx info from link