←back to thread

462 points jakevoytko | 1 comments | | HN request time: 0.001s | source
Show context
epolanski ◴[] No.43493909[source]
The worst bug I've ever encountered was a JS file that kept not running, with very cryptic and hard to understand trace that made no sense. TypeScript and others parsed it fine without any issues.

After 3 days of literally trying everything, I don't know why, I thought of rewriting the file character by character by hand and it worked. What was happening?

Eventually opened the two files side by side in a hex editor and here it is: several exotic unicode characters for "empty" space.

replies(2): >>43495967 #>>43496679 #
skeaker ◴[] No.43495967[source]
I've seen this happen as the result of errant copy-pasting.
replies(1): >>43496380 #
1. shoo ◴[] No.43496380[source]
I've seen this happen in enterprise systems integration work, where some data interchange spec is authored as a Word document, and it has tables defining valid string values for certain fields, and Word helpfully replaces plain ascii dashes in the string constants with pretty long dashes, and team A builds their side hand-typing these constants as plain ascii, and team B builds their side by copy-pasting the exact unicode strings out of the Word doc.

Not a hard thing to debug once the issue is noticed, and completely preventable (write specs in plain text).