Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Odata v4 error "Does not support untyped value in non-open type"

As I updated the model, it throws "Does not support untyped value in non-open type". It was working before the update. Unable to pin down the source of the problem. any ideas.

like image 557
vijay daniel Avatar asked Aug 29 '17 21:08

vijay daniel


Video Answer


1 Answers

I've experienced this error before and it's caused by passing a property of a JSON object that doesn't exist on the data model.

For example, given the data model:

public class User
{
    public long UserId { get; set; }

    public string UserName { get; set; }
}

And an OData controller has the method:

public IHttpActionResult Post(User user)

When the following data is sent using the POST method:

{
    "UserId": "0",
    "UserName": "test",
    "UserPassword": "test"
}

Then the server will return error 400 with the following response:

{
    "error": {
        "code": "",
        "message": "The request is invalid.",
        "innererror": {
            "message": "user : Does not support untyped value in non-open type.\r\n",
            "type": "",
            "stacktrace": ""
        }
    }
}

So if the UserPassword property, in this example, is removed from the data sent using the POST method, then the error doesn't occur.

like image 56
Rami A. Avatar answered Oct 23 '22 12:10

Rami A.