A read against a key that is not there returns NULL. Nothing fails.
The common read: The extraction operators validate the request against the document, so asking for a key the document does not have raises an error I would see.
Name the error Postgres raises when you ask a document for a key it has never held, and then read the next sentence. There is none. The extraction operators are documented to return NULL rather than failing when the input "does not have the right structure to match the request; for example if no such key or array element exists".
Read a key the document never had and Postgres
The two extraction operators differ in the type they return, not in how they treat a missing key. -> returns jsonb, so a string leaf keeps its JSON quotes. ->> returns text, which is why almost every extraction in production code is a ->>. Through ->>, several different documents print the same blank cell, and the rest of this lesson separates them. The warranty desk's report reads payload ->> 'extended_cover' for every row. Eleven months later, a payout audit traces wrong payouts to that report.

