Title: Bug Report: Incorrect Model Reference in Generated Paginated Envelope · Issue #1390 · openapi-generators/openapi-python-client · GitHub
Open Graph Title: Bug Report: Incorrect Model Reference in Generated Paginated Envelope · Issue #1390 · openapi-generators/openapi-python-client
X Title: Bug Report: Incorrect Model Reference in Generated Paginated Envelope · Issue #1390 · openapi-generators/openapi-python-client
Description: Bug Report: Incorrect Model Reference in Generated Paginated Envelope Summary openapi-python-client incorrectly generates PaginatedTransactionEnvelope with CustomerEntity instead of TransactionEntity, despite the OpenAPI schema correctly...
Open Graph Description: Bug Report: Incorrect Model Reference in Generated Paginated Envelope Summary openapi-python-client incorrectly generates PaginatedTransactionEnvelope with CustomerEntity instead of TransactionEnti...
X Description: Bug Report: Incorrect Model Reference in Generated Paginated Envelope Summary openapi-python-client incorrectly generates PaginatedTransactionEnvelope with CustomerEntity instead of TransactionEnti...
Opengraph URL: https://github.com/openapi-generators/openapi-python-client/issues/1390
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Bug Report: Incorrect Model Reference in Generated Paginated Envelope","articleBody":"# Bug Report: Incorrect Model Reference in Generated Paginated Envelope\n\n## Summary\n`openapi-python-client` incorrectly generates `PaginatedTransactionEnvelope` with `CustomerEntity` instead of `TransactionEntity`, despite the OpenAPI schema correctly specifying `TransactionEntity`.\n\n## Environment\n- **openapi-python-client version:** 0.28.1\n- **Python version:** 3.13\n- **Generation command:**\n ```bash\n openapi-python-client generate \\\n --path schema.yaml \\\n --output-path ./generated \\\n --meta none\n ```\n\n## Expected Behavior\nThe generated `PaginatedTransactionEnvelope` should use `TransactionEntity` based on this schema definition:\n\n```yaml\nPaginatedTransactionEnvelope:\n allOf:\n - $ref: '#/components/schemas/PaginatedSuccessEnvelope'\n - type: object\n properties:\n data:\n type: array\n items:\n $ref: '#/components/schemas/TransactionEntity'\n```\n\nExpected generated code:\n```python\nif TYPE_CHECKING:\n from ..models.transaction_entity import TransactionEntity\n from ..models.links import Links\n\n@_attrs_define\nclass PaginatedTransactionEnvelope:\n timestamp: datetime.datetime\n path: str\n data: list[TransactionEntity] # ✓ Correct\n links: Links\n```\n\n## Actual Behavior\nThe generator produces code using `CustomerEntity` instead:\n\n```python\nif TYPE_CHECKING:\n from ..models.customer_entity import CustomerEntity # ✗ Wrong!\n from ..models.links import Links\n\n@_attrs_define\nclass PaginatedTransactionEnvelope:\n timestamp: datetime.datetime\n path: str\n data: list[CustomerEntity] # ✗ Wrong!\n links: Links\n \n@classmethod\ndef from_dict(cls: type[T], src_dict: Mapping[str, Any]) -\u003e T:\n from ..models.customer_entity import CustomerEntity # ✗ Wrong!\n from ..models.links import Links\n \n # ...\n for data_item_data in _data:\n data_item = CustomerEntity.from_dict(data_item_data) # ✗ Wrong!\n data.append(data_item)\n```\n\n## Impact\nThis causes runtime errors when parsing API responses:\n```python\nValueError: 'failed' is not a valid CustomerEntityStatus\n```\n\nThe parser attempts to deserialize transaction data as customer data, failing when transaction-specific status values don't exist in the `CustomerEntityStatus` enum.\n\n## Additional Context\nThe schema also defines `PaginatedCustomerEnvelope` (which correctly uses `CustomerEntity`). The generator may be incorrectly reusing or caching the entity type across similar paginated envelope structures.\n\nRelated schema definitions:\n```yaml\nPaginatedCustomerEnvelope:\n allOf:\n - $ref: '#/components/schemas/PaginatedSuccessEnvelope'\n - type: object\n properties:\n data:\n type: array\n items:\n $ref: '#/components/schemas/CustomerEntity'\n\nPaginatedTransactionEnvelope:\n allOf:\n - $ref: '#/components/schemas/PaginatedSuccessEnvelope'\n - type: object\n properties:\n data:\n type: array\n items:\n $ref: '#/components/schemas/TransactionEntity'\n```\n\n## Workaround\nWe've added a post-generation fix script:\n```bash\nsed -i '' 's/from ..models.customer_entity import CustomerEntity/from ..models.transaction_entity import TransactionEntity/g' \"$FILE\"\nsed -i '' 's/list\\[CustomerEntity\\]/list[TransactionEntity]/g' \"$FILE\"\nsed -i '' 's/CustomerEntity\\.from_dict/TransactionEntity.from_dict/g' \"$FILE\"\n```\n\n## Reproduction\nThe issue appears when:\n1. Multiple paginated envelopes are defined using `allOf` with shared base schemas\n2. Each envelope should use different entity types in the `data` array\n3. The generator confuses the entity types between envelopes\n","author":{"url":"https://github.com/thekashifmalik","@type":"Person","name":"thekashifmalik"},"datePublished":"2026-01-28T03:34:17.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1390/openapi-python-client/issues/1390"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:55004d37-738d-f2bd-8f24-255f959a0707 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D7E6:2F8D9:9F1BF7:C88AB6:697FC9B3 |
| html-safe-nonce | fd5911233409b09b6c7acba75dfdaf82be01608414cb3053f1bce9ae32b107b2 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEN0U2OjJGOEQ5OjlGMUJGNzpDODhBQjY6Njk3RkM5QjMiLCJ2aXNpdG9yX2lkIjoiODAyOTczNTA1NTgwMDY1MDE2MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | da56edb1a9a1783e5261416db7f8291772dd937eb8990d88991a85e840da3364 |
| hovercard-subject-tag | issue:3863383651 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/openapi-generators/openapi-python-client/1390/issue_layout |
| twitter:image | https://opengraph.githubassets.com/91f2163cb6b47f7f85710d54b530a492a6c2caf5676e073821317e34f55c4a3a/openapi-generators/openapi-python-client/issues/1390 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/91f2163cb6b47f7f85710d54b530a492a6c2caf5676e073821317e34f55c4a3a/openapi-generators/openapi-python-client/issues/1390 |
| og:image:alt | Bug Report: Incorrect Model Reference in Generated Paginated Envelope Summary openapi-python-client incorrectly generates PaginatedTransactionEnvelope with CustomerEntity instead of TransactionEnti... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | thekashifmalik |
| hostname | github.com |
| expected-hostname | github.com |
| None | 60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6 |
| turbo-cache-control | no-preview |
| go-import | github.com/openapi-generators/openapi-python-client git https://github.com/openapi-generators/openapi-python-client.git |
| octolytics-dimension-user_id | 84925606 |
| octolytics-dimension-user_login | openapi-generators |
| octolytics-dimension-repository_id | 240776275 |
| octolytics-dimension-repository_nwo | openapi-generators/openapi-python-client |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 240776275 |
| octolytics-dimension-repository_network_root_nwo | openapi-generators/openapi-python-client |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7c85641c598ad130c74f7bcc27f58575cac69551 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width