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.