user14169: I am using blockchain.info.
I have made a bitcoin transaction of 22.00883562 BTC to the address 1A9eUAc78tGx65X3CuC9WfSKXXgxjU8ccC.
You can see the transaction at https://blockchain.info/tx/97c1af82111cdcf17f878eb6df20c17c59c1b1fc04e8cdce36b8ac6c6d1c969a
I have paid a 0.001 fee but it has been almost 30 hours and it still shows "Unconfirmed".
What could be the error? Also, more importantly, how do I cancel the unconfirmed transaction and get back my coins?

user15412: You cannot cancel an unconfirmed transaction. When a transaction has been transmitted to the chain, it's unstoppable. Luckily everything went well for you I see, and it was probably an error on blockchain.info, as pointed out in the comments. 

user9128: Cancelling unconfirmed transactions is easy.   Just submit a higher fee double-spend transaction.   For example: if you sent a 0-fee transaction, it could take a day before it gets mined onto a block.   You can send another transaction with the same inputs that just sends the money back to yourself.   On this transaction you put a higher fee.   This becomes more likely to be mined and will get included in the blockchain - invalidating the slower-to-confirm original.
Some tools to help out: https://github.com/petertodd/replace-by-fee-tools

14169: <p>I am using blockchain.info.</p>

<p>I have made a bitcoin transaction of 22.00883562 BTC to the address <a href="https://blockchain.info/address/1A9eUAc78tGx65X3CuC9WfSKXXgxjU8ccC">1A9eUAc78tGx65X3CuC9WfSKXXgxjU8ccC</a>.</p>

<p>You can see the transaction at <a href="https://blockchain.info/tx/97c1af82111cdcf17f878eb6df20c17c59c1b1fc04e8cdce36b8ac6c6d1c969a">https://blockchain.info/tx/97c1af82111cdcf17f878eb6df20c17c59c1b1fc04e8cdce36b8ac6c6d1c969a</a></p>

<p>I have paid a 0.001 fee but it has been almost 30 hours and it still shows "Unconfirmed".</p>

<p>What could be the error? Also, more importantly, how do I cancel the unconfirmed transaction and get back my coins?</p>
 15412: <p>You cannot cancel an unconfirmed transaction. When a transaction has been transmitted to the chain, it's unstoppable. Luckily everything went well for you I see, and it was probably an error on blockchain.info, as pointed out in the comments. </p>
 9128: <p>Cancelling unconfirmed transactions is easy.   Just submit a higher fee double-spend transaction.   For example: if you sent a 0-fee transaction, it could take a day before it gets mined onto a block.   You can send another transaction with the same inputs that just sends the money back to yourself.   On this transaction you put a higher fee.   This becomes more likely to be mined and will get included in the blockchain - invalidating the slower-to-confirm original.</p>
<p>Some tools to help out: <a href="https://github.com/petertodd/replace-by-fee-tools" rel="nofollow noreferrer">https://github.com/petertodd/replace-by-fee-tools</a></p>
