Hah oh the flashbacks. I've literally done this. Except — ironically — I was keeping the tickets in the airline's app.
The airlines app, idiotically, needed the network to fetch the tickets. The airport's network was misconfigured, as many are: it had one of those idiotic "proxy all traffic to the captive portal"¹ things, so the airline app was confused about why its AJAXs weren't returning the right stuff. But in the moment (i.e., TSA) I wasn't grokking that the error from the app was a lie because the network was malicious.
Perhaps Emacs could have saved me…?
(What I do now is open the ticket beforehand and then screenshot it so that it's local. And we also bring paper fallbacks. Paper cannot have it's packets captured.)
¹There's a proper way to do captive portals. This ain't it.