-
Notifications
You must be signed in to change notification settings - Fork 821
Description
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
- Create a container/collection in Cosmos DB with partition name /partitionKey and add data to it
Step 2 - Run Azure Functions to query and retrieve data in containers
Step 3 - After the request in step 2 is successful, delete the container/collection and recreate the container/collection with the same name, then re-add the data in it (step 1)
Step 4 - Execute the request in step 2 (without re-running the Azure Function)
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<Microsoft.Azure.WebJobs.Host.Bindings.ExecutionContextOptions>>().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.