System.UriFormatException
Published Nov 05 2019 10:59 AM 10.3K Views
Microsoft

System.UriFormatException with Invalid URI: The format of the URI could not be determined message is one of the errors that is almost always related to code.

 

Here is the stack trace and description from a DebugDiag dump:


System.UriFormatException
Invalid URI: The format of the URI could not be determined.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at Varonis.EventHandlerAuditor.WebApplicationConfiguration.IsWebApplicationMatches(String webApplicationUrl)

clipboard_image_0.png

Root cause

If the input value is not what the application expected, this exception is generated. In other words, the application was expecting a valid URI but the value it received wasn’t in URI format.

 

In my case, the value was “SERVER01“ which is not a valid URI so that the application threw an error at the last line below.

 

public static bool IsWebApplicationMatches(string webApplicationUrl)
{
  if (string.IsNullOrEmpty(webApplicationUrl))
    return true;

  Uri uri = new Uri(webApplicationUrl);
}

 

Solution

This issue may occur because of user behavior (the value submitted into the function). No matter what the root cause is, the application should catch the exception. Implement try-catch block in that function to handle this exception.

 

It also helps finding the assembly that is throwing the error (look at stack trace for this information). If it’s a third-party component, you will need to contact them. They might already have a fix or updated assembly.

 

You can also try to figure out how that value is passed to that function. Review the inputs and use-cases. Ask your user about the steps to reproduce it.  It could be because of a user who enters invalid information in a form. However, no matter what the input is, the application should catch the exception.

Version history
Last update:
‎Nov 05 2019 10:59 AM
Updated by: