Describe the bug
After setting up the emulator using the instructions outlined here, creating a database, container and item and then wiring up a small application to connect to the container using the provided connection string, any query operation I undertake against the container fails with the following stack trace:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Azure.Documents.ConsistencyReader.GetMaxReplicaSetSize(DocumentServiceRequest entity)
at Microsoft.Azure.Documents.ConsistencyReader.ReadAsync(DocumentServiceRequest entity, TimeoutHelper timeout, Boolean isInRetry, Boolean forceRefresh, CancellationToken cancellationToken)
at Microsoft.Azure.Documents.ReplicatedResourceClient.InvokeAsync(DocumentServiceRequest request, TimeoutHelper timeout, Boolean isInRetry, Boolean forceRefresh, CancellationToken cancellationToken)
at Microsoft.Azure.Documents.ReplicatedResourceClient.<>c__DisplayClass32_0.<<InvokeAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Azure.Documents.RequestRetryUtility.ProcessRequestAsync[TRequest,IRetriableResponse](Func`1 executeAsync, Func`1 prepareRequest, IRequestRetryPolicy`2 policy, CancellationToken cancellationToken, Func`1 inBackoffAlternateCallbackMethod, Nullable`1 minBackoffForInBackoffCallback)
at Microsoft.Azure.Documents.ShouldRetryResult.ThrowIfDoneTrying(ExceptionDispatchInfo capturedException)
at Microsoft.Azure.Documents.RequestRetryUtility.ProcessRequestAsync[TRequest,IRetriableResponse](Func`1 executeAsync, Func`1 prepareRequest, IRequestRetryPolicy`2 policy, CancellationToken cancellationToken, Func`1 inBackoffAlternateCallbackMethod, Nullable`1 minBackoffForInBackoffCallback)
at Microsoft.Azure.Documents.RequestRetryUtility.ProcessRequestAsync[TRequest,IRetriableResponse](Func`1 executeAsync, Func`1 prepareRequest, IRequestRetryPolicy`2 policy, CancellationToken cancellationToken, Func`1 inBackoffAlternateCallbackMethod, Nullable`1 minBackoffForInBackoffCallback)
at Microsoft.Azure.Documents.StoreClient.ProcessMessageAsync(DocumentServiceRequest request, CancellationToken cancellationToken, IRetryPolicy retryPolicy)
at Microsoft.Azure.Cosmos.Handlers.TransportHandler.ProcessMessageAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.TransportHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.RouterHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.RequestHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.AbstractRetryHandler.ExecuteHttpRequestAsync(Func`1 callbackMethod, Func`3 callShouldRetry, Func`3 callShouldRetryException, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.AbstractRetryHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.RequestHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.TelemetryHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.RequestHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.RequestHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler.BaseSendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler.SendAsync(RequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler.SendAsync(String resourceUriString, ResourceType resourceType, OperationType operationType, RequestOptions requestOptions, ContainerInternal cosmosContainerCore, FeedRange feedRange, Stream streamPayload, Action`1 requestEnricher, ITrace trace, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.ContainerCore.ProcessItemStreamAsync(Nullable`1 partitionKey, String itemId, Stream streamPayload, OperationType operationType, ItemRequestOptions requestOptions, ITrace trace, Nullable`1 targetResponseSerializationFormat, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.ContainerCore.ReadItemAsync[T](String id, PartitionKey partitionKey, ITrace trace, ItemRequestOptions requestOptions, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.ClientContextCore.RunWithDiagnosticsHelperAsync[TResult](String containerName, String databaseName, OperationType operationType, ITrace trace, Func`2 task, Tuple`2 openTelemetry, RequestOptions requestOptions, Nullable`1 resourceType)
CosmosDiagnostics: {"Summary":{},"name":"ReadItemAsync","start datetime":"2024-11-22T15:29:49.642Z","duration in milliseconds":95.8295,"data":{"Client Configuration":{"Client Created Time Utc":"2024-11-22T15:29:46.9071110Z","MachineId":"hashedMachineName:391219a1-fe91-5a1e-0f3e-545912c7ecf7","NumberOfClientsCreated":3,"NumberOfActiveClients":3,"ConnectionMode":"Direct","User Agent":"cosmos-netstandard-sdk/3.46.0|3|Arm64|Darwin 23.6.0 Darwin Kernel Ve|.NET 9.0.0|N|","ConnectionConfig":{"gw":"(cps:50, urto:6, p:False, httpf: False)","rntbd":"(cto: 5, icto: -1, mrpc: 30, mcpe: 65535, erd: True, pr: ReuseUnicastPort)","other":"(ed:False, be:False)"},"ConsistencyConfig":"(consistency: Session, prgns:[], apprgn: )","ProcessorCount":12}},"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.RequestInvokerHandler","duration in milliseconds":95.1586,"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.DiagnosticsHandler","duration in milliseconds":11.6605,"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.TelemetryHandler","duration in milliseconds":11.4957,"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.RetryHandler","duration in milliseconds":11.2884,"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.RouterHandler","duration in milliseconds":5.8037,"children":[{"name":"Microsoft.Azure.Cosmos.Handlers.TransportHandler","duration in milliseconds":5.7426,"children":[{"name":"Microsoft.Azure.Documents.ServerStoreModel Transport Request","duration in milliseconds":5.5642,"data":{"Client Side Request Stats":{"Id":"AggregatedClientSideRequestStatistics","ContactedReplicas":[],"RegionsContacted":[],"FailedReplicas":[],"AddressResolutionStatistics":[],"StoreResponseStatistics":[]}}}]}]}]}]}]}]}]}
I've tried:
Container.ReadItemAsync
Container.GetItemQueryIterator
Both fail on execution with the same stack trace (with the appropriate method name in the stack trace diagnostics). With that assembly being closed-source, there's not much more I can figure out as to where that NRE is taking place internally.
To Reproduce
Steps to reproduce the behavior:
Docker compose that replicates the setup instructions
Use the explorer to create a database, container and item.
Create a .NET 9 application and add the Cosmos connection string, database and container to the development settings.
Execute a method that tries to read the item you created from the container.
Expected behavior
A clear and concise description of what you expected to happen.
I expect no NullReferenceException to be thrown by the Microsoft.Azure.Documents.ConsistencyReader.GetMaxReplicaSetSize(DocumentServiceRequest entity) method.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Describe the bug After setting up the emulator using the instructions outlined here, creating a database, container and item and then wiring up a small application to connect to the container using the provided connection string, any query operation I undertake against the container fails with the following stack trace:
I've tried:
Container.ReadItemAsync
Container.GetItemQueryIterator
Both fail on execution with the same stack trace (with the appropriate method name in the stack trace diagnostics). With that assembly being closed-source, there's not much more I can figure out as to where that NRE is taking place internally.
To Reproduce Steps to reproduce the behavior:
Expected behavior A clear and concise description of what you expected to happen.
I expect no
NullReferenceException
to be thrown by theMicrosoft.Azure.Documents.ConsistencyReader.GetMaxReplicaSetSize(DocumentServiceRequest entity)
method.Screenshots If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Docker Images Used:
**Arguments && Environment variables to start Docker: Compose file provided above
Docker Environment