Error "Path collision at do.status.color" when loading content

I have…

  • Read the following guideline: Troubleshooting and Support | Squidex. I understand that my support request might get deleted if I do not follow the guideline.
  • Used code blocks with ``` to format my code examples like JSON or logs properly.

I’m submitting a…

  • Regression (a behavior that stopped working in a new release)
  • Bug report
  • Performance issue
  • Documentation issue or request

Current behavior

Loading any content via UI fails with 500 error. Logs show this:

Command find failed: Path collision at do.status.color remaining portion status.color.

MongoDB version is 5.0.26.

Full log entry attached below.

Expected behavior

Loading content via UI works as it did on 7.8.2.

Minimal reproduction of the problem

  1. Ensure you’re on 7.13.0.
  2. Go to view any content list in the UI.
  3. See error and content list not loading.

Environment

App Name:

  • Self hosted with docker
  • Self hosted with IIS
  • Self hosted with other version
  • Cloud version

Version: 7.13.0

Browser:

  • Chrome (desktop)
  • Chrome (Android)
  • Chrome (iOS)
  • Firefox
  • Safari (desktop)
  • Safari (iOS)
  • IE
  • Edge

Others:

{
  "logLevel": "Error",
  "message": "An unexpected exception has occurred.",
  "timestamp": "2024-06-10T08:31:09Z",
  "app": {
    "name": "Squidex",
    "version": "7.13.0.0",
    "sessionId": "d09484ff-d311-466a-977b-762b9b208071"
  },
  "web": {
    "requestId": "00-c0275b41fd4e79675d7c60809d378dd3-7d2fa45dd369cd32-01",
    "requestPath": "/api/content/gr/form-attributes/query",
    "requestMethod": "POST",
    "routeValues": {
      "area": "api",
      "action": "GetContentsPost",
      "controller": "Contents"
    }
  },
  "category": "Squidex.Web.ApiExceptionFilterAttribute",
  "exception": {
    "type": "MongoDB.Driver.MongoCommandException",
    "message": "Command find failed: Path collision at do.status.color remaining portion status.color.",
    "stackTrace": "   at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol\u00601.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage)\n   at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol\u00601.ExecuteAsync(IConnection connection, CancellationToken cancellationToken)\n   at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol\u00601 protocol, ICoreSession session, CancellationToken cancellationToken)\n   at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation\u00601 operation, RetryableReadContext context, CancellationToken cancellationToken)\n   at MongoDB.Driver.Core.Operations.ReadCommandOperation\u00601.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken)\n   at MongoDB.Driver.Core.Operations.FindOperation\u00601.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken)\n   at MongoDB.Driver.Core.Operations.FindOperation\u00601.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)\n   at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation\u00601 operation, CancellationToken cancellationToken)\n   at MongoDB.Driver.MongoCollectionImpl\u00601.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation\u00601 operation, ReadPreference readPreference, CancellationToken cancellationToken)\n   at MongoDB.Driver.MongoCollectionImpl\u00601.UsingImplicitSessionAsync[TResult](Func\u00602 funcAsync, CancellationToken cancellationToken)\n   at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource\u00601 source, CancellationToken cancellationToken)\n   at Squidex.Infrastructure.MongoDb.MongoExtensions.ToListRandomAsync[T](IFindFluent\u00602 find, IMongoCollection\u00601 collection, Int64 take, CancellationToken ct) in /src/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoExtensions.cs:line 236\n   at Squidex.Domain.Apps.Entities.MongoDb.Contents.Operations.Extensions.QueryContentsAsync(IMongoCollection\u00601 collection, FilterDefinition\u00601 filter, ClrQuery query, Q q, CancellationToken ct) in /src/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/Extensions.cs:line 149\n   at Squidex.Domain.Apps.Entities.MongoDb.Contents.Operations.QueryInDedicatedCollection.QueryAsync(Schema schema, Q q, CancellationToken ct) in /src/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Operations/QueryInDedicatedCollection.cs:line 90\n   at Squidex.Domain.Apps.Entities.MongoDb.Contents.MongoContentCollection.QueryAsync(App app, Schema schema, Q q, CancellationToken ct) in /src/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs:line 203\n   at Squidex.Domain.Apps.Entities.Contents.Queries.ContentQueryService.QueryCoreAsync(Context context, Q q, Schema schema, CancellationToken ct) in /src/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs:line 270\n   at Squidex.Domain.Apps.Entities.Contents.Queries.ContentQueryService.QueryAsync(Context context, String schemaIdOrName, Q q, CancellationToken ct) in /src/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs:line 132\n   at Squidex.Areas.Api.Controllers.Contents.ContentsController.GetContentsPost(String app, String schema, QueryDto query) in /src/src/Squidex/Areas/Api/Controllers/Contents/ContentsController.cs:line 124\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Logged|12_1(ControllerActionInvoker invoker)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeNextExceptionFilterAsync\u003Eg__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)"
  }
}

I guess there is some invalid content in the collection. Perhaps you an use a Mongo Tool and have a look how this field is serialized?

I cannot reproduce it in the cloud at the moment.

It wasn’t content. It was schema’s “List Fields” configuration. This error happens on every schema where both status and status.color fields are selected (see attached screenshots).

On 7.8.2 these appear under meta key but on 7.13.0 these have been moved up a level. In fact meta key no longer appears anywhere.

Keeping just one “Status” field in the “Assigned fields” section resolved the issue but is getting rid of meta key intended?




Good point. This is a bug then and can be resolved easily. Thanks for the great explanation.

1 Like