Azure / azure-cosmos-dotnet-v2

Contains samples and utilities relating to the Azure Cosmos DB .NET SDK
MIT License
577 stars 836 forks source link

Microsoft.Azure.DocumentDB.Core: Entity with the specified id does not exist in the system #973

Open Sahrun opened 1 year ago

Sahrun commented 1 year ago

Describe the bug I got the issue "Entity with the specified id does not exist in the system" when I recreated the Containner/Collection in CosmosDB with the same name, here I used Microsoft.Azure.DocumentDB.Core v.2.20, Azure Fuction v.4, and .NET net6.0

To Reproduce

Step 1

Code Snippets : Startup.cs using Microsoft.Azure.Documents.Client; using Microsoft.Azure.Functions.Extensions.DependencyInjection; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using System; [assembly: FunctionsStartup(typeof(API.ProbSolve.Startup))] namespace API.ProbSolve { public partial class Startup : IWebJobsStartup { IConfiguration Configuration { get; set; } public void Configure(IWebJobsBuilder builder) { var executionContextOptions = builder.Services.BuildServiceProvider() .GetService<IOptions>().Value; var currentDirectory = executionContextOptions.AppDirectory; //// Get the original configuration provider from the Azure Function var configuration = builder.Services.BuildServiceProvider().GetService(); // Create a new IConfigurationRoot and add our configuration along with Azure's original configuration Configuration = new ConfigurationBuilder() .SetBasePath(currentDirectory) .AddConfiguration(configuration) // Add the original function configuration .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .Build(); //// Replace the Azure Function configuration with our new one builder.Services.AddSingleton(Configuration); // Register DocumentClient builder.Services.AddSingleton(x => new DocumentClient(new Uri(Environment.GetEnvironmentVariable("EventGridEndPoint")), Environment.GetEnvironmentVariable("EventGridKey"))); } } }

Fuction1.cs using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Microsoft.Azure.Documents.Client; using System.Linq; using System.Collections.Generic;

namespace ProbSolve { public class Function1 { private DocumentClient _client;

    public Function1(DocumentClient client)
    {
        _client = client;
    }
    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {

        List<dynamic> listObj = new List<dynamic>();

        try
        {

            if (_client == null)
            {
                string endpointUri = Environment.GetEnvironmentVariable("EventGridEndPoint");
                string primaryKey = Environment.GetEnvironmentVariable("EventGridKey");

                _client = new DocumentClient(new Uri(endpointUri), primaryKey);
            }

            string collectionId = "TroubleSolving";
            string sqlQueryText = "SELECT * FROM c";
            string databaseId = Environment.GetEnvironmentVariable("DatabaseId");

            IQueryable<dynamic> query = _client.CreateDocumentQuery(
                UriFactory.CreateDocumentCollectionUri(databaseId, collectionId),
                sqlQueryText);

            foreach (dynamic result in query)
            {
                listObj.Add(result);
            }
        }
        catch (Exception ex)
        {
            //return new BadRequestObjectResult(ex.Message);
            throw ex;
        }

        return new OkObjectResult(listObj);
    }
}

}

Expected behavior Container/collection can still be called when recreated with the same name

Actual behavior The container/collection is not recognized when the container is recreated, the container still refers to the old container

Environment summary

SDK Version: Microsoft.Azure.DocumentDB.Core v.2.20.0 Microsoft.Azure.Functions.Extensions v.1.1.0 Microsoft.NET.Sdk.Functions v.4.2.0 .NET Framwork v.6.0

Additional context Microsoft.Azure.DocumentDB.Core: Entity with the specified id does not exist in the system. More info: https://aka.ms/cosmosdb-tsg-not-found, {"Summary":{"GatewayCalls":{"(404, 0)":1}},"name":"SqlQueryPlanOnCompute","id":"2aa25b82-30fd-490f-8633-e89abc5229e6","start time":"03:10:09:234","duration in milliseconds":34.7934,"data":{"Client Side Request Stats":{"Id":"AggregatedClientSideRequestStatistics","ContactedReplicas":[],"RegionsContacted":[],"FailedReplicas":[],"AddressResolutionStatistics":[],"StoreResponseStatistics":[],"HttpResponseStats":[{"StartTimeUTC":"2023-11-06T03:10:09.2350695Z","DurationInMs":32.6803,"RequestUri":"https://cosmos-xxxxxxxxxx-southeastasia.sql.cosmos.azure.com/dbs/xxxfss==/colls/xxxxxxFc=","ResourceType":"Collection","HttpMethod":"GET","ActivityId":"a484f1c9-caeb-4ba2-b0db-9935ce310b4d","StatusCode":"NotFound","ReasonPhrase":"Not Found"}]}},"children":[{"name":"Get Collection Cache","id":"b2babe00-9b29-424c-abbc-6fb34a1a3ef8","start time":"03:10:09:234","duration in milliseconds":0.0017},{"name":"Read Collection","id":"208e4a97-2ec7-45f4-8cab-b192a3970f66","start time":"03:10:09:235","duration in milliseconds":33.6323,"data":{"Exception Message":"Message: {\"Errors\":[\"Resource Not Found. Learn more: https:\/\/aka.ms\/cosmosdb-tsg-not-found\"]}\r\nActivityId: a484f1c9-caeb-4ba2-b0db-9935ce310b4d, Request URI: /apps/540517c5-4054-412a-be16-72f3c4660990/services/d6b3ddae-1699-4df4-8552-05c7149c6c29/partitions/e6f134b0-8af5-4b53-bba8-53ad2c27780c/replicas/133203467052463784s, RequestStats: \r\nRequestStartTime: 2023-11-06T03:10:09.2354273Z, RequestEndTime: 2023-11-06T03:10:09.2634136Z, Number of regions attempted:1\r\n{\"systemHistory\":[{\"dateUtc\":\"2023-11-06T03:09:18.8672709Z\",\"cpu\":0.695,\"memory\":484218580.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.1273,\"availableThreads\":32764,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":557},{\"dateUtc\":\"2023-11-06T03:09:28.8773534Z\",\"cpu\":0.402,\"memory\":484125868.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.051,\"availableThreads\":32764,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":554},{\"dateUtc\":\"2023-11-06T03:09:38.8875522Z\",\"cpu\":0.447,\"memory\":484122640.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.1728,\"availableThreads\":32764,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":554},{\"dateUtc\":\"2023-11-06T03:09:48.8976905Z\",\"cpu\":0.564,\"memory\":484122552.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.1109,\"availableThreads\":32764,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":561},{\"dateUtc\":\"2023-11-06T03:09:58.9078613Z\",\"cpu\":0.457,\"memory\":484126492.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.1115,\"availableThreads\":32764,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":561},{\"dateUtc\":\"2023-11-06T03:10:08.9180018Z\",\"cpu\":0.387,\"memory\":484126020.000,\"threadInfo\":{\"isThreadStarving\":\"False\",\"threadWaitIntervalInMs\":0.1128,\"availableThreads\":32763,\"minThreads\":52,\"maxThreads\":32767},\"numberOfOpenTcpConnection\":564}]}\r\nRequestStart: 2023-11-06T03:10:09.2356102Z; ResponseTime: 2023-11-06T03:10:09.2634037Z; StoreResult: StorePhysicalAddress: rntbd://10.0.1.11:11300/apps/540517c5-4054-412a-be16-72f3c4660990/services/d6b3ddae-1699-4df4-8552-05c7149c6c29/partitions/e6f134b0-8af5-4b53-bba8-53ad2c27780c/replicas/133203467052463784s, LSN: 3845, GlobalCommittedLsn: 3845, PartitionKeyRangeId: , IsValid: True, StatusCode: 404, SubStatusCode: 0, RequestCharge: 1, ItemLSN: -1, SessionToken: -1#3845, UsingLocalLSN: False, TransportException: null, BELatencyMs: 26.94, ActivityId: a484f1c9-caeb-4ba2-b0db-9935ce310b4d, RetryAfterInMs: , ReplicaHealthStatuses: [(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11000 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM)], TransportRequestTimeline: {\"requestTimeline\":[{\"event\": \"Created\", \"startTimeUtc\": \"2023-11-06T03:10:09.2354919Z\", \"durationInMs\": 0.0202},{\"event\": \"ChannelAcquisitionStarted\", \"startTimeUtc\": \"2023-11-06T03:10:09.2355121Z\", \"durationInMs\": 0.0029},{\"event\": \"Pipelined\", \"startTimeUtc\": \"2023-11-06T03:10:09.2355150Z\", \"durationInMs\": 0.0834},{\"event\": \"Transit Time\", \"startTimeUtc\": \"2023-11-06T03:10:09.2355984Z\", \"durationInMs\": 27.3781},{\"event\": \"Received\", \"startTimeUtc\": \"2023-11-06T03:10:09.2629765Z\", \"durationInMs\": 0.052},{\"event\": \"Completed\", \"startTimeUtc\": \"2023-11-06T03:10:09.2630285Z\", \"durationInMs\": 0}],\"serviceEndpointStats\":{\"inflightRequests\":1,\"openConnections\":1},\"connectionStats\":{\"waitforConnectionInit\":\"False\",\"callsPendingReceive\":0,\"lastSendAttempt\":\"2023-11-06T03:10:08.5389322Z\",\"lastSend\":\"2023-11-06T03:10:08.5389710Z\",\"lastReceive\":\"2023-11-06T03:10:08.5638294Z\"},\"requestSizeInBytes\":465,\"responseMetadataSizeInBytes\":137,\"responseBodySizeInBytes\":87};\r\n ResourceType: Collection, OperationType: Read\r\nRequestStart: 2023-11-06T03:10:09.2356742Z; ResponseTime: 2023-11-06T03:10:09.2634136Z; StoreResult: StorePhysicalAddress: rntbd://10.0.1.10:11000/apps/540517c5-4054-412a-be16-72f3c4660990/services/d6b3ddae-1699-4df4-8552-05c7149c6c29/partitions/e6f134b0-8af5-4b53-bba8-53ad2c27780c/replicas/133074063057012226s, LSN: 3845, GlobalCommittedLsn: 3845, PartitionKeyRangeId: , IsValid: True, StatusCode: 404, SubStatusCode: 0, RequestCharge: 1, ItemLSN: -1, SessionToken: -1#3845, UsingLocalLSN: False, TransportException: null, BELatencyMs: 26.377, ActivityId: a484f1c9-caeb-4ba2-b0db-9935ce310b4d, RetryAfterInMs: , ReplicaHealthStatuses: [(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11000 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM),(port: 11300 | status: Unknown | lkt: 10/31/2023 6:34:10 PM)], TransportRequestTimeline: {\"requestTimeline\":[{\"event\": \"Created\", \"startTimeUtc\": \"2023-11-06T03:10:09.2356156Z\", \"durationInMs\": 0.0055},{\"event\": \"ChannelAcquisitionStarted\", \"startTimeUtc\": \"2023-11-06T03:10:09.2356211Z\", \"durationInMs\": 0.0012},{\"event\": \"Pipelined\", \"startTimeUtc\": \"2023-11-06T03:10:09.2356223Z\", \"durationInMs\": 0.0462},{\"event\": \"Transit Time\", \"startTimeUtc\": \"2023-11-06T03:10:09.2356685Z\", \"durationInMs\": 26.8268},{\"event\": \"Received\", \"startTimeUtc\": \"2023-11-06T03:10:09.2624953Z\", \"durationInMs\": 0.0788},{\"event\": \"Completed\", \"startTimeUtc\": \"2023-11-06T03:10:09.2625741Z\", \"durationInMs\": 0}],\"serviceEndpointStats\":{\"inflightRequests\":1,\"openConnections\":1},\"connectionStats\":{\"waitforConnectionInit\":\"False\",\"callsPendingReceive\":0,\"lastSendAttempt\":\"2023-11-06T03:10:08.5390150Z\",\"lastSend\":\"2023-11-06T03:10:08.5390292Z\",\"lastReceive\":\"2023-11-06T03:10:08.5629103Z\"},\"requestSizeInBytes\":465,\"responseMetadataSizeInBytes\":137,\"responseBodySizeInBytes\":87};\r\n ResourceType: Collection, OperationType: Read\r\n, SDK: Microsoft.Azure.Documents.Common/2.14.0, Microsoft.Azure.Cosmos.Tracing.TraceData.ClientSideRequestStatisticsTraceDatum, Windows/10.0.17763 cosmos-netstandard-sdk/3.18.0"}}]}, Windows/10.0.17763 cosmos-netstandard-sdk/3.18.0 [2023-11-06T03:10:10.445Z] ActivityId: d8aa33cc-a2d9-4276-babf-2d7edd57495c, Windows/10.0.19045 documentdb-netcore-sdk/2.20.0.