-
Notifications
You must be signed in to change notification settings - Fork 296
Closed
Labels
Description
What happened?
Repro steps
- In DAB config, set up an entity for stored procedure with a role (sample config below)
- Run DAB and execute the query/mutation
- Observe that the query/mutation returns internal error - Cannot access a disposed object.\r\nObject name: 'JsonDocument'.
Sample config
{
"data-source": {
"database-type": "mssql",
"connection-string": "<database url>"
},
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
"graphql": {
"enabled": true,
"path": "/graphql",
"allow-introspection": true
},
"host": {
"cors": {
"origins": ["*"],
"allow-credentials": false
},
"mode": "development",
"authentication": {
"provider": "Simulator"
}
}
},
"entities": {
"UseDateTime": {
"source": {
"object": "dbo.UseDateTime",
"type": "stored-procedure"
},
"permissions": [
{
"role": "Default",
"actions": [
{
"action": "execute"
}
]
}
]
},
"UseDateTimeNoRole": {
"source": {
"object": "dbo.UseDateTime",
"type": "stored-procedure"
},
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "execute"
}
]
}
]
}
}
}
Sample response
{
"errors": [
{
"message": "Cannot access a disposed object.\r\nObject name: 'JsonDocument'.",
"locations": [
{
"line": 26,
"column": 5
}
],
"path": [
"executeUseDateTime",
3,
"ID"
],
"extensions": {
"message": "Cannot access a disposed object.\r\nObject name: 'JsonDocument'.",
"stackTrace": " at System.Text.Json.ThrowHelper.ThrowObjectDisposedException_JsonDocument()\r\n at System.Text.Json.JsonDocument.CheckNotDisposed()\r\n at System.Text.Json.JsonDocument.GetJsonTokenType(Int32 index)\r\n at System.Text.Json.JsonElement.get_TokenType()\r\n at System.Text.Json.JsonElement.get_ValueKind()\r\n at Azure.DataApiBuilder.Service.Services.ExecutionHelper.TryGetPropertyFromParent(IResolverContext context, JsonElement& propertyValue) in Q:\\Repos\\data-api-builder\\src\\Core\\Services\\ExecutionHelper.cs:line 331\r\n at Azure.DataApiBuilder.Service.Services.ExecutionHelper.ExecuteLeafField(IResolverContext context) in Q:\\Repos\\data-api-builder\\src\\Core\\Services\\ExecutionHelper.cs:line 182\r\n at ResolverTypeInterceptor.<>c.<.ctor>b__8_2(IResolverContext ctx) in Q:\\Repos\\data-api-builder\\src\\Core\\Services\\ResolverTypeInterceptor.cs:line 40\r\n at HotChocolate.Resolvers.FieldResolverDelegates.<>c__DisplayClass0_0.<.ctor>b__0(IResolverContext context)\r\n at HotChocolate.Types.Helpers.FieldMiddlewareCompiler.<>c__DisplayClass9_0.<<CreateResolverMiddleware>b__0>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Authorization.AuthorizeMiddleware.InvokeAsync(IMiddlewareContext context)\r\n at HotChocolate.Authorization.AuthorizeDirectiveType.<>c__DisplayClass3_0.<<CreateMiddleware>b__1>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)"
}
},
...
"data": null
}
Version
What database are you using?
Azure SQL
What hosting model are you using?
Local (including CLI)
Which API approach are you accessing DAB through?
GraphQL
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct