USDT locked in a contract that has a withdraw token function

i've had some usdt locked in a contract, and i'm not able to withdraw them even though i've added a safe withdraw function here's the tx function:

and here's the withdraw function inside the contract

 function withdrawTokenFunds(address token,address wallet) external {
        require(hasRole(ADMIN_ROLE, msg.sender) || owner() == msg.sender, "You don't have permission");
        require(wallet != address(0), "Wallet should not be 0");
        IERC20 ercToken = IERC20(token);
        ercToken.transfer(wallet,ercToken.balanceOf(address(this)));
    }

is there anything i'm missing, it's working with other tokens but not usdt's

USDT is a non-standard ERC20. Its transfer function has no return value. This means that when Solidity calls the function it will revert when it attempts to decode the boolean return value that is expected for ERC20s. We always recommend using our SafeERC20 library to avoid this issue.

Unfortunately the withdraw mechanism in the contract will not work for USDT. You should consider Tether's official token recovery process. One of the possible conditions for recovery is precisely "Contracts that did not properly implement the SafeERC20 library for withdrawals".