When we use class members (property and field), we don't need to assign initial values to them, it will be done automatically. But local variables are different from class members, you must manually assign values to them.
I think this may have misled you.
When an exception occurs in the first try block, the code may not reach the 12th line of the displayed code, which will cause the server_token_string to be in an uninitialized state, so it cannot be used in the second try block.
Take a look at the explanation in this link to understand why it is designed this way:
Are C# uninitialized variables dangerous?
If the response is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.