{
  "topic": "errors.INCOMPATIBLE_TYPE",
  "path": [
    "errors",
    "INCOMPATIBLE_TYPE"
  ],
  "title": "INCOMPATIBLE_TYPE — entity payload value does not match the model's declared DataType",
  "synopsis": "Returned by `POST /entity/{format}/{name}/{version}` and the entity-update surfaces when a leaf field's value cannot be coerced into the model's declared DataType (e.g. submitting `\"abc\"` against an `INTEGER` field, or `13.111` against an `INTEGER` field on a model whose `changeLevel` is empty so type widening is not in scope).",
  "body": "# errors.INCOMPATIBLE_TYPE\n\n## NAME\n\nINCOMPATIBLE_TYPE — an entity create or update payload carried a leaf value whose inferred DataType is not assignable to the schema's declared DataType for that path.\n\n## SYNOPSIS\n\nHTTP: `400` `Bad Request`. Retryable: `no`.\n\n## DESCRIPTION\n\nReturned by `POST /entity/{format}/{name}/{version}` and the entity-update surfaces when a leaf field's value cannot be coerced into the model's declared DataType (e.g. submitting `\"abc\"` against an `INTEGER` field, or `13.111` against an `INTEGER` field on a model whose `changeLevel` is empty so type widening is not in scope).\n\nEquivalent to Cloud's `FoundIncompatibleTypeWithEntityModelException`.\n\nThe problem-detail body carries the structured fields below in `properties`, so SDKs can branch on the precondition without scraping the message string:\n\n- `entityName` — model name (e.g. `\"nobel-prize\"`)\n- `entityVersion` — model version as a string (e.g. `\"1\"`)\n- `fieldPath` — dotted path of the offending leaf (e.g. `\"price\"`, `\"address.zip\"`)\n- `expectedType` — array of declared DataType names for that path (e.g. `[\"INTEGER\"]`); usually one entry, more than one when the schema's TypeSet has been widened by a prior extension\n- `actualType` — the DataType inferred from the supplied value (e.g. `\"DOUBLE\"`, `\"STRING\"`)\n\nNot retryable. The caller must either correct the payload (cast/format the value into the declared type) or, if the model's `changeLevel` permits, request a schema extension that widens the field's TypeSet.\n\nThis code is distinct from:\n\n- `errors.CONDITION_TYPE_MISMATCH` — search-side equivalent, raised when a search condition's literal value does not match the field's locked DataType.\n- `errors.POLYMORPHIC_SLOT` — payload selects a structural variant the schema does not declare (object vs leaf, or one variant of a polymorphic union).\n- `errors.VALIDATION_FAILED` — generic validation failure that is not a leaf type mismatch (e.g. a missing required field, a structural shape mismatch).\n\n## SEE ALSO\n\n- errors\n- errors.VALIDATION_FAILED\n- errors.POLYMORPHIC_SLOT\n- errors.BAD_REQUEST\n- crud\n",
  "sections": [
    {
      "name": "NAME",
      "body": "INCOMPATIBLE_TYPE — an entity create or update payload carried a leaf value whose inferred DataType is not assignable to the schema's declared DataType for that path."
    },
    {
      "name": "SYNOPSIS",
      "body": "HTTP: `400` `Bad Request`. Retryable: `no`."
    },
    {
      "name": "DESCRIPTION",
      "body": "Returned by `POST /entity/{format}/{name}/{version}` and the entity-update surfaces when a leaf field's value cannot be coerced into the model's declared DataType (e.g. submitting `\"abc\"` against an `INTEGER` field, or `13.111` against an `INTEGER` field on a model whose `changeLevel` is empty so type widening is not in scope).\n\nEquivalent to Cloud's `FoundIncompatibleTypeWithEntityModelException`.\n\nThe problem-detail body carries the structured fields below in `properties`, so SDKs can branch on the precondition without scraping the message string:\n\n- `entityName` — model name (e.g. `\"nobel-prize\"`)\n- `entityVersion` — model version as a string (e.g. `\"1\"`)\n- `fieldPath` — dotted path of the offending leaf (e.g. `\"price\"`, `\"address.zip\"`)\n- `expectedType` — array of declared DataType names for that path (e.g. `[\"INTEGER\"]`); usually one entry, more than one when the schema's TypeSet has been widened by a prior extension\n- `actualType` — the DataType inferred from the supplied value (e.g. `\"DOUBLE\"`, `\"STRING\"`)\n\nNot retryable. The caller must either correct the payload (cast/format the value into the declared type) or, if the model's `changeLevel` permits, request a schema extension that widens the field's TypeSet.\n\nThis code is distinct from:\n\n- `errors.CONDITION_TYPE_MISMATCH` — search-side equivalent, raised when a search condition's literal value does not match the field's locked DataType.\n- `errors.POLYMORPHIC_SLOT` — payload selects a structural variant the schema does not declare (object vs leaf, or one variant of a polymorphic union).\n- `errors.VALIDATION_FAILED` — generic validation failure that is not a leaf type mismatch (e.g. a missing required field, a structural shape mismatch)."
    },
    {
      "name": "SEE ALSO",
      "body": "- errors\n- errors.VALIDATION_FAILED\n- errors.POLYMORPHIC_SLOT\n- errors.BAD_REQUEST\n- crud"
    }
  ],
  "see_also": [
    "errors",
    "errors.VALIDATION_FAILED",
    "errors.POLYMORPHIC_SLOT",
    "errors.BAD_REQUEST",
    "crud"
  ],
  "stability": "stable",
  "actions": []
}
