I run ganache, truffle and metmask. If I run the code below I get an error on the this.web3.eth.sendSignedTransaction() function:

EDIT: changed my code to the following.. Error remained the same though.

        const encoded_tx = this.contract.methods.createCountry("NL", 100, 100, 100000000, this.account).encodeABI();
        const nonce = await this.web3.eth.getBlockTransactionCount(this.account);
        const rawTx = {
            nonce: this.utils.toHex(nonce), 
            gasLimit: this.utils.toHex(3000000),
            gasPrice: this.utils.toHex(this.utils.toWei('20', 'gwei')),
            data: encoded_tx,
            from: this.account,
            to: this.contractAddress
        };

        let tx = new Tx(rawTx);
        tx.sign(this.pvtKey);

        let serializedTx = tx.serialize();
        this.web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'))
        .on('receipt', console.log);

The error is the following: 

    index.js:2178 Error: Returned error: {"id":6,"jsonrpc":"2.0","error":{"code":-32603}}
    at Object.ErrorResponse (errors.js:29)

I have absolutely no idea where to look anymore and feel like I've tried everything, might it have anything to do with the fact that I'm connected to metamask?  When I try to send this transaction through metamask with eth.method.send() the transaction does not give an error and behaves as expected.