Squidex error on record creation with id

using cloud environment or own local instance both have issue

Example test case to reproduce the issue
On Squidex UI I created a schema called idtest gave it a text field called description

Did a Upsert(same issue with create)

api/content/roomammenaties/idtest/1?publish=true
{
    "description": {
    "iv": "asdasd"
    }
}

response (400 bad request)

    {
    “message”: “Invalid command.”,
    “traceId”: “00-363d8646b279cf4db660d404a49a00ca-d41848c816e99447-00”,
    “type”: “https://tools.ietf.org/html/rfc7231#section-6.5.1”,
    “statusCode”: 400
    }

doing same Upsert with id 1ab
api/content/roomammenaties/idtest/1ab?publish=true

{
    “description”: {
    “iv”: “asdasd”
    }
}

response (200 ok with normal response body)

Only happening on some schemas but was able to create a new one with same issue

Environment

  • [ ] Self hosted with docker
  • [ ] Self hosted with IIS
  • [x] Self hosted with other version
  • [x] Cloud version

Version: [VERSION]

Browser:

  • [ x] Chrome (desktop)
  • [ ] Chrome (Android)
  • [ ] Chrome (iOS)
  • [ ] Firefox
  • [ ] Safari (desktop)
  • [ ] Safari (iOS)
  • [ ] IE
  • [ ] Edge

Others:

Come on. Please format your code examples. Otherwise i have issues to copy and paste them.

IDs are globally unique. I think the ID is already in use for a content of another schema.

This is not a bug.

It is described here: [IMPLEMENTED] Custom content ids

Why this restriction?

Technical Limitations

There are a few cases where Ids must be unique. For example for CDN and surrogate keys. In this case the response header includes the globally unique IDs of all records that are part of the request. Unfortunenalty the header sizes are limited. To use globally unique IDs we would have to add the app-ID and schema-ID to the unique Id, something like {appId}-{schemaId}-{contentId}. This reduces how many IDs you can put into your headers.

Performance

As IDs must be unique (we do not just maintain a collection per schema like in a normal database) we want the unique ids to be as short as possible and also adding the schema id makes them significantly longer.