Returned values aren't valid, did it run Out of Gas?

I trying to connect my dApp with MetaMask and WalletConnect using Moralis and i have some problem with WalletConnect. There are no problems with the connection itself but, i cant do anything with smart Contract.
In some reason i get this error:
Returned values aren’t valid, did it run Out of Gas? You might also see this error if you are not using the correct ABI for the contract you are retrieving data from, requesting data from a block number that does not exist, or querying a node which is not fully synced. The method doesn’t need Gas, because it’s call method and i double checked that ABI is correct for the contract.

const connectionHandler =  async str  => {
        if(str === "MetaMask"){
            dispatch(toggleConnection("MetaMask"))
            await authenticate()
        }
        else{
            dispatch(toggleConnection("WalletConnect"))
                await authenticate({ provider: "walletconnect" })   
        }
    }


export const checkBalance = async (address, Moralis, connection) => {
    // debugger
    if(address){
        try{
            const Contract = await giveMeContract(Moralis, connection)
            const weiBalance = await Contract.methods.balanceOf(address).call()
            const balance = parseInt(Web3.utils.fromWei(weiBalance, 'ether'));
            store.dispatch(updateBalance(balance))
            return balance
        }
        catch(error){
            console.log(error)
        }
    }
}

you can also get this error if you are not connected to the network where that smart contract is deployed.

Yeah wright but, in some reason i did it once. Then i refreshed the page and the problem is back.

maybe some state is lost on refresh then

Yeah but when i want to approve i reseave notification in my phone from Smart Contract but with other methods i dont.

export const approve = async (account, Moralis, provider) => {
    // debugger
    try{
        const Contract = await giveMeContract(Moralis, provider)
        store.dispatch(updateAproveButtonsLoader(true))
        await Contract.methods.approve(stakeAddress, '10000000000000000000000000000000000000000000000000').send({from: account})
        .once('receipt', function(receipt){
            store.dispatch(updateAproveButtonsLoader(false))
            store.dispatch(updateApproved(true))
            checkAllowence(account)
        })
        .on('error', () => {
            store.dispatch(updateAproveButtonsLoader(false))
        })
    }
    catch(error){
        // debugger
        store.dispatch(updateAproveButtonsLoader(false))
        console.log(error)
    }
}

balanceOf in particular will only make a call on chain without sending a transaction, so you should not receive a notification for that particular call.

Yes, I know but, that fact i got the approve method does not mean that all the others should work?