Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the type errors pattern
Totals that concatenate, sorts that put 10 before 9, comparisons that refuse to run.
What went wrong: In Go, indexing a string with s[0] yields a uint8 raw byte rather than a Unicode code point. For multi-byte characters like Chinese or emoji, this yields invalid truncated UTF-8 bytes.
The fix: Use utf8.DecodeRuneInString(s) or convert the string to []rune(s)[0] to correctly extract the full multi-byte character.
Remember: Go strings are sequences of arbitrary bytes, not characters. Use []rune or the unicode/utf8 package for character-aware logic.
The pattern behind it: type errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/8922572e-fbcd-4952-a193-165c66f9a017" title="Debugging challenge: UTF-8 multi-byte rune indexing error" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/8922572e-fbcd-4952-a193-165c66f9a017">TryBugHunt</a></p>