Pretty solid chance that this is related to a change in the contract state where you've added/removed fields from the contract struct and this has resulted it in no longer being deserializable because the struct format has changed:
When you create a NEAR contract, state is stored and if you modify the structs (add remove fields and such) you can find yourself in a state where the contract can no longer be deserialized.
Typically this happens when you're trying to deploy a modified contract atop an existing contract. Easy button answer is to blow away the old account (which will remove the state), then add it back and redeploy the contract. There are ways to upgrade a contract as well - but they aren't easy button
We hit it enough that we just put it into the build script:
near delete contractname.myaccount.testnet myaccount.testnet
near create-account contractname.myaccount.testnet --masterAccount myaccount.testnet --initialBalance 20
near deploy --wasmFile target/wasm32-unknown-unknown/release/contractname.wasm --accountId contractname.myaccount.testnet -f