GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Attempted to generate duplicate models with name "TypenameFieldnameItem" · Issue #1375 · openapi-generators/openapi-python-client

Attempted to generate duplicate models with name "TypenameFieldnameItem" #1375

New issue
Copy link
New issue
Copy link
Open
Open
Attempted to generate duplicate models with name "TypenameFieldnameItem"#1375
Copy link

Description

@paulo-raca
paulo-raca
opened on Dec 10, 2025
Issue body actions

Describe the bug
I stumbled on a weirdly specific bug that causes the generator to attempt to generate duplicate models.

Apparently we need:

  • a OneOf type (A), which references an Object type (B)
  • An object type (B) with an array-of-object field
  • An Object type (C) for the array-of-object field
  • array-of-C and C must be declared inline inside B

OpenAPI Spec File

This works

openapi: 3.0.3
info:
  title: Minimal example for error "Attempted to generate duplicate models"
  version: 1.0.0

components:
  schemas:
    Result:
      oneOf:
        - $ref: "#/components/schemas/ResultA"
      discriminator:
        propertyName: type
        mapping:
          "A": "#/components/schemas/ResultA"

    ResultA:
      type: object
      properties:
        things:
          type: array
          items:
            $ref: "#/components/schemas/ResultAThingsItem"

    ResultAThingsItem:
      type: object
      properties:
        name:
          type: string

paths:
  /something:
    get:
      summary: Returns a list of users.
      responses:
        '200':
          description: A successful response returning the list of users.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'

This should be the same, but doesn't work:

openapi: 3.0.3
info:
  title: Minimal example for error "Attempted to generate duplicate models"
  version: 1.0.0

components:
  schemas:
    Result:
      oneOf:
        - $ref: "#/components/schemas/ResultA"
      discriminator:
        propertyName: type
        mapping:
          "A": "#/components/schemas/ResultA"

    ResultA:
      type: object
      properties:
        things:
          type: array
          items:
            type: object
            properties:
              name:
                type: string

paths:
  /something:
    get:
      summary: Returns a list of users.
      responses:
        '200':
          description: A successful response returning the list of users.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'

Output:

$ pipx run openapi-python-client generate --path=example.yaml --overwrite
Generating <...>/minimal-example-for-error-attempted-to-generate-duplicate-models-client
Warning(s) encountered while generating. Client was generated, but some pieces may be missing

WARNING parsing GET /something within default.

Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client

Reference(ref='#/components/schemas/Result')

Unable to process schema /components/schemas/Result:

Attempted to generate duplicate models with name "ResultAThingsItem"

Failure to process schema has resulted in the removal of:
/components/schemas/ResultA
/components/schemas/Result

Schema(title=None, multipleOf=None, maximum=None, exclusiveMaximum=None, minimum=None, exclusiveMinimum=None, maxLength=None, minLength=None, pattern=None, maxItems=None, minItems=None, uniqueItems=None, maxProperties=None, minProperties=None, required=None, enum=None, const=None, type=<DataType.OBJECT: 'object'>, allOf=[], oneOf=[], anyOf=[], schema_not=None, items=None, prefixItems=[], properties={'name': Schema(title=None, multipleOf=None, maximum=None, exclusiveMaximum=None, minimum=None, exclusiveMinimum=None, maxLength=None, minLength=None, pattern=None, maxItems=None, minItems=None, uniqueItems=None, maxProperties=None, minProperties=None, required=None, enum=None, const=None, type=<DataType.STRING: 'string'>, allOf=[], oneOf=[], anyOf=[], schema_not=None, items=None, prefixItems=[], properties=None, additionalProperties=None, description=None, schema_format=None, default=None, nullable=False, discriminator=None, readOnly=None, writeOnly=None, xml=None, externalDocs=None, example=None, deprecated=None)}, additionalProperties=None, description=None, schema_format=None, default=None, nullable=False, discriminator=None, readOnly=None, writeOnly=None, xml=None, externalDocs=None, example=None, deprecated=None)

If you believe this was a mistake or this tool is missing a feature you need, please open an issue at https://github.com/openapi-generators/openapi-python-client/issues/new/choose



**Desktop (please complete the following information):**
 - OS: Ubuntu 25.04
 - Python Version: 3.12.3
 - openapi-python-client version: 0.28.0

Activity

  1. pomykalakyle commented on Oct 23, 2026

    @pomykalakyle
    pomykalakyle
    on Oct 23, 2026
    More actions

    I hit this too, with a smaller case: a oneOf with a single $ref to an object that has an inline map.

    UploadParams:
      type: object
      oneOf:
        - $ref: '#/components/schemas/UploadParamsAws'
    UploadParamsAws:
      type: object
      required: [url, fields]
      properties:
        url: {type: string}
        fields:
          type: object
          additionalProperties: {type: string}

    On 0.29.1 this fails with Attempted to generate duplicate models with name "UploadParamsAwsFields". From what I can see, the single-$ref shortcut in property_from_data queues the referenced model a second time. Its inline models get built twice, and the second build hits the duplicate check.

    I opened a possible fix in #1499. Heads up that an AI agent wrote it while I was debugging our spec. It works on our spec and on the example above, but it has no tests yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402520 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.