(At the current difficulty) most blocks are unsolvable, but your question makes me ponder on how you think of a block
hashing will always yield a result?
Hashing always yields a result. Most of the time it is not a result that the protocol is looking for because of the difficulty. In essence you have some data X, you hash it to a number Y, and if Y is less than a globally agreed number difficulty Z then your block is solved; you may announce the block, others verify it and your solution becomes part of the chain. The race is on!
If the difficulty was set to the easiest possible factor, the solution would be found first time every time. The difficulty changes, always striving to make sure a block arrangement is solved (the hash is less than the difficulty), on average, every ten minutes.
we hit an unsolvable block
"We" don't hit blocks - there isn't some global consensus on "this is the next block everyone will work on, go try find a hash for it that is less than X" - each miner is free to build a block however it likes and hash it, in the same way that you and a friend are free to pick different lottery numbers and each try to win.
Getting back to my very first point, the miner builds a block and hashes it. It will either will solve or it won't, and luck of the draw if it just so happens that it packed those transactions however it did, and chose a nonce of whatever it did, and hashed it and got a result that is less than the difficulty then it's a solution. Quick, get it announced and claim the reward.
If one tiny bit was off about the way it randomly chose to assemble the block, it wouldn't solve; there is no solution for that block, packed that way, at the current difficulty.
All the miner will do is keep changing the block, and it does this every time it doesn't find a solve. You can make a small tweak, for example to the nonce, and re-hash. You can run through every nonce - each is as likely to win as any other. You can exhaust all the nonces, change the timestamp, and exhaust all the nonces again. You could mine so fast you can run out of nonces before timestamps so you'll have to change something else about the block in order to make good use of your hashing ability but ultimately a block built like X will hash the same way so if you build it, hash it and it doesn't work out you have to do something to change it so you get a different hash.. i.e. you have make another/different block.
As such, for any given globally agreed difficulty, most blocks are unsolvable and have to be changed - a block of transactions A and timestamp B with nonce C, is a different block to one with transactions A, timestamp B and nonce D - this may differ to how you think of a block.