“Debugging is the art of figuring out which of your assumptions are wrong.”
(Attribution unknown)
But most people tend not to include that in the "your assumptions" list, and frequently it is the source of the bug.
One way is to reason from a false premise, or as I would put it, something we think is true is not true.
The other way is to mix logical levels (“this sentence is false”).
I don’t think I ever encountered a bug from mixing logical levels, but the false premise was a common culprit.
security with cryptography is mostly about logical level problems, where each key or operation forms a layer or box. treating these as discrete states or things is also an abstraction over a seqential folding and mixing process.
debugging a service over a network has the whole stack as logical layers.
most product management is solving technical problems at a higher level of abstraction.
a sequence diagram can be a multi-layered abstraction rotated 90 degrees, etc.
In other words, it looks like a form of solipsism.
But what world it would be if you could flip a coin on any choice and still survive! If the world didn't follow any self-consistent logic, like a Roger Zelazny novel, that would be fantastic. Not sure that qualifies as solipsism, but still. Would society even be possible? Or even life?
Here, as long as you follow cultural norms, every choice has pretty good outcomes.
The culprit was an embedded TrueType font that had what (I think) was a strange but valid glyph name with a double forward slash instead of the typical single (IIRC whatever generated the PDF just named the glyphs after characters so /a, /b and then naturally // for slash). Either way it worked fine in most viewers and printers.
The larger scale production printer on the other hand, like many, converted to postscript in the processor as one of its steps. A // is for an immediately evaluated name in postscript so when it came through unchanged, parsing this crashed the printer.
So we have a font, in a PDF, which got turned into Postscript, by software, on a certain machine which presumably advertised printing PDF but does it by converting to PS behind the scenes.
A lot of layers there and different people working on their own piece of the puzzle should have been 'encapsulated' from the others but it leaked.