Reserved-keyword operationId values generate invalid TypeScript
An OpenAPI operation whose operationId was a TypeScript reserved word produced source that could not be parsed.
This page traces one detailed external-report case through the available source and release evidence. The public-record census includes additional discovery channels and separately identified recurrences.
- Report
- Issue #1617
- Reporter
- dissemond-bitside
- Reported
- April 2, 2026
- Reported version
- 2.4.0
- Matched window
- Included
- First affected release entered matched window
- No
- Origin classification
- Defect in a 2026 feature
- Classification confidence
- High
- Chronology confidence
- High
- Accepted correction
- PR #1622
- First fixed release
- 2.5.0
- Report to release
- 1.69 elapsed daysReport: 2026-04-02T01:24:04Z; corrected publication: 2026-04-03T17:57:55.215Z.
Historical test demonstration and reproducible commands
Finding
The applicable capability—operation-specific exports named from operationId—first shipped in 2026 and contained the defect in its initial release. There was no earlier working version of that feature to regress from.
This is one of two bugs attributable to code introduced in 2026. Calling it a feature defect is more precise than calling it a regression: the newly introduced behavior never had a working released state. The contribution passed project review, so authorship identifies provenance, not exclusive responsibility.
Evidence trail
Origin
Exact origin: e0696850, committed February 23, 2026; first affected release 2.0.0. The new operationId-based type-export feature used identifiers such as 'delete' verbatim in generated imports and type declarations.
Source history and behavioral evidence
The failure begins with the operationId export implementation merged through contributor-authored PR #1502. The repair aliases unsafe generated names while preserving the public operation identifier and adds reserved-word coverage.
Release chronology
The feature and defect first shipped together in 2.0.0. The fix shipped in 2.5.0 the day after the report.