Is the halting problem undecidable or unrecognizable?
Encode a Turing machine $M$ and an input string $I$ into a single string $(M,I)$. Create a Turing machine $U$ that behaves as follows:


$U$ rejects any input that is not a valid encoding
When given valid input $(M,I)$, $U$ emulates the behavior of $M$ with input $I$
If $M$ eventually halts when given input $I$ then $U$ halts and accepts input $(M,I)$


If $M$ eventually halts when given input $I$ then $U$ will (eventually) accept input $(M,I)$. So $U$ recognizes the language

$L=\{(M,I) : M \text{ eventually halts when given input } I \}$

Note, however, that $U$ does not decide $L$ because it does not explicitly reject $(M,I)$ if $M$ never halts given input $I$ - in this case $U$ will also never halt when given input $(M,I)$.

The Halting Theorem tells us that $L$ is undecideable (over Turing machines) but we have just shown that $L$ is recognizeable.