Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

No support for specifying any type

Open
#256 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
openapi, python

Research direction

Start with openapi_core/unmarshalling/schemas/unmarshallers.py and factories.py, following the traceback through oneOf handling and array items creation. Reproduce the provided schema with an array whose items are {} and verify that validation succeeds without the "schema not type of Schema" error.

Written by the indexing model from the issue text.

Description

Swagger spec:

Query:
  type: object
  required:
    - select
  properties:
    select:
      type: array
      items:
        type: string
    where:
      type: array
      items:
        type: object
        required:
          - name
          - operator
          - value
        properties:
          name:
            type: string
          operator:
            type: string
          value:
            oneOf:
              - type: string
              - type: number
              - type: boolean
              - type: array
                items: {}

It failed to validate array type for value property (other types are validated fine, when array is removed).

Using lib in combination with Falcon, error is:

Traceback (most recent call last):
  File "D:\.venv\lib\site-packages\falcon\api.py", line 242, in __call__
    process_resource(req, resp, resource, params)
  File "D:\.venv\lib\site-packages\my_lib\falcon_svc.py", line 391, in process_resource
    result = validator.validate(openapi_request)
  File "D:\.venv\lib\site-packages\openapi_core\validation\request\validators.py", line 48, in validate
    body, body_errors = self._get_body(request, operation)
  File "D:\.venv\lib\site-packages\openapi_core\validation\request\validators.py", line 174, in _get_body
    body = self._unmarshal(media_type, casted)
  File "D:\.venv\lib\site-packages\openapi_core\validation\request\validators.py", line 221, in _unmarshal
    param_or_media_type, value, context=UnmarshalContext.REQUEST,
  File "D:\.venv\lib\site-packages\openapi_core\validation\validators.py", line 53, in _unmarshal
    return unmarshaller(value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 181, in __call__
    properties = self._unmarshal_properties(value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 225, in _unmarshal_properties
    prop)(prop_value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 146, in __call__
    return list(map(self.items_unmarshaller, value))
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 181, in __call__
    properties = self._unmarshal_properties(value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 225, in _unmarshal_properties
    prop)(prop_value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 244, in __call__
    return self.unmarshallers_factory.create(one_of_schema)(value)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 146, in __call__
    return list(map(self.items_unmarshaller, value))
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\unmarshallers.py", line 141, in items_unmarshaller
    return self.unmarshallers_factory.create(self.schema.items)
  File "D:\.venv\lib\site-packages\openapi_core\unmarshalling\schemas\factories.py", line 48, in create
    raise TypeError("schema not type of Schema")
TypeError: schema not type of Schema

Maybe I'm doing something wrong (?!), but not found in OpenAPI documentation any limitation for array in usage with oneOf, so I assume that above spec is valid and issue is definitely in the lib validation.

Dominant language
Python
Stars
368
Forks
140
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from python-openapi/openapi-core

All issues in python-openapi/openapi-core

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.