All the development time went into the option that requires the user to agree to more surveillance. Did they even attempt to do QA on the “disagree” option?
Backend Dev here. 500 is an HTTP sever response, so requires a working connection to happen. If the app isn't connected to the network, in almost all cases, you would experience a different error, such as connection timed out, but not a 500.
I was thinking of a case where there was a network connection problem and instead of precisely reporting that, the frontend told the user it was a 500 instead.