{
  "topic": "errors.CONDITION_TYPE_MISMATCH",
  "path": [
    "errors",
    "CONDITION_TYPE_MISMATCH"
  ],
  "title": "CONDITION_TYPE_MISMATCH — search condition value type incompatible with field",
  "synopsis": "Each field in a locked model has an inferred DataType (e.g. INTEGER, DOUBLE, BOOLEAN). When a search condition references a numeric or boolean field, the condition's value must be type-compatible with that field. For example, submitting a string value `\"abc\"` against a DOUBLE field is rejected.",
  "body": "# errors.CONDITION_TYPE_MISMATCH\n\n## NAME\n\nCONDITION_TYPE_MISMATCH — a search condition value's JSON type is incompatible with the field's locked DataType in the model schema.\n\n## SYNOPSIS\n\nHTTP: `400` `Bad Request`. Retryable: `no`.\n\n## DESCRIPTION\n\nEach field in a locked model has an inferred DataType (e.g. INTEGER, DOUBLE, BOOLEAN). When a search condition references a numeric or boolean field, the condition's value must be type-compatible with that field. For example, submitting a string value `\"abc\"` against a DOUBLE field is rejected.\n\nString fields are not strictly enforced — any comparison value (numeric or string) is accepted to support lexicographic and coerced comparisons. Conditions that reference field paths not present in the model schema are rejected by a separate pre-execution validation pass with `INVALID_FIELD_PATH` (see issue #77); the type-checker itself has no opinion on unknown paths.\n\nIS_NULL and NOT_NULL operators bypass type checking entirely. Null values are compatible with any field type.\n\nCorrect the condition value so that its type matches the target field's declared DataType.\n\n## SEE ALSO\n\n- errors\n- errors.BAD_REQUEST\n- errors.INVALID_FIELD_PATH\n- errors.VALIDATION_FAILED\n",
  "sections": [
    {
      "name": "NAME",
      "body": "CONDITION_TYPE_MISMATCH — a search condition value's JSON type is incompatible with the field's locked DataType in the model schema."
    },
    {
      "name": "SYNOPSIS",
      "body": "HTTP: `400` `Bad Request`. Retryable: `no`."
    },
    {
      "name": "DESCRIPTION",
      "body": "Each field in a locked model has an inferred DataType (e.g. INTEGER, DOUBLE, BOOLEAN). When a search condition references a numeric or boolean field, the condition's value must be type-compatible with that field. For example, submitting a string value `\"abc\"` against a DOUBLE field is rejected.\n\nString fields are not strictly enforced — any comparison value (numeric or string) is accepted to support lexicographic and coerced comparisons. Conditions that reference field paths not present in the model schema are rejected by a separate pre-execution validation pass with `INVALID_FIELD_PATH` (see issue #77); the type-checker itself has no opinion on unknown paths.\n\nIS_NULL and NOT_NULL operators bypass type checking entirely. Null values are compatible with any field type.\n\nCorrect the condition value so that its type matches the target field's declared DataType."
    },
    {
      "name": "SEE ALSO",
      "body": "- errors\n- errors.BAD_REQUEST\n- errors.INVALID_FIELD_PATH\n- errors.VALIDATION_FAILED"
    }
  ],
  "see_also": [
    "errors",
    "errors.BAD_REQUEST",
    "errors.INVALID_FIELD_PATH",
    "errors.VALIDATION_FAILED"
  ],
  "stability": "stable",
  "actions": []
}
