Skip to content

ArgumentNullException when version header missing #44

@richardp-au

Description

@richardp-au

I updated to 3.0.0-beta3 to incorporate the new exception handling changes but I'm not getting an ArgumentNullException when the version header isn't supplied. My understanding was that I should expect an ApiVersionNotDeterminedException instead but it looks to me like it's not getting to the line that checks for that.

My API uses the Accept header for versioning so I have a class derived from AcceptHeaderRequestVersionDetector. This used to work fine in beta1 but upon upgrading it has stopped working. Everything appears to work fine when the version is supplied in the Accept header.

Here's the exception details and stack trace:

System.ArgumentNullException was unhandled by user code
  HResult=-2147467261
  Message=Value cannot be null.
Parameter name: version
  Source=SDammann.WebApi.Versioning
  ParamName=version
  StackTrace:
       at SDammann.WebApi.Versioning.ControllerIdentification..ctor(String name, ApiVersion version) in z:\Developing\Visual Studio\Projects\SDammann.WebApi.Versioning\src\SDammann.WebApi.Versioning\ControllerIdentification.cs:line 42
       at SDammann.WebApi.Versioning.Request.DefaultRequestControllerIdentificationDetector.GetIdentification(HttpRequestMessage requestMessage) in z:\Developing\Visual Studio\Projects\SDammann.WebApi.Versioning\src\SDammann.WebApi.Versioning\Request\DefaultRequestControllerIdentificationDetector.cs:line 43
       at SDammann.WebApi.Versioning.VersionedApiControllerSelector.GetControllerIdentificationFromRequest(HttpRequestMessage request) in z:\Developing\Visual Studio\Projects\SDammann.WebApi.Versioning\src\SDammann.WebApi.Versioning\VersionedApiControllerSelector.cs:line 105
       at SDammann.WebApi.Versioning.VersionedApiControllerSelector.OnSelectController(HttpRequestMessage request) in z:\Developing\Visual Studio\Projects\SDammann.WebApi.Versioning\src\SDammann.WebApi.Versioning\VersionedApiControllerSelector.cs:line 70
       at SDammann.WebApi.Versioning.VersionedApiControllerSelector.SelectController(HttpRequestMessage request) in z:\Developing\Visual Studio\Projects\SDammann.WebApi.Versioning\src\SDammann.WebApi.Versioning\VersionedApiControllerSelector.cs:line 61
       at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
  InnerException: 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions